aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes1
-rw-r--r--.gitignore1
-rw-r--r--COPYING2
-rw-r--r--bitcoin-qt.pro82
-rw-r--r--contrib/debian/bitcoin-qt.desktop2
-rw-r--r--contrib/debian/changelog38
-rw-r--r--contrib/debian/control3
-rw-r--r--contrib/debian/copyright2
-rwxr-xr-xcontrib/debian/rules2
-rw-r--r--contrib/gitian-descriptors/deps-win32.yml71
-rw-r--r--contrib/gitian-descriptors/gitian-win32.yml64
-rw-r--r--contrib/gitian-descriptors/gitian.yml18
-rw-r--r--contrib/gitian-downloader/linux-download-config6
-rw-r--r--contrib/gitian-downloader/luke-jr-key.pgpbin0 -> 5467 bytes
-rw-r--r--contrib/gitian-downloader/sipa-key.pgpbin13642 -> 108922 bytes
-rw-r--r--contrib/gitian-downloader/win32-download-config6
-rwxr-xr-xcontrib/macdeploy/macdeployqtplus470
-rw-r--r--contrib/macdeploy/notes.txt4
-rw-r--r--contrib/miniupnpc/Portfile43
-rw-r--r--doc/README4
-rw-r--r--doc/README_windows.txt4
-rw-r--r--doc/assets-attribution.txt6
-rw-r--r--doc/build-msw.txt8
-rw-r--r--doc/build-osx.txt9
-rw-r--r--doc/build-unix.txt3
-rw-r--r--doc/readme-qt.rst57
-rw-r--r--doc/release-process.txt21
-rw-r--r--doc/translation_process.md33
-rwxr-xr-xshare/genbuild.sh35
-rwxr-xr-xshare/qt/extract_strings_qt.py (renamed from scripts/qt/extract_strings_qt.py)15
-rw-r--r--share/qt/img/reload.xcf (renamed from scripts/qt/img/reload.xcf)bin25292 -> 25292 bytes
-rwxr-xr-xshare/qt/make_spinner.py (renamed from scripts/qt/make_spinner.py)0
-rwxr-xr-xshare/qt/make_windows_icon.sh (renamed from scripts/qt/make_windows_icon.py)0
-rw-r--r--share/setup.nsi20
-rw-r--r--src/addrman.cpp528
-rw-r--r--src/addrman.h502
-rw-r--r--src/allocators.h123
-rw-r--r--src/base58.h28
-rw-r--r--src/bignum.h24
-rw-r--r--src/bitcoinrpc.cpp518
-rw-r--r--src/bitcoinrpc.h36
-rw-r--r--src/checkpoints.cpp7
-rw-r--r--src/checkpoints.h10
-rw-r--r--src/compat.h23
-rw-r--r--src/crypter.cpp31
-rw-r--r--src/crypter.h7
-rw-r--r--src/db.cpp661
-rw-r--r--src/db.h213
-rw-r--r--src/headers.h92
-rw-r--r--src/init.cpp342
-rw-r--r--src/init.h4
-rw-r--r--src/irc.cpp68
-rw-r--r--src/irc.h3
-rw-r--r--src/key.cpp2
-rw-r--r--src/key.h16
-rw-r--r--src/keystore.cpp50
-rw-r--r--src/keystore.h38
-rw-r--r--src/main.cpp754
-rw-r--r--src/main.h234
-rw-r--r--src/makefile.linux-mingw37
-rw-r--r--src/makefile.mingw25
-rw-r--r--src/makefile.osx33
-rw-r--r--src/makefile.unix30
-rw-r--r--src/mruset.h64
-rw-r--r--src/net.cpp722
-rw-r--r--src/net.h163
-rw-r--r--src/netbase.cpp27
-rw-r--r--src/netbase.h32
-rw-r--r--src/noui.cpp44
-rw-r--r--src/noui.h74
-rw-r--r--src/obj/nogui/.gitignore2
-rw-r--r--src/obj/test/.gitignore2
-rw-r--r--src/protocol.cpp6
-rw-r--r--src/protocol.h28
-rw-r--r--src/qt/aboutdialog.cpp2
-rw-r--r--src/qt/addressbookpage.cpp31
-rw-r--r--src/qt/addresstablemodel.cpp30
-rw-r--r--src/qt/addresstablemodel.h6
-rw-r--r--src/qt/bitcoin.cpp226
-rw-r--r--src/qt/bitcoin.qrc25
-rw-r--r--src/qt/bitcoinaddressvalidator.h2
-rw-r--r--src/qt/bitcoingui.cpp195
-rw-r--r--src/qt/bitcoingui.h16
-rw-r--r--src/qt/bitcoinstrings.cpp73
-rw-r--r--src/qt/clientmodel.cpp25
-rw-r--r--src/qt/clientmodel.h4
-rw-r--r--src/qt/csvmodelwriter.cpp2
-rw-r--r--src/qt/editaddressdialog.cpp3
-rw-r--r--src/qt/forms/aboutdialog.ui21
-rw-r--r--src/qt/forms/addressbookpage.ui2
-rw-r--r--src/qt/forms/messagepage.ui25
-rw-r--r--src/qt/forms/overviewpage.ui12
-rw-r--r--src/qt/forms/qrcodedialog.ui21
-rw-r--r--src/qt/guiutil.cpp162
-rw-r--r--src/qt/guiutil.h54
-rw-r--r--src/qt/locale/bitcoin_ca_ES.ts1963
-rw-r--r--src/qt/locale/bitcoin_cs.ts (renamed from src/qt/locale/bitcoin_cs_CZ.ts)1170
-rw-r--r--src/qt/locale/bitcoin_da.ts966
-rw-r--r--src/qt/locale/bitcoin_de.ts1148
-rw-r--r--src/qt/locale/bitcoin_en.ts736
-rw-r--r--src/qt/locale/bitcoin_es.ts971
-rw-r--r--src/qt/locale/bitcoin_es_CL.ts979
-rw-r--r--src/qt/locale/bitcoin_et.ts1963
-rw-r--r--src/qt/locale/bitcoin_eu_ES.ts1963
-rw-r--r--src/qt/locale/bitcoin_fa.ts956
-rw-r--r--src/qt/locale/bitcoin_fa_IR.ts1963
-rw-r--r--src/qt/locale/bitcoin_fi.ts815
-rw-r--r--src/qt/locale/bitcoin_fr_CA.ts1963
-rw-r--r--src/qt/locale/bitcoin_fr_FR.ts990
-rw-r--r--src/qt/locale/bitcoin_he.ts1977
-rw-r--r--src/qt/locale/bitcoin_hr.ts973
-rw-r--r--src/qt/locale/bitcoin_hu.ts957
-rw-r--r--src/qt/locale/bitcoin_it.ts964
-rw-r--r--src/qt/locale/bitcoin_lt.ts1978
-rw-r--r--src/qt/locale/bitcoin_nb.ts956
-rw-r--r--src/qt/locale/bitcoin_nl.ts1052
-rw-r--r--src/qt/locale/bitcoin_pl.ts912
-rw-r--r--src/qt/locale/bitcoin_pt_BR.ts963
-rw-r--r--src/qt/locale/bitcoin_ro_RO.ts983
-rw-r--r--src/qt/locale/bitcoin_ru.ts970
-rw-r--r--src/qt/locale/bitcoin_sk.ts1967
-rw-r--r--src/qt/locale/bitcoin_sr.ts1968
-rw-r--r--src/qt/locale/bitcoin_sv.ts753
-rw-r--r--src/qt/locale/bitcoin_tr.ts965
-rw-r--r--src/qt/locale/bitcoin_uk.ts968
-rw-r--r--src/qt/locale/bitcoin_zh_CN.ts956
-rw-r--r--src/qt/locale/bitcoin_zh_TW.ts958
-rw-r--r--src/qt/messagepage.cpp26
-rw-r--r--src/qt/messagepage.h1
-rw-r--r--src/qt/notificator.cpp15
-rw-r--r--src/qt/notificator.h3
-rw-r--r--src/qt/optionsdialog.cpp19
-rw-r--r--src/qt/optionsmodel.cpp137
-rw-r--r--src/qt/optionsmodel.h16
-rw-r--r--src/qt/qrcodedialog.cpp103
-rw-r--r--src/qt/qrcodedialog.h4
-rw-r--r--src/qt/qtipcserver.cpp47
-rw-r--r--src/qt/qtipcserver.h2
-rw-r--r--src/qt/res/icons/connect4_16.pngbin611 -> 673 bytes
-rw-r--r--src/qt/res/icons/filesave.pngbin0 -> 1741 bytes
-rw-r--r--src/qt/res/icons/qrcode.pngbin0 -> 237 bytes
-rw-r--r--src/qt/res/images/qrcode.pngbin5993 -> 0 bytes
-rw-r--r--src/qt/sendcoinsdialog.cpp6
-rw-r--r--src/qt/sendcoinsdialog.h2
-rw-r--r--src/qt/sendcoinsentry.cpp10
-rw-r--r--src/qt/test/test_main.cpp11
-rw-r--r--src/qt/test/uritests.cpp71
-rw-r--r--src/qt/test/uritests.h15
-rw-r--r--src/qt/transactiondesc.cpp14
-rw-r--r--src/qt/transactionrecord.cpp70
-rw-r--r--src/qt/transactiontablemodel.cpp24
-rw-r--r--src/qt/transactionview.cpp6
-rw-r--r--src/qt/walletmodel.cpp47
-rw-r--r--src/qt/walletmodel.h15
-rw-r--r--src/rpcdump.cpp17
-rw-r--r--src/script.cpp70
-rw-r--r--src/script.h249
-rw-r--r--src/serialize.h268
-rw-r--r--src/strlcpy.h4
-rw-r--r--src/test/DoS_tests.cpp79
-rw-r--r--src/test/data/script_invalid.json25
-rw-r--r--src/test/data/script_valid.json78
-rw-r--r--src/test/getarg_tests.cpp167
-rw-r--r--src/test/key_tests.cpp12
-rw-r--r--src/test/miner_tests.cpp3
-rw-r--r--src/test/mruset_tests.cpp90
-rw-r--r--src/test/multisig_tests.cpp8
-rw-r--r--src/test/rpc_tests.cpp9
-rw-r--r--src/test/script_P2SH_tests.cpp15
-rw-r--r--src/test/script_tests.cpp170
-rw-r--r--src/test/sigopcount_tests.cpp2
-rw-r--r--src/test/transaction_tests.cpp28
-rw-r--r--src/test/util_tests.cpp18
-rw-r--r--src/ui_interface.h (renamed from src/qtui.h)24
-rw-r--r--src/uint256.h39
-rw-r--r--src/util.cpp563
-rw-r--r--src/util.h331
-rw-r--r--src/version.cpp67
-rw-r--r--src/version.h48
-rw-r--r--src/wallet.cpp200
-rw-r--r--src/wallet.h143
-rw-r--r--src/walletdb.cpp428
-rw-r--r--src/walletdb.h179
183 files changed, 31143 insertions, 20191 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..26d7549356
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+src/version.cpp export-subst
diff --git a/.gitignore b/.gitignore
index 66f93867d8..dafbc2b6bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
src/*.exe
src/bitcoin
src/bitcoind
+src/build.h
.*.swp
*.*~*
*.bak
diff --git a/COPYING b/COPYING
index ab042014e8..0f9223ba6b 100644
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,4 @@
-Copyright (c) 2009-2011 Bitcoin Developers
+Copyright (c) 2009-2012 Bitcoin Developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/bitcoin-qt.pro b/bitcoin-qt.pro
index 4913d0fec1..f586c53372 100644
--- a/bitcoin-qt.pro
+++ b/bitcoin-qt.pro
@@ -1,6 +1,6 @@
TEMPLATE = app
TARGET =
-VERSION = 0.5.99
+VERSION = 0.6.1
INCLUDEPATH += src src/json src/qt
DEFINES += QT_GUI BOOST_THREAD_USE_LIB
CONFIG += no_include_pwd
@@ -19,14 +19,6 @@ OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
-# use: qmake "USE_QRCODE=1"
-# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
-contains(USE_QRCODE, 1) {
- message(Building with QRCode support)
- DEFINES += USE_QRCODE
- LIBS += -lqrencode
-}
-
# use: qmake "RELEASE=1"
contains(RELEASE, 1) {
# Mac: compile for maximum compatibility (10.5, 32-bit)
@@ -38,6 +30,14 @@ contains(RELEASE, 1) {
}
}
+# use: qmake "USE_QRCODE=1"
+# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
+contains(USE_QRCODE, 1) {
+ message(Building with QRCode support)
+ DEFINES += USE_QRCODE
+ LIBS += -lqrencode
+}
+
# use: qmake "USE_UPNP=1" ( enabled by default; default)
# or: qmake "USE_UPNP=0" (disabled by default)
# or: qmake "USE_UPNP=-" (not supported)
@@ -62,12 +62,6 @@ contains(USE_DBUS, 1) {
QT += dbus
}
-# use: qmake "USE_SSL=1"
-contains(USE_SSL, 1) {
- message(Building with SSL support for RPC)
- DEFINES += USE_SSL
-}
-
# use: qmake "FIRST_CLASS_MESSAGING=1"
contains(FIRST_CLASS_MESSAGING, 1) {
message(Building with first-class messaging)
@@ -76,7 +70,7 @@ contains(FIRST_CLASS_MESSAGING, 1) {
contains(BITCOIN_NEED_QT_PLUGINS, 1) {
DEFINES += BITCOIN_NEED_QT_PLUGINS
- QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs
+ QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
}
!windows {
@@ -86,11 +80,20 @@ contains(BITCOIN_NEED_QT_PLUGINS, 1) {
# do not enable this on windows, as it will result in a non-working executable!
}
-# disable quite some warnings because bitcoin core "sins" a lot
-QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wno-strict-aliasing -Wno-invalid-offsetof -Wno-unused-variable -Wno-unused-parameter -Wno-sign-compare -Wno-char-subscripts -Wno-unused-value -Wno-sequence-point -Wno-parentheses -Wno-unknown-pragmas -Wno-switch
+# regenerate src/build.h
+!windows || contains(USE_BUILD_INFO, 1) {
+ genbuild.depends = FORCE
+ genbuild.commands = cd $$PWD; share/genbuild.sh $$OUT_PWD/build/build.h
+ genbuild.target = genbuildhook
+ PRE_TARGETDEPS += genbuildhook
+ QMAKE_EXTRA_TARGETS += genbuild
+ DEFINES += HAVE_BUILD_INFO
+}
+
+QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wformat -Wformat-security -Wno-invalid-offsetof -Wno-sign-compare -Wno-unused-parameter
# Input
-DEPENDPATH += src/qt src src json/include
+DEPENDPATH += src src/json src/qt
HEADERS += src/qt/bitcoingui.h \
src/qt/transactiontablemodel.h \
src/qt/addresstablemodel.h \
@@ -101,6 +104,7 @@ HEADERS += src/qt/bitcoingui.h \
src/qt/aboutdialog.h \
src/qt/editaddressdialog.h \
src/qt/bitcoinaddressvalidator.h \
+ src/addrman.h \
src/base58.h \
src/bignum.h \
src/checkpoints.h \
@@ -113,11 +117,11 @@ HEADERS += src/qt/bitcoingui.h \
src/net.h \
src/key.h \
src/db.h \
+ src/walletdb.h \
src/script.h \
- src/noui.h \
src/init.h \
- src/headers.h \
src/irc.h \
+ src/mruset.h \
src/json/json_spirit_writer_template.h \
src/json/json_spirit_writer.h \
src/json/json_spirit_value.h \
@@ -133,7 +137,6 @@ HEADERS += src/qt/bitcoingui.h \
src/qt/guiconstants.h \
src/qt/optionsmodel.h \
src/qt/monitoreddatamapper.h \
- src/qtui.h \
src/qt/transactiondesc.h \
src/qt/transactiondescdialog.h \
src/qt/bitcoinamountfield.h \
@@ -153,7 +156,9 @@ HEADERS += src/qt/bitcoingui.h \
src/qt/askpassphrasedialog.h \
src/protocol.h \
src/qt/notificator.h \
- src/qt/qtipcserver.h
+ src/qt/qtipcserver.h \
+ src/allocators.h \
+ src/ui_interface.h
SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/transactiontablemodel.cpp \
@@ -165,6 +170,7 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/aboutdialog.cpp \
src/qt/editaddressdialog.cpp \
src/qt/bitcoinaddressvalidator.cpp \
+ src/version.cpp \
src/util.cpp \
src/netbase.cpp \
src/key.cpp \
@@ -174,7 +180,9 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/net.cpp \
src/irc.cpp \
src/checkpoints.cpp \
+ src/addrman.cpp \
src/db.cpp \
+ src/walletdb.cpp \
src/json/json_spirit_writer.cpp \
src/json/json_spirit_value.cpp \
src/json/json_spirit_reader.cpp \
@@ -226,6 +234,16 @@ SOURCES += src/qt/qrcodedialog.cpp
FORMS += src/qt/forms/qrcodedialog.ui
}
+contains(BITCOIN_QT_TEST, 1) {
+SOURCES += src/qt/test/test_main.cpp \
+ src/qt/test/uritests.cpp
+HEADERS += src/qt/test/uritests.h
+DEPENDPATH += src/qt/test
+QT += testlib
+TARGET = bitcoin-qt_test
+DEFINES += BITCOIN_QT_TEST
+}
+
CODECFORTR = UTF-8
# for lrelease/lupdate
@@ -233,7 +251,7 @@ CODECFORTR = UTF-8
TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts)
isEmpty(QMAKE_LRELEASE) {
- win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
+ win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
}
isEmpty(TS_DIR):TS_DIR = src/qt/locale
@@ -248,7 +266,7 @@ PRE_TARGETDEPS += compiler_TSQM_make_all
# "Other files" to show in Qt Creator
OTHER_FILES += \
- doc/*.rst doc/*.txt doc/README README.md
+ doc/*.rst doc/*.txt doc/README README.md res/bitcoin-qt.rc
# platform specific defaults, if not overridden on command line
isEmpty(BOOST_LIB_SUFFIX) {
@@ -284,8 +302,20 @@ windows:LIBS += -lws2_32 -lshlwapi
windows:DEFINES += WIN32
windows:RC_FILE = src/qt/res/bitcoin-qt.rc
+windows:!contains(MINGW_THREAD_BUGFIX, 0) {
+ # At least qmake's win32-g++-cross profile is missing the -lmingwthrd
+ # thread-safety flag. GCC has -mthreads to enable this, but it doesn't
+ # work with static linking. -lmingwthrd must come BEFORE -lmingw, so
+ # it is prepended to QMAKE_LIBS_QT_ENTRY.
+ # It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes
+ # any problems on some untested qmake profile now or in the future.
+ DEFINES += _MT
+ QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY
+}
+
!windows:!mac {
DEFINES += LINUX
+ LIBS += -lrt
}
macx:HEADERS += src/qt/macdockiconhandler.h
@@ -300,7 +330,7 @@ INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$
LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,)
LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX
# -lgdi32 has to happen after -lcrypto (see #681)
-windows:LIBS += -lgdi32
+windows:LIBS += -lole32 -luuid -lgdi32
LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
contains(RELEASE, 1) {
diff --git a/contrib/debian/bitcoin-qt.desktop b/contrib/debian/bitcoin-qt.desktop
index ea5a6e4ac4..7cb00a2c8b 100644
--- a/contrib/debian/bitcoin-qt.desktop
+++ b/contrib/debian/bitcoin-qt.desktop
@@ -2,6 +2,8 @@
Encoding=UTF-8
Name=Bitcoin
Comment=Bitcoin P2P Cryptocurrency
+Comment[fr]=Bitcoin, monnaie virtuelle cryptographique pair à pair
+Comment[tr]=Bitcoin, eÅŸten eÅŸe kriptografik sanal para birimi
Exec=/usr/bin/bitcoin-qt
Terminal=false
Type=Application
diff --git a/contrib/debian/changelog b/contrib/debian/changelog
index db5e2682c6..cdd4a47e91 100644
--- a/contrib/debian/changelog
+++ b/contrib/debian/changelog
@@ -1,13 +1,43 @@
-bitcoin (0.5.1-natty1) natty; urgency=low
+bitcoin (0.6.1-natty0) natty; urgency=low
+
+ * New upstream release.
+
+ -- Matt Corallo <matt@bluematt.me> Sun, 6 May 2012 20:09:00 -0500
+
+bitcoin (0.6.0-natty0) natty; urgency=low
+
+ * New upstream release.
+ * Add GNOME/KDE support for bitcoin-qt's bitcoin: URI support.
+ Thanks to luke-jr for the KDE .protocol file.
+
+ -- Matt Corallo <matt@bluematt.me> Sat, 31 Mar 2012 15:35:00 -0500
+
+bitcoin (0.5.3-natty1) natty; urgency=low
+
+ * Mark for upload to PPA.
+
+ -- Matt Corallo <matt@bluematt.me> Wed, 14 Mar 2012 23:06:00 -0400
+
+bitcoin (0.5.3-natty0) natty; urgency=low
+
+ * New upstream release.
+
+ -- Luke Dashjr <luke+bitcoin+deb@dashjr.org> Tue, 10 Jan 2012 15:57:00 -0500
+
+bitcoin (0.5.2-natty1) natty; urgency=low
* Remove mentions on anonymity in package descriptions and manpage.
These should never have been there, bitcoin isnt anonymous without
a ton of work that virtually no users will ever be willing and
capable of doing
- * Add GNOME/KDE support for bitcoin-qt's bitcoin: URI support.
- Thanks to luke-jr for the KDE .protocol file.
- -- Matt Corallo <matt@bluematt.me> Fri, 23 Dec 2011 20:25:00 -0500
+ -- Matt Corallo <matt@bluematt.me> Sat, 7 Jan 2012 13:37:00 -0500
+
+bitcoin (0.5.2-natty0) natty; urgency=low
+
+ * New upstream release.
+
+ -- Luke Dashjr <luke+bitcoin+deb@dashjr.org> Fri, 16 Dec 2011 17:57:00 -0500
bitcoin (0.5.1-natty0) natty; urgency=low
diff --git a/contrib/debian/control b/contrib/debian/control
index c41664ca6f..745fd71ea8 100644
--- a/contrib/debian/control
+++ b/contrib/debian/control
@@ -15,7 +15,8 @@ Build-Depends: debhelper,
libboost-thread-dev (>> 1.35) | libboost-thread1.35-dev,
libboost-test-dev (>> 1.35) | libboost-test1.35-dev,
qt4-qmake,
- libqt4-dev
+ libqt4-dev,
+ libqrencode-dev
Standards-Version: 3.9.2
Homepage: http://www.bitcoin.org/
Vcs-Git: git://github.com/bitcoin/bitcoin.git
diff --git a/contrib/debian/copyright b/contrib/debian/copyright
index 5db418df3a..71fa77cf6c 100644
--- a/contrib/debian/copyright
+++ b/contrib/debian/copyright
@@ -37,7 +37,7 @@ Files: src/qt/res/icons/address-book.png, src/qt/res/icons/export.png,
src/qt/res/icons/history.png, src/qt/res/icons/key.png,
src/qt/res/icons/lock_*.png, src/qt/res/icons/overview.png,
src/qt/res/icons/receive.png, src/qt/res/icons/send.png,
- src/qt/res/icons/synced.png
+ src/qt/res/icons/synced.png, src/qt/res/icons/filesave.png
Copyright: David Vignoni (david@icon-king.com)
ICON KING - www.icon-king.com
License: LGPL
diff --git a/contrib/debian/rules b/contrib/debian/rules
index a1d65652e3..49c7766d13 100755
--- a/contrib/debian/rules
+++ b/contrib/debian/rules
@@ -20,7 +20,7 @@ override_dh_auto_clean:
cd src; $(MAKE) -f makefile.unix clean
override_dh_auto_configure:
- qmake bitcoin-qt.pro
+ qmake bitcoin-qt.pro USE_QRCODE=1
override_dh_auto_test:
cd src; $(MAKE) -f makefile.unix test_bitcoin
diff --git a/contrib/gitian-descriptors/deps-win32.yml b/contrib/gitian-descriptors/deps-win32.yml
new file mode 100644
index 0000000000..df1e3de358
--- /dev/null
+++ b/contrib/gitian-descriptors/deps-win32.yml
@@ -0,0 +1,71 @@
+---
+name: "bitcoin-deps"
+suites:
+- "lucid"
+architectures:
+- "i386"
+packages:
+- "mingw32"
+- "git-core"
+- "zip"
+- "faketime"
+- "wine"
+reference_datetime: "2011-01-30 00:00:00"
+remotes: []
+files:
+- "openssl-1.0.1b.tar.gz"
+- "db-4.8.30.NC.tar.gz"
+- "miniupnpc-1.6.tar.gz"
+- "zlib-1.2.6.tar.gz"
+- "libpng-1.5.9.tar.gz"
+- "qrencode-3.2.0.tar.bz2"
+script: |
+ #
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
+ export FAKETIME=$REFERENCE_DATETIME
+ export TZ=UTC
+ #
+ tar xzf openssl-1.0.1b.tar.gz
+ cd openssl-1.0.1b
+ ./Configure --cross-compile-prefix=i586-mingw32msvc- mingw
+ make
+ cd ..
+ #
+ tar xzf db-4.8.30.NC.tar.gz
+ cd db-4.8.30.NC/build_unix
+ ../dist/configure --enable-mingw --enable-cxx --host=i586-mingw32msvc CFLAGS="-I/usr/i586-mingw32msvc/include"
+ make $MAKEOPTS
+ cd ../..
+ #
+ tar xzf miniupnpc-1.6.tar.gz
+ cd miniupnpc-1.6
+ sed 's/dllwrap -k --driver-name gcc/$(DLLWRAP) -k --driver-name $(CC)/' -i Makefile.mingw
+ sed 's|wingenminiupnpcstrings $< $@|./wingenminiupnpcstrings $< $@|' -i Makefile.mingw
+ make -f Makefile.mingw DLLWRAP=i586-mingw32msvc-dllwrap CC=i586-mingw32msvc-gcc AR=i586-mingw32msvc-ar
+ cd ..
+ mv miniupnpc-1.6 miniupnpc
+ #
+ tar xzf zlib-1.2.6.tar.gz
+ cd zlib-1.2.6
+ make -f win32/Makefile.gcc PREFIX=i586-mingw32msvc- $MAKEOPTS
+ cd ..
+ #
+ tar xzf libpng-1.5.9.tar.gz
+ cd libpng-1.5.9
+ ./configure -disable-shared CC=i586-mingw32msvc-cc AR=i586-mingw32msvc-ar STRIP=i586-mingw32msvc-strip RANLIB=i586-mingw32msvc-ranlib OBJDUMP=i586-mingw32msvc-objdump LD=i586-mingw32msvc-ld LDFLAGS="-L../zlib-1.2.6/" CFLAGS="-I../zlib-1.2.6/"
+ make $MAKEOPTS
+ cd ..
+ #
+ tar xjf qrencode-3.2.0.tar.bz2
+ cd qrencode-3.2.0
+ ./configure CC=i586-mingw32msvc-cc AR=i586-mingw32msvc-ar STRIP=i586-mingw32msvc-strip RANLIB=i586-mingw32msvc-ranlib OBJDUMP=i586-mingw32msvc-objdump LD=i586-mingw32msvc-ld png_LIBS="../libpng-1.5.9/.libs/libpng15.a ../zlib-1.2.6/libz.a" png_CFLAGS="-I../libpng-1.5.9"
+ make $MAKEOPTS
+ cd ..
+ #
+ zip -r $OUTDIR/bitcoin-deps-0.0.4.zip \
+ $(ls qrencode-*/{qrencode.h,.libs/libqrencode.{,l}a} | sort) \
+ $(ls db-*/build_unix/{libdb_cxx.a,db.h,db_cxx.h,libdb.a,.libs/libdb_cxx-?.?.a} | sort) \
+ $(find openssl-* -name '*.a' -o -name '*.h' | sort) \
+ $(find miniupnpc -name '*.h' -o -name 'libminiupnpc.a' | sort)
+ # Kill wine processes as gitian won't figure out we are done otherwise
+ killall wineserver services.exe explorer.exe winedevice.exe
diff --git a/contrib/gitian-descriptors/gitian-win32.yml b/contrib/gitian-descriptors/gitian-win32.yml
index 493b61ca53..9752626d6a 100644
--- a/contrib/gitian-descriptors/gitian-win32.yml
+++ b/contrib/gitian-descriptors/gitian-win32.yml
@@ -10,7 +10,6 @@ packages:
- "unzip"
- "nsis"
- "faketime"
-- "wine"
reference_datetime: "2011-01-30 00:00:00"
remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
@@ -18,12 +17,7 @@ remotes:
files:
- "qt-win32-4.7.4-gitian.zip"
- "boost-win32-1.47.0-gitian.zip"
-- "openssl-1.0.0e.tar.gz"
-- "db-4.8.30.NC.tar.gz"
-- "miniupnpc-1.6.tar.gz"
-- "zlib-1.2.5.tar.gz"
-- "libpng-1.5.7.tar.gz"
-- "qrencode-3.2.0.tar.bz2"
+- "bitcoin-deps-0.0.4.zip"
script: |
#
mkdir $HOME/qt
@@ -45,64 +39,36 @@ script: |
mv include/boost .
cd ..
#
- tar xzf openssl-1.0.0e.tar.gz
- cd openssl-1.0.0e
- ./Configure --cross-compile-prefix=i586-mingw32msvc- mingw
- make
- cd ..
- #
- tar xzf db-4.8.30.NC.tar.gz
- cd db-4.8.30.NC/build_unix
- ../dist/configure --enable-mingw --enable-cxx --host=i586-mingw32msvc CFLAGS="-I/usr/i586-mingw32msvc/include"
- make $MAKEOPTS
- cd ../..
- #
- tar xzf miniupnpc-1.6.tar.gz
- cd miniupnpc-1.6
- sed 's/dllwrap -k --driver-name gcc/$(DLLWRAP) -k --driver-name $(CC)/' -i Makefile.mingw
- sed 's|wingenminiupnpcstrings $< $@|./wingenminiupnpcstrings $< $@|' -i Makefile.mingw
- make -f Makefile.mingw DLLWRAP=i586-mingw32msvc-dllwrap CC=i586-mingw32msvc-gcc AR=i586-mingw32msvc-ar
- cd ..
- mv miniupnpc-1.6 miniupnpc
- #
- tar xzf zlib-1.2.5.tar.gz
- cd zlib-1.2.5
- make -f win32/Makefile.gcc PREFIX=i586-mingw32msvc- $MAKEOPTS
- cd ..
- #
- tar xzf libpng-1.5.7.tar.gz
- cd libpng-1.5.7
- ./configure CC=i586-mingw32msvc-cc AR=i586-mingw32msvc-ar STRIP=i586-mingw32msvc-strip RANLIB=i586-mingw32msvc-ranlib OBJDUMP=i586-mingw32msvc-objdump LD=i586-mingw32msvc-ld LDFLAGS="-L../zlib-1.2.5/" CFLAGS="-I../zlib-1.2.5/"
- make $MAKEOPTS
- cd ..
+ unzip bitcoin-deps-0.0.4.zip
#
- tar xjf qrencode-3.2.0.tar.bz2
- cd qrencode-3.2.0
- ./configure CC=i586-mingw32msvc-cc AR=i586-mingw32msvc-ar STRIP=i586-mingw32msvc-strip RANLIB=i586-mingw32msvc-ranlib OBJDUMP=i586-mingw32msvc-objdump LD=i586-mingw32msvc-ld png_LIBS="../libpng-1.5.7/.libs/libpng15.a ../zlib-1.2.5/libz.a" png_CFLAGS="-I../libpng-1.5.7"
- make $MAKEOPTS
- cd ..
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
#
cd bitcoin
mkdir -p $OUTDIR/src
- cp -a . $OUTDIR/src
- rm -rf $OUTDIR/src/.git
+ git archive HEAD | tar -x -C $OUTDIR/src
cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt
cp $OUTDIR/src/COPYING $OUTDIR/license.txt
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
- $HOME/qt/src/bin/qmake -spec unsupported/win32-g++-cross USE_SSL=1 MINIUPNPC_LIB_PATH=$HOME/build/miniupnpc MINIUPNPC_INCLUDE_PATH=$HOME/build/ BDB_LIB_PATH=$HOME/build/db-4.8.30.NC/build_unix BDB_INCLUDE_PATH=$HOME/build/db-4.8.30.NC/build_unix BOOST_LIB_PATH=$HOME/build/boost_1_47_0/stage/lib BOOST_INCLUDE_PATH=$HOME/build/boost_1_47_0 BOOST_LIB_SUFFIX=-mt-s BOOST_THREAD_LIB_SUFFIX=_win32-mt-s OPENSSL_LIB_PATH=$HOME/build/openssl-1.0.0e OPENSSL_INCLUDE_PATH=$HOME/build/openssl-1.0.0e/include QRENCODE_LIB_PATH=$HOME/build/qrencode-3.2.0/.libs QRENCODE_INCLUDE_PATH=$HOME/build/qrencode-3.2.0 USE_QRCODE=1 INCLUDEPATH=$HOME/build DEFINES=BOOST_THREAD_USE_LIB BITCOIN_NEED_QT_PLUGINS=1 QMAKE_LRELEASE=lrelease QMAKE_CXXFLAGS=-frandom-seed=bitcoin QMAKE_LFLAGS=-frandom-seed=bitcoin
+ $HOME/qt/src/bin/qmake -spec unsupported/win32-g++-cross MINIUPNPC_LIB_PATH=$HOME/build/miniupnpc MINIUPNPC_INCLUDE_PATH=$HOME/build/ BDB_LIB_PATH=$HOME/build/db-4.8.30.NC/build_unix BDB_INCLUDE_PATH=$HOME/build/db-4.8.30.NC/build_unix BOOST_LIB_PATH=$HOME/build/boost_1_47_0/stage/lib BOOST_INCLUDE_PATH=$HOME/build/boost_1_47_0 BOOST_LIB_SUFFIX=-mt-s BOOST_THREAD_LIB_SUFFIX=_win32-mt-s OPENSSL_LIB_PATH=$HOME/build/openssl-1.0.1b OPENSSL_INCLUDE_PATH=$HOME/build/openssl-1.0.1b/include QRENCODE_LIB_PATH=$HOME/build/qrencode-3.2.0/.libs QRENCODE_INCLUDE_PATH=$HOME/build/qrencode-3.2.0 USE_QRCODE=1 INCLUDEPATH=$HOME/build DEFINES=BOOST_THREAD_USE_LIB BITCOIN_NEED_QT_PLUGINS=1 QMAKE_LRELEASE=lrelease QMAKE_CXXFLAGS=-frandom-seed=bitcoin QMAKE_LFLAGS=-frandom-seed=bitcoin USE_BUILD_INFO=1
make $MAKEOPTS
cp release/bitcoin-qt.exe $OUTDIR/
#
cd src
- sed 's/$(DEBUGFLAGS)/-frandom-seed=bitcoin/' -i makefile.linux-mingw
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
- make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_SSL=1 USE_UPNP=0
+ make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_UPNP=0 DEBUGFLAGS="-frandom-seed=bitcoin"
i586-mingw32msvc-strip bitcoind.exe
- makensis ../share/setup.nsi
- cp ../share/bitcoin-*-win32-setup.exe $OUTDIR/
mkdir $OUTDIR/daemon
cp bitcoind.exe $OUTDIR/daemon
+ cd ..
+ mkdir nsis
+ git archive HEAD | tar -x -C nsis
+ cd nsis/src
+ mkdir ../release
+ cp ../../release/* ../release/
+ cp ../../src/*.exe .
+ makensis ../share/setup.nsi
+ cp ../share/bitcoin-*-win32-setup.exe $OUTDIR/
diff --git a/contrib/gitian-descriptors/gitian.yml b/contrib/gitian-descriptors/gitian.yml
index 8a0ee0e038..8243c5c301 100644
--- a/contrib/gitian-descriptors/gitian.yml
+++ b/contrib/gitian-descriptors/gitian.yml
@@ -16,13 +16,15 @@ packages:
- "libssl-dev"
- "git-core"
- "unzip"
-- "libqrencode-dev"
+- "pkg-config"
+- "libpng12-dev"
reference_datetime: "2011-01-30 00:00:00"
remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
"dir": "bitcoin"
files:
- "miniupnpc-1.6.tar.gz"
+- "qrencode-3.2.0.tar.bz2"
script: |
INSTDIR="$HOME/install"
export LIBRARY_PATH="$INSTDIR/lib"
@@ -32,18 +34,22 @@ script: |
INSTALLPREFIX=$INSTDIR make $MAKEOPTS install
cd ..
#
+ tar xjf qrencode-3.2.0.tar.bz2
+ cd qrencode-3.2.0
+ ./configure --prefix=$INSTDIR --enable-static --disable-shared
+ make $MAKEOPTS install
+ cd ..
+ #
cd bitcoin
mkdir -p $OUTDIR/src
- cp -a . $OUTDIR/src
- rm -rf $OUTDIR/src/.git
+ git archive HEAD | tar -x -C $OUTDIR/src
cp $OUTDIR/src/doc/README $OUTDIR
cp $OUTDIR/src/COPYING $OUTDIR
cd src
- sed 's/$(DEBUGFLAGS)//' -i makefile.unix
- make -f makefile.unix STATIC=1 OPENSSL_INCLUDE_PATH="$INSTDIR/include" OPENSSL_LIB_PATH="$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0 USE_SSL=1
+ make -f makefile.unix STATIC=1 OPENSSL_INCLUDE_PATH="$INSTDIR/include" OPENSSL_LIB_PATH="$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0 DEBUGFLAGS=
mkdir -p $OUTDIR/bin/$GBUILD_BITS
install -s bitcoind $OUTDIR/bin/$GBUILD_BITS
cd ..
- qmake INCLUDEPATH="$INSTDIR/include" LIBS="-L$INSTDIR/lib" RELEASE=1 USE_SSL=1 USE_QRCODE=1
+ qmake INCLUDEPATH="$INSTDIR/include" LIBS="-L$INSTDIR/lib" RELEASE=1 USE_QRCODE=1
make $MAKEOPTS
install bitcoin-qt $OUTDIR/bin/$GBUILD_BITS
diff --git a/contrib/gitian-downloader/linux-download-config b/contrib/gitian-downloader/linux-download-config
index 36f5f682a9..88e48e2c23 100644
--- a/contrib/gitian-downloader/linux-download-config
+++ b/contrib/gitian-downloader/linux-download-config
@@ -15,9 +15,13 @@ signers:
weight: 40
name: Devrandom
key: devrandom
+ E463A93F5F3117EEDE6C7316BD02942421F4889F:
+ weight: 40
+ name: Luke-Jr
+ key: luke-jr
D762373D24904A3E42F33B08B9A408E71DAAC974:
weight: 40
- name: Sipa
+ name: "Pieter Wuille"
key: sipa
77E72E69DA7EE0A148C06B21B34821D4944DE5F7:
weight: 40
diff --git a/contrib/gitian-downloader/luke-jr-key.pgp b/contrib/gitian-downloader/luke-jr-key.pgp
new file mode 100644
index 0000000000..c40917d78c
--- /dev/null
+++ b/contrib/gitian-downloader/luke-jr-key.pgp
Binary files differ
diff --git a/contrib/gitian-downloader/sipa-key.pgp b/contrib/gitian-downloader/sipa-key.pgp
index 086c9eb42e..a52a5deb1b 100644
--- a/contrib/gitian-downloader/sipa-key.pgp
+++ b/contrib/gitian-downloader/sipa-key.pgp
Binary files differ
diff --git a/contrib/gitian-downloader/win32-download-config b/contrib/gitian-downloader/win32-download-config
index b1e1c7399e..595626f28f 100644
--- a/contrib/gitian-downloader/win32-download-config
+++ b/contrib/gitian-downloader/win32-download-config
@@ -15,9 +15,13 @@ signers:
weight: 40
name: Devrandom
key: devrandom
+ E463A93F5F3117EEDE6C7316BD02942421F4889F:
+ weight: 40
+ name: Luke-Jr
+ key: luke-jr
D762373D24904A3E42F33B08B9A408E71DAAC974:
weight: 40
- name: Sipa
+ name: "Pieter Wuille"
key: sipa
77E72E69DA7EE0A148C06B21B34821D4944DE5F7:
weight: 40
diff --git a/contrib/macdeploy/macdeployqtplus b/contrib/macdeploy/macdeployqtplus
index a43e7102a8..e159f9bbc3 100755
--- a/contrib/macdeploy/macdeployqtplus
+++ b/contrib/macdeploy/macdeployqtplus
@@ -17,16 +17,405 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-import subprocess, sys, re, os, shutil, os.path
+import subprocess, sys, re, os, shutil, stat, os.path
from time import sleep
from argparse import ArgumentParser
+# This is ported from the original macdeployqt with modifications
+
+class FrameworkInfo(object):
+ def __init__(self):
+ self.frameworkDirectory = ""
+ self.frameworkName = ""
+ self.frameworkPath = ""
+ self.binaryDirectory = ""
+ self.binaryName = ""
+ self.binaryPath = ""
+ self.version = ""
+ self.installName = ""
+ self.deployedInstallName = ""
+ self.sourceFilePath = ""
+ self.destinationDirectory = ""
+ self.sourceResourcesDirectory = ""
+ self.destinationResourcesDirectory = ""
+
+ def __eq__(self, other):
+ if self.__class__ == other.__class__:
+ return self.__dict__ == other.__dict__
+ else:
+ return False
+
+ def __str__(self):
+ return """ Framework name: %s
+ Framework directory: %s
+ Framework path: %s
+ Binary name: %s
+ Binary directory: %s
+ Binary path: %s
+ Version: %s
+ Install name: %s
+ Deployed install name: %s
+ Source file Path: %s
+ Deployed Directory (relative to bundle): %s
+""" % (self.frameworkName,
+ self.frameworkDirectory,
+ self.frameworkPath,
+ self.binaryName,
+ self.binaryDirectory,
+ self.binaryPath,
+ self.version,
+ self.installName,
+ self.deployedInstallName,
+ self.sourceFilePath,
+ self.destinationDirectory)
+
+ def isDylib(self):
+ return self.frameworkName.endswith(".dylib")
+
+ def isQtFramework(self):
+ if self.isDylib():
+ return self.frameworkName.startswith("libQt")
+ else:
+ return self.frameworkName.startswith("Qt")
+
+ reOLine = re.compile(r'^(.+) \(compatibility version [0-9.]+, current version [0-9.]+\)$')
+ bundleFrameworkDirectory = "Contents/Frameworks"
+ bundleBinaryDirectory = "Contents/MacOS"
+
+ @classmethod
+ def fromOtoolLibraryLine(cls, line):
+ # Note: line must be trimmed
+ if line == "":
+ return None
+
+ # Don't deploy system libraries (exception for libQtuitools and libQtlucene).
+ if line.startswith("/System/Library/") or line.startswith("@executable_path") or (line.startswith("/usr/lib/") and "libQt" not in line):
+ return None
+
+ m = cls.reOLine.match(line)
+ if m is None:
+ raise RuntimeError("otool line could not be parsed: " + line)
+
+ path = m.group(1)
+
+ info = cls()
+ info.sourceFilePath = path
+ info.installName = path
+
+ if path.endswith(".dylib"):
+ dirname, filename = os.path.split(path)
+ info.frameworkName = filename
+ info.frameworkDirectory = dirname
+ info.frameworkPath = path
+
+ info.binaryDirectory = dirname
+ info.binaryName = filename
+ info.binaryPath = path
+ info.version = "-"
+
+ info.installName = path
+ info.deployedInstallName = "@executable_path/../Frameworks/" + info.binaryName
+ info.sourceFilePath = path
+ info.destinationDirectory = cls.bundleFrameworkDirectory
+ else:
+ parts = path.split("/")
+ i = 0
+ # Search for the .framework directory
+ for part in parts:
+ if part.endswith(".framework"):
+ break
+ i += 1
+ if i == len(parts):
+ raise RuntimeError("Could not find .framework or .dylib in otool line: " + line)
+
+ info.frameworkName = parts[i]
+ info.frameworkDirectory = "/".join(parts[:i])
+ info.frameworkPath = os.path.join(info.frameworkDirectory, info.frameworkName)
+
+ info.binaryName = parts[i+3]
+ info.binaryDirectory = "/".join(parts[i+1:i+3])
+ info.binaryPath = os.path.join(info.binaryDirectory, info.binaryName)
+ info.version = parts[i+2]
+
+ info.deployedInstallName = "@executable_path/../Frameworks/" + os.path.join(info.frameworkName, info.binaryPath)
+ info.destinationDirectory = os.path.join(cls.bundleFrameworkDirectory, info.frameworkName, info.binaryDirectory)
+
+ info.sourceResourcesDirectory = os.path.join(info.frameworkPath, "Resources")
+ info.destinationResourcesDirectory = os.path.join(cls.bundleFrameworkDirectory, info.frameworkName, "Resources")
+
+ return info
+
+class ApplicationBundleInfo(object):
+ def __init__(self, path):
+ self.path = path
+ appName = os.path.splitext(os.path.basename(path))[0]
+ self.binaryPath = os.path.join(path, "Contents", "MacOS", appName)
+ if not os.path.exists(self.binaryPath):
+ raise RuntimeError("Could not find bundle binary for " + path)
+ self.resourcesPath = os.path.join(path, "Contents", "Resources")
+ self.pluginPath = os.path.join(path, "Contents", "PlugIns")
+
+class DeploymentInfo(object):
+ def __init__(self):
+ self.qtPath = None
+ self.pluginPath = None
+ self.deployedFrameworks = []
+
+ def detectQtPath(self, frameworkDirectory):
+ parentDir = os.path.dirname(frameworkDirectory)
+ if os.path.exists(os.path.join(parentDir, "translations")):
+ # Classic layout, e.g. "/usr/local/Trolltech/Qt-4.x.x"
+ self.qtPath = parentDir
+ elif os.path.exists(os.path.join(parentDir, "share", "qt4", "translations")):
+ # MacPorts layout, e.g. "/opt/local/share/qt4"
+ self.qtPath = os.path.join(parentDir, "share", "qt4")
+
+ if self.qtPath is not None:
+ pluginPath = os.path.join(self.qtPath, "plugins")
+ if os.path.exists(pluginPath):
+ self.pluginPath = pluginPath
+
+ def usesFramework(self, name):
+ nameDot = "%s." % name
+ libNameDot = "lib%s." % name
+ for framework in self.deployedFrameworks:
+ if framework.endswith(".framework"):
+ if framework.startswith(nameDot):
+ return True
+ elif framework.endswith(".dylib"):
+ if framework.startswith(libNameDot):
+ return True
+ return False
+
+def getFrameworks(binaryPath, verbose):
+ if verbose >= 3:
+ print "Inspecting with otool: " + binaryPath
+ otool = subprocess.Popen(["otool", "-L", binaryPath], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ o_stdout, o_stderr = otool.communicate()
+ if otool.returncode != 0:
+ if verbose >= 1:
+ sys.stderr.write(o_stderr)
+ sys.stderr.flush()
+ raise RuntimeError("otool failed with return code %d" % otool.returncode)
+
+ otoolLines = o_stdout.split("\n")
+ otoolLines.pop(0) # First line is the inspected binary
+ if ".framework" in binaryPath or binaryPath.endswith(".dylib"):
+ otoolLines.pop(0) # Frameworks and dylibs list themselves as a dependency.
+
+ libraries = []
+ for line in otoolLines:
+ info = FrameworkInfo.fromOtoolLibraryLine(line.strip())
+ if info is not None:
+ if verbose >= 3:
+ print "Found framework:"
+ print info
+ libraries.append(info)
+
+ return libraries
+
+def runInstallNameTool(action, *args):
+ subprocess.check_call(["install_name_tool", "-"+action] + list(args))
+
+def changeInstallName(oldName, newName, binaryPath, verbose):
+ if verbose >= 3:
+ print "Using install_name_tool:"
+ print " in", binaryPath
+ print " change reference", oldName
+ print " to", newName
+ runInstallNameTool("change", oldName, newName, binaryPath)
+
+def changeIdentification(id, binaryPath, verbose):
+ if verbose >= 3:
+ print "Using install_name_tool:"
+ print " change identification in", binaryPath
+ print " to", id
+ runInstallNameTool("id", id, binaryPath)
+
+def runStrip(binaryPath, verbose):
+ if verbose >= 3:
+ print "Using strip:"
+ print " stripped", binaryPath
+ subprocess.check_call(["strip", "-x", binaryPath])
+
+def copyFramework(framework, path, verbose):
+ fromPath = framework.sourceFilePath
+ toDir = os.path.join(path, framework.destinationDirectory)
+ toPath = os.path.join(toDir, framework.binaryName)
+
+ if not os.path.exists(fromPath):
+ raise RuntimeError("No file at " + fromPath)
+
+ if os.path.exists(toPath):
+ return None # Already there
+
+ if not os.path.exists(toDir):
+ os.makedirs(toDir)
+
+ shutil.copy2(fromPath, toPath)
+ if verbose >= 3:
+ print "Copied:", fromPath
+ print " to:", toPath
+
+ permissions = os.stat(toPath)
+ if not permissions.st_mode & stat.S_IWRITE:
+ os.chmod(toPath, permissions.st_mode | stat.S_IWRITE)
+
+ if not framework.isDylib(): # Copy resources for real frameworks
+ fromResourcesDir = framework.sourceResourcesDirectory
+ if os.path.exists(fromResourcesDir):
+ toResourcesDir = os.path.join(path, framework.destinationResourcesDirectory)
+ shutil.copytree(fromResourcesDir, toResourcesDir)
+ if verbose >= 3:
+ print "Copied resources:", fromResourcesDir
+ print " to:", toResourcesDir
+ elif framework.frameworkName.startswith("libQtGui"): # Copy qt_menu.nib (applies to non-framework layout)
+ qtMenuNibSourcePath = os.path.join(framework.frameworkDirectory, "Resources", "qt_menu.nib")
+ qtMenuNibDestinationPath = os.path.join(path, "Contents", "Resources", "qt_menu.nib")
+ if os.path.exists(qtMenuNibSourcePath) and not os.path.exists(qtMenuNibDestinationPath):
+ shutil.copytree(qtMenuNibSourcePath, qtMenuNibDestinationPath)
+ if verbose >= 3:
+ print "Copied for libQtGui:", qtMenuNibSourcePath
+ print " to:", qtMenuNibDestinationPath
+
+ return toPath
+
+def deployFrameworks(frameworks, bundlePath, binaryPath, strip, verbose, deploymentInfo=None):
+ if deploymentInfo is None:
+ deploymentInfo = DeploymentInfo()
+
+ while len(frameworks) > 0:
+ framework = frameworks.pop(0)
+ deploymentInfo.deployedFrameworks.append(framework.frameworkName)
+
+ if verbose >= 2:
+ print "Processing", framework.frameworkName, "..."
+
+ # Get the Qt path from one of the Qt frameworks
+ if deploymentInfo.qtPath is None and framework.isQtFramework():
+ deploymentInfo.detectQtPath(framework.frameworkDirectory)
+
+ if framework.installName.startswith("@executable_path"):
+ if verbose >= 2:
+ print framework.frameworkName, "already deployed, skipping."
+ continue
+
+ # install_name_tool the new id into the binary
+ changeInstallName(framework.installName, framework.deployedInstallName, binaryPath, verbose)
+
+ # Copy farmework to app bundle.
+ deployedBinaryPath = copyFramework(framework, bundlePath, verbose)
+ # Skip the rest if already was deployed.
+ if deployedBinaryPath is None:
+ continue
+
+ if strip:
+ runStrip(deployedBinaryPath, verbose)
+
+ # install_name_tool it a new id.
+ changeIdentification(framework.deployedInstallName, deployedBinaryPath, verbose)
+ # Check for framework dependencies
+ dependencies = getFrameworks(deployedBinaryPath, verbose)
+
+ for dependency in dependencies:
+ changeInstallName(dependency.installName, dependency.deployedInstallName, deployedBinaryPath, verbose)
+
+ # Deploy framework if necessary.
+ if dependency.frameworkName not in deploymentInfo.deployedFrameworks and dependency not in frameworks:
+ frameworks.append(dependency)
+
+ return deploymentInfo
+
+def deployFrameworksForAppBundle(applicationBundle, strip, verbose):
+ frameworks = getFrameworks(applicationBundle.binaryPath, verbose)
+ if len(frameworks) == 0 and verbose >= 1:
+ print "Warning: Could not find any external frameworks to deploy in %s." % (applicationBundle.path)
+ return DeploymentInfo()
+ else:
+ return deployFrameworks(frameworks, applicationBundle.path, applicationBundle.binaryPath, strip, verbose)
+
+def deployPlugins(appBundleInfo, deploymentInfo, strip, verbose):
+ # Lookup available plugins, exclude unneeded
+ plugins = []
+ for dirpath, dirnames, filenames in os.walk(deploymentInfo.pluginPath):
+ pluginDirectory = os.path.relpath(dirpath, deploymentInfo.pluginPath)
+ if pluginDirectory == "designer":
+ # Skip designer plugins
+ continue
+ elif pluginDirectory == "phonon":
+ # Deploy the phonon plugins only if phonon is in use
+ if not deploymentInfo.usesFramework("phonon"):
+ continue
+ elif pluginDirectory == "sqldrivers":
+ # Deploy the sql plugins only if QtSql is in use
+ if not deploymentInfo.usesFramework("QtSql"):
+ continue
+ elif pluginDirectory == "script":
+ # Deploy the script plugins only if QtScript is in use
+ if not deploymentInfo.usesFramework("QtScript"):
+ continue
+ elif pluginDirectory == "qmltooling":
+ # Deploy the qml plugins only if QtDeclarative is in use
+ if not deploymentInfo.usesFramework("QtDeclarative"):
+ continue
+ elif pluginDirectory == "bearer":
+ # Deploy the bearer plugins only if QtNetwork is in use
+ if not deploymentInfo.usesFramework("QtNetwork"):
+ continue
+
+ for pluginName in filenames:
+ pluginPath = os.path.join(pluginDirectory, pluginName)
+ if pluginName.endswith("_debug.dylib"):
+ # Skip debug plugins
+ continue
+ elif pluginPath == "imageformats/libqsvg.dylib" or pluginPath == "iconengines/libqsvgicon.dylib":
+ # Deploy the svg plugins only if QtSvg is in use
+ if not deploymentInfo.usesFramework("QtSvg"):
+ continue
+ elif pluginPath == "accessible/libqtaccessiblecompatwidgets.dylib":
+ # Deploy accessibility for Qt3Support only if the Qt3Support is in use
+ if not deploymentInfo.usesFramework("Qt3Support"):
+ continue
+ elif pluginPath == "graphicssystems/libqglgraphicssystem.dylib":
+ # Deploy the opengl graphicssystem plugin only if QtOpenGL is in use
+ if not deploymentInfo.usesFramework("QtOpenGL"):
+ continue
+
+ plugins.append((pluginDirectory, pluginName))
+
+ for pluginDirectory, pluginName in plugins:
+ if verbose >= 2:
+ print "Processing plugin", os.path.join(pluginDirectory, pluginName), "..."
+
+ sourcePath = os.path.join(deploymentInfo.pluginPath, pluginDirectory, pluginName)
+ destinationDirectory = os.path.join(appBundleInfo.pluginPath, pluginDirectory)
+ if not os.path.exists(destinationDirectory):
+ os.makedirs(destinationDirectory)
+
+ destinationPath = os.path.join(destinationDirectory, pluginName)
+ shutil.copy2(sourcePath, destinationPath)
+ if verbose >= 3:
+ print "Copied:", sourcePath
+ print " to:", destinationPath
+
+ if strip:
+ runStrip(destinationPath, verbose)
+
+ dependencies = getFrameworks(destinationPath, verbose)
+
+ for dependency in dependencies:
+ changeInstallName(dependency.installName, dependency.deployedInstallName, destinationPath, verbose)
+
+ # Deploy framework if necessary.
+ if dependency.frameworkName not in deploymentInfo.deployedFrameworks:
+ deployFrameworks([dependency], appBundleInfo.path, destinationPath, strip, verbose, deploymentInfo)
+
qt_conf="""[Paths]
translations=Resources
plugins=PlugIns
"""
-ap = ArgumentParser(description="""Front-end to macdeployqt with some additional functions.
+ap = ArgumentParser(description="""Improved version of macdeployqt.
Outputs a ready-to-deploy app in a folder "dist" and optionally wraps it in a .dmg file.
Note, that the "dist" folder will be deleted before deploying on each run.
@@ -69,22 +458,6 @@ for p in config.add_resources:
# ------------------------------------------------
-if len(config.add_qt_tr) == 0:
- add_qt_tr = []
-else:
- qt_tr_dir = os.path.join(os.getenv("QTDIR", ""), "translations")
- add_qt_tr = ["qt_%s.qm" % lng for lng in config.add_qt_tr[0].split(",")]
- for lng_file in add_qt_tr:
- p = os.path.join(qt_tr_dir, lng_file)
- if verbose >= 3:
- print "Checking for \"%s\"..." % p
- if not os.path.exists(p):
- if verbose >= 1:
- sys.stderr.write("Error: Could not find Qt translation file \"%s\"\n" % (lng_file))
- sys.exit(1)
-
-# ------------------------------------------------
-
if len(config.fancy) == 1:
if verbose >= 3:
print "Fancy: Importing plistlib..."
@@ -160,7 +533,6 @@ if os.path.exists("dist"):
# ------------------------------------------------
target = os.path.join("dist", app_bundle)
-target_res = os.path.join(target, "Contents", "Resources")
if verbose >= 2:
print "+ Copying source bundle +"
@@ -170,27 +542,61 @@ if verbose >= 3:
os.mkdir("dist")
shutil.copytree(app_bundle, target)
-# ------------------------------------------------
+applicationBundle = ApplicationBundleInfo(target)
-macdeployqt_args = ["macdeployqt", target, "-verbose=%d" % verbose]
-if not config.plugins:
- macdeployqt_args.append("-no-plugins")
-if not config.strip:
- macdeployqt_args.append("-no-strip")
+# ------------------------------------------------
if verbose >= 2:
- print "+ Running macdeployqt +"
+ print "+ Deploying frameworks +"
-ret = subprocess.call(macdeployqt_args)
-if ret != 0:
+try:
+ deploymentInfo = deployFrameworksForAppBundle(applicationBundle, config.strip, verbose)
+ if deploymentInfo.qtPath is None:
+ deploymentInfo.qtPath = os.getenv("QTDIR", None)
+ if deploymentInfo.qtPath is None:
+ if verbose >= 1:
+ sys.stderr.write("Warning: Could not detect Qt's path, skipping plugin deployment!\n")
+ config.plugins = False
+except RuntimeError as e:
+ if verbose >= 1:
+ sys.stderr.write("Error: %s\n" % str(e))
sys.exit(ret)
# ------------------------------------------------
+if config.plugins:
+ if verbose >= 2:
+ print "+ Deploying plugins +"
+
+ try:
+ deployPlugins(applicationBundle, deploymentInfo, config.strip, verbose)
+ except RuntimeError as e:
+ if verbose >= 1:
+ sys.stderr.write("Error: %s\n" % str(e))
+ sys.exit(ret)
+
+# ------------------------------------------------
+
+if len(config.add_qt_tr) == 0:
+ add_qt_tr = []
+else:
+ qt_tr_dir = os.path.join(deploymentInfo.qtPath, "translations")
+ add_qt_tr = ["qt_%s.qm" % lng for lng in config.add_qt_tr[0].split(",")]
+ for lng_file in add_qt_tr:
+ p = os.path.join(qt_tr_dir, lng_file)
+ if verbose >= 3:
+ print "Checking for \"%s\"..." % p
+ if not os.path.exists(p):
+ if verbose >= 1:
+ sys.stderr.write("Error: Could not find Qt translation file \"%s\"\n" % (lng_file))
+ sys.exit(1)
+
+# ------------------------------------------------
+
if verbose >= 2:
print "+ Installing qt.conf +"
-f = open(os.path.join(target_res, "qt.conf"), "wb")
+f = open(os.path.join(applicationBundle.resourcesPath, "qt.conf"), "wb")
f.write(qt_conf)
f.close()
@@ -201,8 +607,8 @@ if len(add_qt_tr) > 0 and verbose >= 2:
for lng_file in add_qt_tr:
if verbose >= 3:
- print os.path.join(qt_tr_dir, lng_file), "->", os.path.join(target_res, lng_file)
- shutil.copy2(os.path.join(qt_tr_dir, lng_file), os.path.join(target_res, lng_file))
+ print os.path.join(qt_tr_dir, lng_file), "->", os.path.join(applicationBundle.resourcesPath, lng_file)
+ shutil.copy2(os.path.join(qt_tr_dir, lng_file), os.path.join(applicationBundle.resourcesPath, lng_file))
# ------------------------------------------------
@@ -210,7 +616,7 @@ if len(config.add_resources) > 0 and verbose >= 2:
print "+ Adding additional resources +"
for p in config.add_resources:
- t = os.path.join(target_res, os.path.basename(p))
+ t = os.path.join(applicationBundle.resourcesPath, os.path.basename(p))
if verbose >= 3:
print p, "->", t
if os.path.isdir(p):
diff --git a/contrib/macdeploy/notes.txt b/contrib/macdeploy/notes.txt
index 0654ff7169..a3f0b5447d 100644
--- a/contrib/macdeploy/notes.txt
+++ b/contrib/macdeploy/notes.txt
@@ -6,7 +6,7 @@ You will need the appscript package for the fancy disk image creation to work.
Install it by invoking "sudo easy_install appscript".
Ths script should be invoked in the target directory like this:
-$source_dir/contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -add-qt-tr de,es,ru -dmg -fancy $source_dir/contrib/macdeploy/fancy.plist
+$source_dir/contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -add-qt-tr da,de,es,hu,ru,uk,zh_CN,zh_TW -dmg -fancy $source_dir/contrib/macdeploy/fancy.plist -verbose 2
During the process, the disk image window will pop up briefly where the fancy
settings are applied. This is normal, please do not interfere.
@@ -19,7 +19,7 @@ Fill in the following.
Enable custom process step: [x]
Command: %{sourceDir}/contrib/macdeploy/macdeployqtplus
Working directory: %{buildDir}
-Command arguments: Bitcoin-Qt.app -add-qt-tr de,ru -dmg -fancy %{sourceDir}/contrib/macdeploy/fancy.plist
+Command arguments: Bitcoin-Qt.app -add-qt-tr da,de,es,hu,ru,uk,zh_CN,zh_TW -dmg -fancy %{sourceDir}/contrib/macdeploy/fancy.plist -verbose 2
After that you can start the deployment process through the menu with
Build -> Deploy Project "bitcoin-qt"
diff --git a/contrib/miniupnpc/Portfile b/contrib/miniupnpc/Portfile
deleted file mode 100644
index 133aee532c..0000000000
--- a/contrib/miniupnpc/Portfile
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
-# $Id$
-
-PortSystem 1.0
-
-name miniupnpc
-epoch 2
-version 1.6
-revision 2
-categories net
-platforms darwin
-license BSD
-maintainers singingwolfboy openmaintainer
-description Lightweight client for UPnP protocol
-long_description \
- ${description}
-
-homepage http://miniupnp.free.fr/
-master_sites http://miniupnp.free.fr/files/download.php?file=${distname}${extract.suffix}&dummy=
-checksums md5 88055f2d4a061cfd4cfe25a9eae22f67 \
- sha1 ef8f2edb17f2e7c5b8dc67ee80a65c199d823e0a \
- rmd160 d86b75b331a3fb5525c71708548f311977c0598f
-
-use_configure no
-
-variant universal {}
-if {[variant_isset universal]} {
- set archflags ${configure.universal_cflags}
-} else {
- set archflags ${configure.cc_archflags}
-}
-
-build.args-append CC="${configure.cc} ${archflags}"
-
-post-patch {
- reinplace "s|-Wl,-install_name,|-Wl,-install_name,${prefix}/lib/|" ${worksrcpath}/Makefile
-}
-
-destroot.destdir PREFIX=${prefix} INSTALLPREFIX=${destroot}${prefix}
-
-livecheck.type regex
-livecheck.url http://miniupnp.free.fr/files/
-livecheck.regex ${name}-(\\d+(\\.\\d{1,4})+)${extract.suffix}
diff --git a/doc/README b/doc/README
index d8453a4d6d..a196a461e5 100644
--- a/doc/README
+++ b/doc/README
@@ -1,6 +1,6 @@
-Bitcoin 0.5.99 BETA
+Bitcoin 0.6.1 BETA
-Copyright (c) 2009-2011 Bitcoin Developers
+Copyright (c) 2009-2012 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
diff --git a/doc/README_windows.txt b/doc/README_windows.txt
index f3e9811aaf..ec0225fd92 100644
--- a/doc/README_windows.txt
+++ b/doc/README_windows.txt
@@ -1,6 +1,6 @@
-Bitcoin 0.5.99 BETA
+Bitcoin 0.6.1 BETA
-Copyright (c) 2009-2011 Bitcoin Developers
+Copyright (c) 2009-2012 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
diff --git a/doc/assets-attribution.txt b/doc/assets-attribution.txt
index 5cf0a734bf..0b0e377065 100644
--- a/doc/assets-attribution.txt
+++ b/doc/assets-attribution.txt
@@ -1,3 +1,7 @@
+Code: src/strlcpy.h
+Author: Todd C. Miller <Todd.Miller@courtesan.com>
+License: ISC
+
Icon: src/qt/res/icons/clock*.png, src/qt/res/icons/tx*.png,
src/qt/res/src/*.svg
Designer: Wladimir van der Laan
@@ -7,7 +11,7 @@ Icon: src/qt/res/icons/address-book.png, src/qt/res/icons/export.png,
src/qt/res/icons/history.png, src/qt/res/icons/key.png,
src/qt/res/icons/lock_*.png, src/qt/res/icons/overview.png,
src/qt/res/icons/receive.png, src/qt/res/icons/send.png,
- src/qt/res/icons/synced.png
+ src/qt/res/icons/synced.png, src/qt/res/icons/filesave.png
Icon Pack: NUVOLA ICON THEME for KDE 3.x
Designer: David Vignoni (david@icon-king.com)
ICON KING - www.icon-king.com
diff --git a/doc/build-msw.txt b/doc/build-msw.txt
index 346be75f56..b1805154e1 100644
--- a/doc/build-msw.txt
+++ b/doc/build-msw.txt
@@ -1,4 +1,4 @@
-Copyright (c) 2009-2011 Bitcoin Developers
+Copyright (c) 2009-2012 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
@@ -24,7 +24,7 @@ Dependencies
Libraries you need to download separately and build:
default path download
-OpenSSL \openssl-1.0.0d-mgw http://www.openssl.org/source/
+OpenSSL \openssl-1.0.1b-mgw http://www.openssl.org/source/
Berkeley DB \db-4.8.30.NC-mgw http://www.oracle.com/technology/software/products/berkeley-db/index.html
Boost \boost-1.47.0-mgw http://www.boost.org/users/download/
miniupnpc \miniupnpc-1.6-mgw http://miniupnp.tuxfamily.org/files/
@@ -36,7 +36,7 @@ Boost MIT-like license
miniupnpc New (3-clause) BSD license
Versions used in this release:
-OpenSSL 1.0.0e
+OpenSSL 1.0.1b
Berkeley DB 4.8.30.NC
Boost 1.47.0
miniupnpc 1.6
@@ -48,7 +48,7 @@ MSYS shell:
un-tar sources with MSYS 'tar xfz' to avoid issue with symlinks (OpenSSL ticket 2377)
change 'MAKE' env. variable from 'C:\MinGW32\bin\mingw32-make.exe' to '/c/MinGW32/bin/mingw32-make.exe'
-cd /c/openssl-1.0.0e-mgw
+cd /c/openssl-1.0.1b-mgw
./config
make
diff --git a/doc/build-osx.txt b/doc/build-osx.txt
index d47febe94b..2ae77067fc 100644
--- a/doc/build-osx.txt
+++ b/doc/build-osx.txt
@@ -1,4 +1,4 @@
-Copyright (c) 2011 Bitcoin Developers
+Copyright (c) 2009-2012 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying file
license.txt or http://www.opensource.org/licenses/mit-license.php. This
product includes software developed by the OpenSSL Project for use in the
@@ -36,12 +36,7 @@ git clone git@github.com:bitcoin/bitcoin.git bitcoin
3. Install dependencies from MacPorts
-sudo port install boost db48 openssl
-
-Install the right version of miniupnpc:
-pushd bitcoin/contrib/minipupnpc; sudo port install; popd
-(this will be unnecessary soon, you will just port install miniupnpc
-along with the rest of the dependencies).
+sudo port install boost db48 openssl miniupnpc
Optionally install qrencode (and set USE_QRCODE=1):
sudo port install qrencode
diff --git a/doc/build-unix.txt b/doc/build-unix.txt
index e1a1805aa3..c5b4205084 100644
--- a/doc/build-unix.txt
+++ b/doc/build-unix.txt
@@ -1,5 +1,4 @@
-Copyright (c) 2009-2010 Satoshi Nakamoto
-Copyright (c) 2011 Bitcoin Developers
+Copyright (c) 2009-2012 Bitcoin Developers
Distributed under the MIT/X11 software license, see the accompanying
file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in
diff --git a/doc/readme-qt.rst b/doc/readme-qt.rst
index 090177321e..294f31ac24 100644
--- a/doc/readme-qt.rst
+++ b/doc/readme-qt.rst
@@ -1,39 +1,6 @@
Bitcoin-qt: Qt4 GUI for Bitcoin
===============================
-Features
-========
-
-- All functionality of the Wx GUI, including wallet encryption
-
-- Compatibility with Linux (both GNOME and KDE), MacOSX and Windows
-
-- Notification on incoming / outgoing transactions (compatible with FreeDesktop and other desktop notification schemes)
-
-- General interface improvements: Splash screen, tabbed interface
-
-- Overview page with current balance, unconfirmed balance, and such
-
-- Better transaction list with status icons, real-time filtering and a context menu
-
-- Asks for confirmation before sending coins, for your own safety
-
-- CSV export of transactions and address book (for Excel bookkeeping)
-
-- Shows alternative icon when connected to testnet, so you never accidentally send real coins during testing
-
-- Shows a progress bar on initial block download, so that you don't have to wonder how many blocks it needs to download to be up to date
-
-- Sendmany support, send to multiple recipients at the same time
-
-- Multiple unit support, can show subdivided bitcoins (uBTC, mBTC) for users that like large numbers
-
-- Support for English, German, Russian and Dutch languages
-
-- Address books and transaction table can be sorted by any column
-
-- Accepts "bitcoin:" URLs from browsers and other sources through drag and drop
-
Build instructions
===================
@@ -92,7 +59,7 @@ Mac OS X
::
sudo port selfupdate
- sudo port install boost db48
+ sudo port install boost db48 miniupnpc
- Open the .pro file in Qt Creator and build as normal (cmd-B)
@@ -127,14 +94,6 @@ Set USE_UPNP to a different value to control this:
| USE_UPNP=1 | build with UPnP support turned on by default at runtime. |
+------------+--------------------------------------------------------------------------+
-Mac OS X users: miniupnpc is currently outdated on MacPorts. An updated Portfile is provided in contrib/miniupnpc within this project.
-You can execute the following commands in a terminal to install it:
-
-::
-
- cd <location of bitcoin-qt>/contrib/miniupnpc
- sudo port install
-
Notification support for recent (k)ubuntu versions
---------------------------------------------------
@@ -145,6 +104,20 @@ FreeDesktop notification interface through DBUS using the following qmake option
qmake "USE_DBUS=1"
+Generation of QR codes
+-----------------------
+
+libqrencode may be used to generate QRCode images for payment requests.
+It can be downloaded from http://fukuchi.org/works/qrencode/index.html.en, or installed via your package manager. Pass the USE_QRCODE
+flag to qmake to control this:
+
++--------------+--------------------------------------------------------------------------+
+| USE_QRCODE=0 | (the default) No QRCode support - libarcode not required |
++--------------+--------------------------------------------------------------------------+
+| USE_QRCODE=1 | QRCode support enabled |
++--------------+--------------------------------------------------------------------------+
+
+
Berkely DB version warning
==========================
diff --git a/doc/release-process.txt b/doc/release-process.txt
index 3f1a6a5fb7..00fafa4818 100644
--- a/doc/release-process.txt
+++ b/doc/release-process.txt
@@ -2,7 +2,7 @@
* update (commit) version in sources
bitcoin-qt.pro
- src/main.h (CLIENT_VERSION : PROTOCOL_VERSION in serialize.h is updated only on protocol changes)
+ src/version.h
share/setup.nsi
doc/README*
@@ -24,8 +24,11 @@
* Fetch and build inputs:
mkdir -p inputs; cd inputs/
wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.6.tar.gz' -O miniupnpc-1.6.tar.gz
- wget 'http://www.openssl.org/source/openssl-1.0.0e.tar.gz'
+ wget 'http://www.openssl.org/source/openssl-1.0.1b.tar.gz'
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
+ wget 'http://zlib.net/zlib-1.2.6.tar.gz'
+ wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.9.tar.gz'
+ wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2'
wget 'http://downloads.sourceforge.net/project/boost/boost/1.47.0/boost_1_47_0.tar.bz2'
wget 'http://download.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.4.tar.gz'
cd ..
@@ -33,6 +36,8 @@
cp build/out/boost-win32-1.47.0-gitian.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win32.yml
cp build/out/qt-win32-4.7.4-gitian.zip inputs/
+ ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml
+ cp build/out/bitcoin-deps-0.0.3.zip inputs/
* Build bitcoind and bitcoin-qt on Linux32, Linux64, and Win32:
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian.yml
@@ -67,14 +72,18 @@
rm -rf bitcoin-${VERSION}-win32
* perform Mac build
- See this blog post for how Gavin set up his build environment and
- patched macdeployqt to build the OSX release:
+ See this blog post for how Gavin set up his build environment to build the OSX
+ release; note that a patched version of macdeployqt is not needed anymore, as
+ the required functionality and fixes are implemented directly in macdeployqtplus:
http://gavintech.blogspot.com/2011/11/deploying-bitcoin-qt-on-osx.html
- qmake USE_SSL=1 USE_UPNP=1 bitcoin-qt.pro
+ Gavin also had trouble with the macports py27-appscript package; he
+ ended up installing a version that worked with: /usr/bin/easy_install-2.7 appscript
+
+ qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1 bitcoin-qt.pro
make
export QTDIR=/opt/local/share/qt4 # needed to find translations/qt_*.qm files
T=$(contrib/qt_translations.py $QTDIR/translations src/qt/locale)
- contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist
+ python2.7 contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist
Build output expected:
Bitcoin-Qt.dmg
diff --git a/doc/translation_process.md b/doc/translation_process.md
index cf1000573f..3ddfc0cbf4 100644
--- a/doc/translation_process.md
+++ b/doc/translation_process.md
@@ -1,7 +1,7 @@
Translations
============
-The QT GUI can be easily be translated into other languages. Here's how we
+The Qt GUI can be easily translated into other languages. Here's how we
handle those translations.
Files and Folders
@@ -30,10 +30,14 @@ This directory contains all translations. Filenames must adhere to this format:
#### Source file
-`src/qt/locale/bitcoin_en.ts` is a treated in a special way. It is used as the
-source for all other translations. Whenever a string in the code is change
+`src/qt/locale/bitcoin_en.ts` is treated in a special way. It is used as the
+source for all other translations. Whenever a string in the code is changed
this file must be updated to reflect those changes. Usually, this can be
-accomplished by running `lupdate`
+accomplished by running `lupdate` (included in the Qt SDK).
+
+An updated source file should be merged to github and transifex will pick it
+up from there. Afterwards the new strings show up as "Remaining" in transifex
+and can be translated.
Syncing with transifex
----------------------
@@ -42,9 +46,9 @@ We are using http://transifex.net as a frontend for translating the client.
https://www.transifex.net/projects/p/bitcoin/resource/tx/
-The "transifex client":http://help.transifex.net/features/client/index.html
-will help with fetching new translations from transifex.
-
+The "transifex client" (see: http://help.transifex.net/features/client/)
+will help with fetching new translations from transifex. Use the following
+config to be able to connect with the client.
### .tx/config
@@ -55,9 +59,22 @@ will help with fetching new translations from transifex.
file_filter = src/qt/locale/bitcoin_<lang>.ts
source_file = src/qt/locale/bitcoin_en.ts
source_lang = en
+
+### .tx/config (for Windows)
+
+ [main]
+ host = https://www.transifex.net
+
+ [bitcoin.tx]
+ file_filter = src\qt\locale\bitcoin_<lang>.ts
+ source_file = src\qt\locale\bitcoin_en.ts
+ source_lang = en
+
+It is also possible to directly download new translations one by one from transifex.
### Fetching new translations
1. `tx pull -a`
-2. update `src/qt/bitcoin.qrc`
+2. update `src/qt/bitcoin.qrc` manually or via
+ `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(bitcoin_\(.*\)\).ts/<file alias="\2">locale/\1.qm<\/file>/'`
3. `git add` new translations from `src/qt/locale/`
diff --git a/share/genbuild.sh b/share/genbuild.sh
new file mode 100755
index 0000000000..d959877dc8
--- /dev/null
+++ b/share/genbuild.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+if [ $# -gt 0 ]; then
+ FILE="$1"
+ shift
+ if [ -f "$FILE" ]; then
+ INFO="$(head -n 1 "$FILE")"
+ fi
+else
+ echo "Usage: $0 <filename>"
+ exit 1
+fi
+
+if [ -e "$(which git)" ]; then
+ # clean 'dirty' status of touched files that haven't been modified
+ git diff >/dev/null 2>/dev/null
+
+ # get a string like "v0.6.0-66-g59887e8-dirty"
+ DESC="$(git describe --dirty 2>/dev/null)"
+
+ # get a string like "2012-04-10 16:27:19 +0200"
+ TIME="$(git log -n 1 --format="%ci")"
+fi
+
+if [ -n "$DESC" ]; then
+ NEWINFO="#define BUILD_DESC \"$DESC\""
+else
+ NEWINFO="// No build information available"
+fi
+
+# only update build.h if necessary
+if [ "$INFO" != "$NEWINFO" ]; then
+ echo "$NEWINFO" >"$FILE"
+ echo "#define BUILD_DATE \"$TIME\"" >>"$FILE"
+fi
diff --git a/scripts/qt/extract_strings_qt.py b/share/qt/extract_strings_qt.py
index 6627de4abf..771f28ab0a 100755
--- a/scripts/qt/extract_strings_qt.py
+++ b/share/qt/extract_strings_qt.py
@@ -4,6 +4,7 @@ Extract _("...") strings for translation and convert to Qt4 stringdefs so that
they can be picked up by Qt linguist.
'''
from subprocess import Popen, PIPE
+import glob
OUT_CPP="src/qt/bitcoinstrings.cpp"
EMPTY=['""']
@@ -44,7 +45,7 @@ def parse_po(text):
return messages
-files = ['src/base58.h', 'src/bignum.h', 'src/db.cpp', 'src/db.h', 'src/headers.h', 'src/init.cpp', 'src/init.h', 'src/irc.cpp', 'src/irc.h', 'src/key.h', 'src/main.cpp', 'src/main.h', 'src/net.cpp', 'src/net.h', 'src/noui.h', 'src/script.cpp', 'src/script.h', 'src/serialize.h', 'src/strlcpy.h', 'src/uint256.h', 'src/util.cpp', 'src/util.h']
+files = glob.glob('src/*.cpp') + glob.glob('src/*.h')
# xgettext -n --keyword=_ $FILES
child = Popen(['xgettext','--output=-','-n','--keyword=_'] + files, stdout=PIPE)
@@ -53,9 +54,15 @@ child = Popen(['xgettext','--output=-','-n','--keyword=_'] + files, stdout=PIPE)
messages = parse_po(out)
f = open(OUT_CPP, 'w')
-f.write('#include <QtGlobal>\n')
-f.write('// Automatically generated by extract_strings.py\n')
-f.write('static const char *bitcoin_strings[] = {')
+f.write("""#include <QtGlobal>
+// Automatically generated by extract_strings.py
+#ifdef __GNUC__
+#define UNUSED __attribute__((unused))
+#else
+#define UNUSED
+#endif
+""")
+f.write('static const char UNUSED *bitcoin_strings[] = {')
for (msgid, msgstr) in messages:
if msgid != EMPTY:
f.write('QT_TRANSLATE_NOOP("bitcoin-core", %s),\n' % ('\n'.join(msgid)))
diff --git a/scripts/qt/img/reload.xcf b/share/qt/img/reload.xcf
index dc8be62831..dc8be62831 100644
--- a/scripts/qt/img/reload.xcf
+++ b/share/qt/img/reload.xcf
Binary files differ
diff --git a/scripts/qt/make_spinner.py b/share/qt/make_spinner.py
index 136aff3cb7..136aff3cb7 100755
--- a/scripts/qt/make_spinner.py
+++ b/share/qt/make_spinner.py
diff --git a/scripts/qt/make_windows_icon.py b/share/qt/make_windows_icon.sh
index bf607b1c62..bf607b1c62 100755
--- a/scripts/qt/make_windows_icon.py
+++ b/share/qt/make_windows_icon.sh
diff --git a/share/setup.nsi b/share/setup.nsi
index dcd192fa5f..10bf36b4cf 100644
--- a/share/setup.nsi
+++ b/share/setup.nsi
@@ -5,7 +5,7 @@ SetCompressor /SOLID lzma
# General Symbol Definitions
!define REGKEY "SOFTWARE\$(^Name)"
-!define VERSION 0.5.99
+!define VERSION 0.6.1
!define COMPANY "Bitcoin project"
!define URL http://www.bitcoin.org/
@@ -45,13 +45,13 @@ Var StartMenuGroup
!insertmacro MUI_LANGUAGE English
# Installer attributes
-OutFile bitcoin-0.5.99-win32-setup.exe
+OutFile bitcoin-0.6.1-win32-setup.exe
InstallDir $PROGRAMFILES\Bitcoin
CRCCheck on
XPStyle on
BrandingText " "
ShowInstDetails show
-VIProductVersion 0.5.99.0
+VIProductVersion 0.6.1.3
VIAddVersionKey ProductName Bitcoin
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
@@ -75,6 +75,10 @@ Section -Main SEC0000
File /r /x *.exe /x *.o ../src\*.*
SetOutPath $INSTDIR
WriteRegStr HKCU "${REGKEY}\Components" Main 1
+
+ # Remove old wxwidgets-based-bitcoin executable and locales:
+ Delete /REBOOTOK $INSTDIR\bitcoin.exe
+ RMDir /r /REBOOTOK $INSTDIR\locale
SectionEnd
Section -post SEC0001
@@ -94,10 +98,12 @@ Section -post SEC0001
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
- WriteRegStr HKCR "bitcoin" "URL Protocol" ""
- WriteRegStr HKCR "bitcoin" "" "URL:Bitcoin"
- WriteRegStr HKCR "bitcoin\DefaultIcon" "" $INSTDIR\bitcoin.exe
- WriteRegStr HKCR "bitcoin\shell\open\command" "" '"$INSTDIR\bitcoin.exe" "$$1"'
+
+ # bitcoin: URI handling disabled for 0.6.0
+ # WriteRegStr HKCR "bitcoin" "URL Protocol" ""
+ # WriteRegStr HKCR "bitcoin" "" "URL:Bitcoin"
+ # WriteRegStr HKCR "bitcoin\DefaultIcon" "" $INSTDIR\bitcoin-qt.exe
+ # WriteRegStr HKCR "bitcoin\shell\open\command" "" '"$INSTDIR\bitcoin-qt.exe" "$$1"'
SectionEnd
# Macro for selecting uninstaller sections
diff --git a/src/addrman.cpp b/src/addrman.cpp
new file mode 100644
index 0000000000..10d005aae9
--- /dev/null
+++ b/src/addrman.cpp
@@ -0,0 +1,528 @@
+// Copyright (c) 2012 Pieter Wuille
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+#include "addrman.h"
+
+using namespace std;
+
+int CAddrInfo::GetTriedBucket(const std::vector<unsigned char> &nKey) const
+{
+ CDataStream ss1(SER_GETHASH, 0);
+ std::vector<unsigned char> vchKey = GetKey();
+ ss1 << nKey << vchKey;
+ uint64 hash1 = Hash(ss1.begin(), ss1.end()).Get64();
+
+ CDataStream ss2(SER_GETHASH, 0);
+ std::vector<unsigned char> vchGroupKey = GetGroup();
+ ss2 << nKey << vchGroupKey << (hash1 % ADDRMAN_TRIED_BUCKETS_PER_GROUP);
+ uint64 hash2 = Hash(ss2.begin(), ss2.end()).Get64();
+ return hash2 % ADDRMAN_TRIED_BUCKET_COUNT;
+}
+
+int CAddrInfo::GetNewBucket(const std::vector<unsigned char> &nKey, const CNetAddr& src) const
+{
+ CDataStream ss1(SER_GETHASH, 0);
+ std::vector<unsigned char> vchGroupKey = GetGroup();
+ std::vector<unsigned char> vchSourceGroupKey = src.GetGroup();
+ ss1 << nKey << vchGroupKey << vchSourceGroupKey;
+ uint64 hash1 = Hash(ss1.begin(), ss1.end()).Get64();
+
+ CDataStream ss2(SER_GETHASH, 0);
+ ss2 << nKey << vchSourceGroupKey << (hash1 % ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP);
+ uint64 hash2 = Hash(ss2.begin(), ss2.end()).Get64();
+ return hash2 % ADDRMAN_NEW_BUCKET_COUNT;
+}
+
+bool CAddrInfo::IsTerrible(int64 nNow) const
+{
+ if (nLastTry && nLastTry >= nNow-60) // never remove things tried the last minute
+ return false;
+
+ if (nTime > nNow + 10*60) // came in a flying DeLorean
+ return true;
+
+ if (nTime==0 || nNow-nTime > ADDRMAN_HORIZON_DAYS*86400) // not seen in over a month
+ return true;
+
+ if (nLastSuccess==0 && nAttempts>=ADDRMAN_RETRIES) // tried three times and never a success
+ return true;
+
+ if (nNow-nLastSuccess > ADDRMAN_MIN_FAIL_DAYS*86400 && nAttempts>=ADDRMAN_MAX_FAILURES) // 10 successive failures in the last week
+ return true;
+
+ return false;
+}
+
+double CAddrInfo::GetChance(int64 nNow) const
+{
+ double fChance = 1.0;
+
+ int64 nSinceLastSeen = nNow - nTime;
+ int64 nSinceLastTry = nNow - nLastTry;
+
+ if (nSinceLastSeen < 0) nSinceLastSeen = 0;
+ if (nSinceLastTry < 0) nSinceLastTry = 0;
+
+ fChance *= 600.0 / (600.0 + nSinceLastSeen);
+
+ // deprioritize very recent attempts away
+ if (nSinceLastTry < 60*10)
+ fChance *= 0.01;
+
+ // deprioritize 50% after each failed attempt
+ for (int n=0; n<nAttempts; n++)
+ fChance /= 1.5;
+
+ return fChance;
+}
+
+CAddrInfo* CAddrMan::Find(const CNetAddr& addr, int *pnId)
+{
+ std::map<CNetAddr, int>::iterator it = mapAddr.find(addr);
+ if (it == mapAddr.end())
+ return NULL;
+ if (pnId)
+ *pnId = (*it).second;
+ std::map<int, CAddrInfo>::iterator it2 = mapInfo.find((*it).second);
+ if (it2 != mapInfo.end())
+ return &(*it2).second;
+ return NULL;
+}
+
+CAddrInfo* CAddrMan::Create(const CAddress &addr, const CNetAddr &addrSource, int *pnId)
+{
+ int nId = nIdCount++;
+ mapInfo[nId] = CAddrInfo(addr, addrSource);
+ mapAddr[addr] = nId;
+ mapInfo[nId].nRandomPos = vRandom.size();
+ vRandom.push_back(nId);
+ if (pnId)
+ *pnId = nId;
+ return &mapInfo[nId];
+}
+
+void CAddrMan::SwapRandom(int nRndPos1, int nRndPos2)
+{
+ if (nRndPos1 == nRndPos2)
+ return;
+
+ assert(nRndPos1 >= 0 && nRndPos2 >= 0);
+ assert(nRndPos1 < vRandom.size() && nRndPos2 < vRandom.size());
+
+ int nId1 = vRandom[nRndPos1];
+ int nId2 = vRandom[nRndPos2];
+
+ assert(mapInfo.count(nId1) == 1);
+ assert(mapInfo.count(nId2) == 1);
+
+ mapInfo[nId1].nRandomPos = nRndPos2;
+ mapInfo[nId2].nRandomPos = nRndPos1;
+
+ vRandom[nRndPos1] = nId2;
+ vRandom[nRndPos2] = nId1;
+}
+
+int CAddrMan::SelectTried(int nKBucket)
+{
+ std::vector<int> &vTried = vvTried[nKBucket];
+
+ // random shuffle the first few elements (using the entire list)
+ // find the least recently tried among them
+ int64 nOldest = -1;
+ int nOldestPos = -1;
+ for (unsigned int i = 0; i < ADDRMAN_TRIED_ENTRIES_INSPECT_ON_EVICT && i < vTried.size(); i++)
+ {
+ int nPos = GetRandInt(vTried.size() - i) + i;
+ int nTemp = vTried[nPos];
+ vTried[nPos] = vTried[i];
+ vTried[i] = nTemp;
+ assert(nOldest == -1 || mapInfo.count(nTemp) == 1);
+ if (nOldest == -1 || mapInfo[nTemp].nLastSuccess < mapInfo[nOldest].nLastSuccess) {
+ nOldest = nTemp;
+ nOldestPos = nPos;
+ }
+ }
+
+ return nOldestPos;
+}
+
+int CAddrMan::ShrinkNew(int nUBucket)
+{
+ assert(nUBucket >= 0 && nUBucket < vvNew.size());
+ std::set<int> &vNew = vvNew[nUBucket];
+
+ // first look for deletable items
+ for (std::set<int>::iterator it = vNew.begin(); it != vNew.end(); it++)
+ {
+ assert(mapInfo.count(*it));
+ CAddrInfo &info = mapInfo[*it];
+ if (info.IsTerrible())
+ {
+ if (--info.nRefCount == 0)
+ {
+ SwapRandom(info.nRandomPos, vRandom.size()-1);
+ vRandom.pop_back();
+ mapAddr.erase(info);
+ mapInfo.erase(*it);
+ nNew--;
+ }
+ vNew.erase(it);
+ return 0;
+ }
+ }
+
+ // otherwise, select four randomly, and pick the oldest of those to replace
+ int n[4] = {GetRandInt(vNew.size()), GetRandInt(vNew.size()), GetRandInt(vNew.size()), GetRandInt(vNew.size())};
+ int nI = 0;
+ int nOldest = -1;
+ for (std::set<int>::iterator it = vNew.begin(); it != vNew.end(); it++)
+ {
+ if (nI == n[0] || nI == n[1] || nI == n[2] || nI == n[3])
+ {
+ assert(nOldest == -1 || mapInfo.count(*it) == 1);
+ if (nOldest == -1 || mapInfo[*it].nTime < mapInfo[nOldest].nTime)
+ nOldest = *it;
+ }
+ nI++;
+ }
+ assert(mapInfo.count(nOldest) == 1);
+ CAddrInfo &info = mapInfo[nOldest];
+ if (--info.nRefCount == 0)
+ {
+ SwapRandom(info.nRandomPos, vRandom.size()-1);
+ vRandom.pop_back();
+ mapAddr.erase(info);
+ mapInfo.erase(nOldest);
+ nNew--;
+ }
+ vNew.erase(nOldest);
+
+ return 1;
+}
+
+void CAddrMan::MakeTried(CAddrInfo& info, int nId, int nOrigin)
+{
+ assert(vvNew[nOrigin].count(nId) == 1);
+
+ // remove the entry from all new buckets
+ for (std::vector<std::set<int> >::iterator it = vvNew.begin(); it != vvNew.end(); it++)
+ {
+ if ((*it).erase(nId))
+ info.nRefCount--;
+ }
+ nNew--;
+
+ assert(info.nRefCount == 0);
+
+ // what tried bucket to move the entry to
+ int nKBucket = info.GetTriedBucket(nKey);
+ std::vector<int> &vTried = vvTried[nKBucket];
+
+ // first check whether there is place to just add it
+ if (vTried.size() < ADDRMAN_TRIED_BUCKET_SIZE)
+ {
+ vTried.push_back(nId);
+ nTried++;
+ info.fInTried = true;
+ return;
+ }
+
+ // otherwise, find an item to evict
+ int nPos = SelectTried(nKBucket);
+
+ // find which new bucket it belongs to
+ assert(mapInfo.count(vTried[nPos]) == 1);
+ int nUBucket = mapInfo[vTried[nPos]].GetNewBucket(nKey);
+ std::set<int> &vNew = vvNew[nUBucket];
+
+ // remove the to-be-replaced tried entry from the tried set
+ CAddrInfo& infoOld = mapInfo[vTried[nPos]];
+ infoOld.fInTried = false;
+ infoOld.nRefCount = 1;
+ // do not update nTried, as we are going to move something else there immediately
+
+ // check whether there is place in that one,
+ if (vNew.size() < ADDRMAN_NEW_BUCKET_SIZE)
+ {
+ // if so, move it back there
+ vNew.insert(vTried[nPos]);
+ } else {
+ // otherwise, move it to the new bucket nId came from (there is certainly place there)
+ vvNew[nOrigin].insert(vTried[nPos]);
+ }
+ nNew++;
+
+ vTried[nPos] = nId;
+ // we just overwrote an entry in vTried; no need to update nTried
+ info.fInTried = true;
+ return;
+}
+
+void CAddrMan::Good_(const CService &addr, int64 nTime)
+{
+// printf("Good: addr=%s\n", addr.ToString().c_str());
+
+ int nId;
+ CAddrInfo *pinfo = Find(addr, &nId);
+
+ // if not found, bail out
+ if (!pinfo)
+ return;
+
+ CAddrInfo &info = *pinfo;
+
+ // check whether we are talking about the exact same CService (including same port)
+ if (info != addr)
+ return;
+
+ // update info
+ info.nLastSuccess = nTime;
+ info.nLastTry = nTime;
+ info.nTime = nTime;
+ info.nAttempts = 0;
+
+ // if it is already in the tried set, don't do anything else
+ if (info.fInTried)
+ return;
+
+ // find a bucket it is in now
+ int nRnd = GetRandInt(vvNew.size());
+ int nUBucket = -1;
+ for (unsigned int n = 0; n < vvNew.size(); n++)
+ {
+ int nB = (n+nRnd) % vvNew.size();
+ std::set<int> &vNew = vvNew[nB];
+ if (vNew.count(nId))
+ {
+ nUBucket = nB;
+ break;
+ }
+ }
+
+ // if no bucket is found, something bad happened;
+ // TODO: maybe re-add the node, but for now, just bail out
+ if (nUBucket == -1) return;
+
+ printf("Moving %s to tried\n", addr.ToString().c_str());
+
+ // move nId to the tried tables
+ MakeTried(info, nId, nUBucket);
+}
+
+bool CAddrMan::Add_(const CAddress &addr, const CNetAddr& source, int64 nTimePenalty)
+{
+ if (!addr.IsRoutable())
+ return false;
+
+ bool fNew = false;
+ int nId;
+ CAddrInfo *pinfo = Find(addr, &nId);
+
+ if (pinfo)
+ {
+ // periodically update nTime
+ bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < 24 * 60 * 60);
+ int64 nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60);
+ if (addr.nTime && (!pinfo->nTime || pinfo->nTime < addr.nTime - nUpdateInterval - nTimePenalty))
+ pinfo->nTime = max((int64)0, addr.nTime - nTimePenalty);
+
+ // add services
+ pinfo->nServices |= addr.nServices;
+
+ // do not update if no new information is present
+ if (!addr.nTime || (pinfo->nTime && addr.nTime <= pinfo->nTime))
+ return false;
+
+ // do not update if the entry was already in the "tried" table
+ if (pinfo->fInTried)
+ return false;
+
+ // do not update if the max reference count is reached
+ if (pinfo->nRefCount == ADDRMAN_NEW_BUCKETS_PER_ADDRESS)
+ return false;
+
+ // stochastic test: previous nRefCount == N: 2^N times harder to increase it
+ int nFactor = 1;
+ for (int n=0; n<pinfo->nRefCount; n++)
+ nFactor *= 2;
+ if (nFactor > 1 && (GetRandInt(nFactor) != 0))
+ return false;
+ } else {
+ pinfo = Create(addr, source, &nId);
+ pinfo->nTime = max((int64)0, (int64)pinfo->nTime - nTimePenalty);
+// printf("Added %s [nTime=%fhr]\n", pinfo->ToString().c_str(), (GetAdjustedTime() - pinfo->nTime) / 3600.0);
+ nNew++;
+ fNew = true;
+ }
+
+ int nUBucket = pinfo->GetNewBucket(nKey, source);
+ std::set<int> &vNew = vvNew[nUBucket];
+ if (!vNew.count(nId))
+ {
+ pinfo->nRefCount++;
+ if (vNew.size() == ADDRMAN_NEW_BUCKET_SIZE)
+ ShrinkNew(nUBucket);
+ vvNew[nUBucket].insert(nId);
+ }
+ return fNew;
+}
+
+void CAddrMan::Attempt_(const CService &addr, int64 nTime)
+{
+ CAddrInfo *pinfo = Find(addr);
+
+ // if not found, bail out
+ if (!pinfo)
+ return;
+
+ CAddrInfo &info = *pinfo;
+
+ // check whether we are talking about the exact same CService (including same port)
+ if (info != addr)
+ return;
+
+ // update info
+ info.nLastTry = nTime;
+ info.nAttempts++;
+}
+
+CAddress CAddrMan::Select_(int nUnkBias)
+{
+ if (size() == 0)
+ return CAddress();
+
+ double nCorTried = sqrt(nTried) * (100.0 - nUnkBias);
+ double nCorNew = sqrt(nNew) * nUnkBias;
+ if ((nCorTried + nCorNew)*GetRandInt(1<<30)/(1<<30) < nCorTried)
+ {
+ // use a tried node
+ double fChanceFactor = 1.0;
+ while(1)
+ {
+ int nKBucket = GetRandInt(vvTried.size());
+ std::vector<int> &vTried = vvTried[nKBucket];
+ if (vTried.size() == 0) continue;
+ int nPos = GetRandInt(vTried.size());
+ assert(mapInfo.count(vTried[nPos]) == 1);
+ CAddrInfo &info = mapInfo[vTried[nPos]];
+ if (GetRandInt(1<<30) < fChanceFactor*info.GetChance()*(1<<30))
+ return info;
+ fChanceFactor *= 1.2;
+ }
+ } else {
+ // use an new node
+ double fChanceFactor = 1.0;
+ while(1)
+ {
+ int nUBucket = GetRandInt(vvNew.size());
+ std::set<int> &vNew = vvNew[nUBucket];
+ if (vNew.size() == 0) continue;
+ int nPos = GetRandInt(vNew.size());
+ std::set<int>::iterator it = vNew.begin();
+ while (nPos--)
+ it++;
+ assert(mapInfo.count(*it) == 1);
+ CAddrInfo &info = mapInfo[*it];
+ if (GetRandInt(1<<30) < fChanceFactor*info.GetChance()*(1<<30))
+ return info;
+ fChanceFactor *= 1.2;
+ }
+ }
+}
+
+#ifdef DEBUG_ADDRMAN
+int CAddrMan::Check_()
+{
+ std::set<int> setTried;
+ std::map<int, int> mapNew;
+
+ if (vRandom.size() != nTried + nNew) return -7;
+
+ for (std::map<int, CAddrInfo>::iterator it = mapInfo.begin(); it != mapInfo.end(); it++)
+ {
+ int n = (*it).first;
+ CAddrInfo &info = (*it).second;
+ if (info.fInTried)
+ {
+
+ if (!info.nLastSuccess) return -1;
+ if (info.nRefCount) return -2;
+ setTried.insert(n);
+ } else {
+ if (info.nRefCount < 0 || info.nRefCount > ADDRMAN_NEW_BUCKETS_PER_ADDRESS) return -3;
+ if (!info.nRefCount) return -4;
+ mapNew[n] = info.nRefCount;
+ }
+ if (mapAddr[info] != n) return -5;
+ if (info.nRandomPos<0 || info.nRandomPos>=vRandom.size() || vRandom[info.nRandomPos] != n) return -14;
+ if (info.nLastTry < 0) return -6;
+ if (info.nLastSuccess < 0) return -8;
+ }
+
+ if (setTried.size() != nTried) return -9;
+ if (mapNew.size() != nNew) return -10;
+
+ for (int n=0; n<vvTried.size(); n++)
+ {
+ std::vector<int> &vTried = vvTried[n];
+ for (std::vector<int>::iterator it = vTried.begin(); it != vTried.end(); it++)
+ {
+ if (!setTried.count(*it)) return -11;
+ setTried.erase(*it);
+ }
+ }
+
+ for (int n=0; n<vvNew.size(); n++)
+ {
+ std::set<int> &vNew = vvNew[n];
+ for (std::set<int>::iterator it = vNew.begin(); it != vNew.end(); it++)
+ {
+ if (!mapNew.count(*it)) return -12;
+ if (--mapNew[*it] == 0)
+ mapNew.erase(*it);
+ }
+ }
+
+ if (setTried.size()) return -13;
+ if (mapNew.size()) return -15;
+
+ return 0;
+}
+#endif
+
+void CAddrMan::GetAddr_(std::vector<CAddress> &vAddr)
+{
+ int nNodes = ADDRMAN_GETADDR_MAX_PCT*vRandom.size()/100;
+ if (nNodes > ADDRMAN_GETADDR_MAX)
+ nNodes = ADDRMAN_GETADDR_MAX;
+
+ // perform a random shuffle over the first nNodes elements of vRandom (selecting from all)
+ for (int n = 0; n<nNodes; n++)
+ {
+ int nRndPos = GetRandInt(vRandom.size() - n) + n;
+ SwapRandom(n, nRndPos);
+ assert(mapInfo.count(vRandom[n]) == 1);
+ vAddr.push_back(mapInfo[vRandom[n]]);
+ }
+}
+
+void CAddrMan::Connected_(const CService &addr, int64 nTime)
+{
+ CAddrInfo *pinfo = Find(addr);
+
+ // if not found, bail out
+ if (!pinfo)
+ return;
+
+ CAddrInfo &info = *pinfo;
+
+ // check whether we are talking about the exact same CService (including same port)
+ if (info != addr)
+ return;
+
+ // update info
+ int64 nUpdateInterval = 20 * 60;
+ if (nTime - info.nTime > nUpdateInterval)
+ info.nTime = nTime;
+}
diff --git a/src/addrman.h b/src/addrman.h
new file mode 100644
index 0000000000..3768614cfe
--- /dev/null
+++ b/src/addrman.h
@@ -0,0 +1,502 @@
+// Copyright (c) 2012 Pieter Wuille
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#ifndef _BITCOIN_ADDRMAN
+#define _BITCOIN_ADDRMAN 1
+
+#include "netbase.h"
+#include "protocol.h"
+#include "util.h"
+
+
+#include <map>
+#include <vector>
+
+#include <openssl/rand.h>
+
+
+/** Extended statistics about a CAddress */
+class CAddrInfo : public CAddress
+{
+private:
+ // where knowledge about this address first came from
+ CNetAddr source;
+
+ // last succesfull connection by us
+ int64 nLastSuccess;
+
+ // last try whatsoever by us:
+ // int64 CAddress::nLastTry
+
+ // connection attempts since last succesful attempt
+ int nAttempts;
+
+ // reference count in new sets (memory only)
+ int nRefCount;
+
+ // in tried set? (memory only)
+ bool fInTried;
+
+ // position in vRandom
+ int nRandomPos;
+
+ friend class CAddrMan;
+
+public:
+
+ IMPLEMENT_SERIALIZE(
+ CAddress* pthis = (CAddress*)(this);
+ READWRITE(*pthis);
+ READWRITE(source);
+ READWRITE(nLastSuccess);
+ READWRITE(nAttempts);
+ )
+
+ void Init()
+ {
+ nLastSuccess = 0;
+ nLastTry = 0;
+ nAttempts = 0;
+ nRefCount = 0;
+ fInTried = false;
+ nRandomPos = -1;
+ }
+
+ CAddrInfo(const CAddress &addrIn, const CNetAddr &addrSource) : CAddress(addrIn), source(addrSource)
+ {
+ Init();
+ }
+
+ CAddrInfo() : CAddress(), source()
+ {
+ Init();
+ }
+
+ // Calculate in which "tried" bucket this entry belongs
+ int GetTriedBucket(const std::vector<unsigned char> &nKey) const;
+
+ // Calculate in which "new" bucket this entry belongs, given a certain source
+ int GetNewBucket(const std::vector<unsigned char> &nKey, const CNetAddr& src) const;
+
+ // Calculate in which "new" bucket this entry belongs, using its default source
+ int GetNewBucket(const std::vector<unsigned char> &nKey) const
+ {
+ return GetNewBucket(nKey, source);
+ }
+
+ // Determine whether the statistics about this entry are bad enough so that it can just be deleted
+ bool IsTerrible(int64 nNow = GetAdjustedTime()) const;
+
+ // Calculate the relative chance this entry should be given when selecting nodes to connect to
+ double GetChance(int64 nNow = GetAdjustedTime()) const;
+
+};
+
+// Stochastic address manager
+//
+// Design goals:
+// * Only keep a limited number of addresses around, so that addr.dat and memory requirements do not grow without bound.
+// * Keep the address tables in-memory, and asynchronously dump the entire to able in addr.dat.
+// * Make sure no (localized) attacker can fill the entire table with his nodes/addresses.
+//
+// To that end:
+// * Addresses are organized into buckets.
+// * Address that have not yet been tried go into 256 "new" buckets.
+// * Based on the address range (/16 for IPv4) of source of the information, 32 buckets are selected at random
+// * The actual bucket is chosen from one of these, based on the range the address itself is located.
+// * One single address can occur in up to 4 different buckets, to increase selection chances for addresses that
+// are seen frequently. The chance for increasing this multiplicity decreases exponentially.
+// * When adding a new address to a full bucket, a randomly chosen entry (with a bias favoring less recently seen
+// ones) is removed from it first.
+// * Addresses of nodes that are known to be accessible go into 64 "tried" buckets.
+// * Each address range selects at random 4 of these buckets.
+// * The actual bucket is chosen from one of these, based on the full address.
+// * When adding a new good address to a full bucket, a randomly chosen entry (with a bias favoring less recently
+// tried ones) is evicted from it, back to the "new" buckets.
+// * Bucket selection is based on cryptographic hashing, using a randomly-generated 256-bit key, which should not
+// be observable by adversaries.
+// * Several indexes are kept for high performance. Defining DEBUG_ADDRMAN will introduce frequent (and expensive)
+// consistency checks for the entire datastructure.
+
+// total number of buckets for tried addresses
+#define ADDRMAN_TRIED_BUCKET_COUNT 64
+
+// maximum allowed number of entries in buckets for tried addresses
+#define ADDRMAN_TRIED_BUCKET_SIZE 64
+
+// total number of buckets for new addresses
+#define ADDRMAN_NEW_BUCKET_COUNT 256
+
+// maximum allowed number of entries in buckets for new addresses
+#define ADDRMAN_NEW_BUCKET_SIZE 64
+
+// over how many buckets entries with tried addresses from a single group (/16 for IPv4) are spread
+#define ADDRMAN_TRIED_BUCKETS_PER_GROUP 4
+
+// over how many buckets entries with new addresses originating from a single group are spread
+#define ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP 32
+
+// in how many buckets for entries with new addresses a single address may occur
+#define ADDRMAN_NEW_BUCKETS_PER_ADDRESS 4
+
+// how many entries in a bucket with tried addresses are inspected, when selecting one to replace
+#define ADDRMAN_TRIED_ENTRIES_INSPECT_ON_EVICT 4
+
+// how old addresses can maximally be
+#define ADDRMAN_HORIZON_DAYS 30
+
+// after how many failed attempts we give up on a new node
+#define ADDRMAN_RETRIES 3
+
+// how many successive failures are allowed ...
+#define ADDRMAN_MAX_FAILURES 10
+
+// ... in at least this many days
+#define ADDRMAN_MIN_FAIL_DAYS 7
+
+// the maximum percentage of nodes to return in a getaddr call
+#define ADDRMAN_GETADDR_MAX_PCT 23
+
+// the maximum number of nodes to return in a getaddr call
+#define ADDRMAN_GETADDR_MAX 2500
+
+/** Stochastical (IP) address manager */
+class CAddrMan
+{
+private:
+ // critical section to protect the inner data structures
+ mutable CCriticalSection cs;
+
+ // secret key to randomize bucket select with
+ std::vector<unsigned char> nKey;
+
+ // last used nId
+ int nIdCount;
+
+ // table with information about all nId's
+ std::map<int, CAddrInfo> mapInfo;
+
+ // find an nId based on its network address
+ std::map<CNetAddr, int> mapAddr;
+
+ // randomly-ordered vector of all nId's
+ std::vector<int> vRandom;
+
+ // number of "tried" entries
+ int nTried;
+
+ // list of "tried" buckets
+ std::vector<std::vector<int> > vvTried;
+
+ // number of (unique) "new" entries
+ int nNew;
+
+ // list of "new" buckets
+ std::vector<std::set<int> > vvNew;
+
+protected:
+
+ // Find an entry.
+ CAddrInfo* Find(const CNetAddr& addr, int *pnId = NULL);
+
+ // find an entry, creating it if necessary.
+ // nTime and nServices of found node is updated, if necessary.
+ CAddrInfo* Create(const CAddress &addr, const CNetAddr &addrSource, int *pnId = NULL);
+
+ // Swap two elements in vRandom.
+ void SwapRandom(int nRandomPos1, int nRandomPos2);
+
+ // Return position in given bucket to replace.
+ int SelectTried(int nKBucket);
+
+ // Remove an element from a "new" bucket.
+ // This is the only place where actual deletes occur.
+ // They are never deleted while in the "tried" table, only possibly evicted back to the "new" table.
+ int ShrinkNew(int nUBucket);
+
+ // Move an entry from the "new" table(s) to the "tried" table
+ // @pre vvUnkown[nOrigin].count(nId) != 0
+ void MakeTried(CAddrInfo& info, int nId, int nOrigin);
+
+ // Mark an entry "good", possibly moving it from "new" to "tried".
+ void Good_(const CService &addr, int64 nTime);
+
+ // Add an entry to the "new" table.
+ bool Add_(const CAddress &addr, const CNetAddr& source, int64 nTimePenalty);
+
+ // Mark an entry as attempted to connect.
+ void Attempt_(const CService &addr, int64 nTime);
+
+ // Select an address to connect to.
+ // nUnkBias determines how much to favor new addresses over tried ones (min=0, max=100)
+ CAddress Select_(int nUnkBias);
+
+#ifdef DEBUG_ADDRMAN
+ // Perform consistency check. Returns an error code or zero.
+ int Check_();
+#endif
+
+ // Select several addresses at once.
+ void GetAddr_(std::vector<CAddress> &vAddr);
+
+ // Mark an entry as currently-connected-to.
+ void Connected_(const CService &addr, int64 nTime);
+
+public:
+
+ IMPLEMENT_SERIALIZE
+ (({
+ // serialized format:
+ // * version byte (currently 0)
+ // * nKey
+ // * nNew
+ // * nTried
+ // * number of "new" buckets
+ // * all nNew addrinfo's in vvNew
+ // * all nTried addrinfo's in vvTried
+ // * for each bucket:
+ // * number of elements
+ // * for each element: index
+ //
+ // Notice that vvTried, mapAddr and vVector are never encoded explicitly;
+ // they are instead reconstructed from the other information.
+ //
+ // vvNew is serialized, but only used if ADDRMAN_UNKOWN_BUCKET_COUNT didn't change,
+ // otherwise it is reconstructed as well.
+ //
+ // This format is more complex, but significantly smaller (at most 1.5 MiB), and supports
+ // changes to the ADDRMAN_ parameters without breaking the on-disk structure.
+ {
+ LOCK(cs);
+ unsigned char nVersion = 0;
+ READWRITE(nVersion);
+ READWRITE(nKey);
+ READWRITE(nNew);
+ READWRITE(nTried);
+
+ CAddrMan *am = const_cast<CAddrMan*>(this);
+ if (fWrite)
+ {
+ int nUBuckets = ADDRMAN_NEW_BUCKET_COUNT;
+ READWRITE(nUBuckets);
+ std::map<int, int> mapUnkIds;
+ int nIds = 0;
+ for (std::map<int, CAddrInfo>::iterator it = am->mapInfo.begin(); it != am->mapInfo.end(); it++)
+ {
+ if (nIds == nNew) break; // this means nNew was wrong, oh ow
+ mapUnkIds[(*it).first] = nIds;
+ CAddrInfo &info = (*it).second;
+ if (info.nRefCount)
+ {
+ READWRITE(info);
+ nIds++;
+ }
+ }
+ nIds = 0;
+ for (std::map<int, CAddrInfo>::iterator it = am->mapInfo.begin(); it != am->mapInfo.end(); it++)
+ {
+ if (nIds == nTried) break; // this means nTried was wrong, oh ow
+ CAddrInfo &info = (*it).second;
+ if (info.fInTried)
+ {
+ READWRITE(info);
+ nIds++;
+ }
+ }
+ for (std::vector<std::set<int> >::iterator it = am->vvNew.begin(); it != am->vvNew.end(); it++)
+ {
+ const std::set<int> &vNew = (*it);
+ int nSize = vNew.size();
+ READWRITE(nSize);
+ for (std::set<int>::iterator it2 = vNew.begin(); it2 != vNew.end(); it2++)
+ {
+ int nIndex = mapUnkIds[*it2];
+ READWRITE(nIndex);
+ }
+ }
+ } else {
+ int nUBuckets = 0;
+ READWRITE(nUBuckets);
+ am->nIdCount = 0;
+ am->mapInfo.clear();
+ am->mapAddr.clear();
+ am->vRandom.clear();
+ am->vvTried = std::vector<std::vector<int> >(ADDRMAN_TRIED_BUCKET_COUNT, std::vector<int>(0));
+ am->vvNew = std::vector<std::set<int> >(ADDRMAN_NEW_BUCKET_COUNT, std::set<int>());
+ for (int n = 0; n < am->nNew; n++)
+ {
+ CAddrInfo &info = am->mapInfo[n];
+ READWRITE(info);
+ am->mapAddr[info] = n;
+ info.nRandomPos = vRandom.size();
+ am->vRandom.push_back(n);
+ if (nUBuckets != ADDRMAN_NEW_BUCKET_COUNT)
+ {
+ am->vvNew[info.GetNewBucket(am->nKey)].insert(n);
+ info.nRefCount++;
+ }
+ }
+ am->nIdCount = am->nNew;
+ int nLost = 0;
+ for (int n = 0; n < am->nTried; n++)
+ {
+ CAddrInfo info;
+ READWRITE(info);
+ std::vector<int> &vTried = am->vvTried[info.GetTriedBucket(am->nKey)];
+ if (vTried.size() < ADDRMAN_TRIED_BUCKET_SIZE)
+ {
+ info.nRandomPos = vRandom.size();
+ info.fInTried = true;
+ am->vRandom.push_back(am->nIdCount);
+ am->mapInfo[am->nIdCount] = info;
+ am->mapAddr[info] = am->nIdCount;
+ vTried.push_back(am->nIdCount);
+ am->nIdCount++;
+ } else {
+ nLost++;
+ }
+ }
+ am->nTried -= nLost;
+ for (int b = 0; b < nUBuckets; b++)
+ {
+ std::set<int> &vNew = am->vvNew[b];
+ int nSize = 0;
+ READWRITE(nSize);
+ for (int n = 0; n < nSize; n++)
+ {
+ int nIndex = 0;
+ READWRITE(nIndex);
+ CAddrInfo &info = am->mapInfo[nIndex];
+ if (nUBuckets == ADDRMAN_NEW_BUCKET_COUNT && info.nRefCount < ADDRMAN_NEW_BUCKETS_PER_ADDRESS)
+ {
+ info.nRefCount++;
+ vNew.insert(nIndex);
+ }
+ }
+ }
+ }
+ }
+ });)
+
+ CAddrMan() : vRandom(0), vvTried(ADDRMAN_TRIED_BUCKET_COUNT, std::vector<int>(0)), vvNew(ADDRMAN_NEW_BUCKET_COUNT, std::set<int>())
+ {
+ nKey.resize(32);
+ RAND_bytes(&nKey[0], 32);
+
+ nIdCount = 0;
+ nTried = 0;
+ nNew = 0;
+ }
+
+ // Return the number of (unique) addresses in all tables.
+ int size()
+ {
+ return vRandom.size();
+ }
+
+ // Consistency check
+ void Check()
+ {
+#ifdef DEBUG_ADDRMAN
+ {
+ LOCK(cs);
+ int err;
+ if ((err=Check_()))
+ printf("ADDRMAN CONSISTENCY CHECK FAILED!!! err=%i\n", err);
+ }
+#endif
+ }
+
+ // Add a single address.
+ bool Add(const CAddress &addr, const CNetAddr& source, int64 nTimePenalty = 0)
+ {
+ bool fRet = false;
+ {
+ LOCK(cs);
+ Check();
+ fRet |= Add_(addr, source, nTimePenalty);
+ Check();
+ }
+ if (fRet)
+ printf("Added %s from %s: %i tried, %i new\n", addr.ToStringIPPort().c_str(), source.ToString().c_str(), nTried, nNew);
+ return fRet;
+ }
+
+ // Add multiple addresses.
+ bool Add(const std::vector<CAddress> &vAddr, const CNetAddr& source, int64 nTimePenalty = 0)
+ {
+ int nAdd = 0;
+ {
+ LOCK(cs);
+ Check();
+ for (std::vector<CAddress>::const_iterator it = vAddr.begin(); it != vAddr.end(); it++)
+ nAdd += Add_(*it, source, nTimePenalty) ? 1 : 0;
+ Check();
+ }
+ if (nAdd)
+ printf("Added %i addresses from %s: %i tried, %i new\n", nAdd, source.ToString().c_str(), nTried, nNew);
+ return nAdd > 0;
+ }
+
+ // Mark an entry as accessible.
+ void Good(const CService &addr, int64 nTime = GetAdjustedTime())
+ {
+ {
+ LOCK(cs);
+ Check();
+ Good_(addr, nTime);
+ Check();
+ }
+ }
+
+ // Mark an entry as connection attempted to.
+ void Attempt(const CService &addr, int64 nTime = GetAdjustedTime())
+ {
+ {
+ LOCK(cs);
+ Check();
+ Attempt_(addr, nTime);
+ Check();
+ }
+ }
+
+ // Choose an address to connect to.
+ // nUnkBias determines how much "new" entries are favored over "tried" ones (0-100).
+ CAddress Select(int nUnkBias = 50)
+ {
+ CAddress addrRet;
+ {
+ LOCK(cs);
+ Check();
+ addrRet = Select_(nUnkBias);
+ Check();
+ }
+ return addrRet;
+ }
+
+ // Return a bunch of addresses, selected at random.
+ std::vector<CAddress> GetAddr()
+ {
+ Check();
+ std::vector<CAddress> vAddr;
+ {
+ LOCK(cs);
+ GetAddr_(vAddr);
+ }
+ Check();
+ return vAddr;
+ }
+
+ // Mark an entry as currently-connected-to.
+ void Connected(const CService &addr, int64 nTime = GetAdjustedTime())
+ {
+ {
+ LOCK(cs);
+ Check();
+ Connected_(addr, nTime);
+ Check();
+ }
+ }
+};
+
+#endif
diff --git a/src/allocators.h b/src/allocators.h
new file mode 100644
index 0000000000..fa9534bc52
--- /dev/null
+++ b/src/allocators.h
@@ -0,0 +1,123 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Copyright (c) 2009-2012 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#ifndef BITCOIN_ALLOCATORS_H
+#define BITCOIN_ALLOCATORS_H
+
+#include <string.h>
+#include <string>
+
+#ifdef WIN32
+#ifdef _WIN32_WINNT
+#undef _WIN32_WINNT
+#endif
+#define _WIN32_WINNT 0x0501
+#define WIN32_LEAN_AND_MEAN 1
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#include <windows.h>
+// This is used to attempt to keep keying material out of swap
+// Note that VirtualLock does not provide this as a guarantee on Windows,
+// but, in practice, memory that has been VirtualLock'd almost never gets written to
+// the pagefile except in rare circumstances where memory is extremely low.
+#define mlock(p, n) VirtualLock((p), (n));
+#define munlock(p, n) VirtualUnlock((p), (n));
+#else
+#include <sys/mman.h>
+#include <limits.h>
+/* This comes from limits.h if it's not defined there set a sane default */
+#ifndef PAGESIZE
+#include <unistd.h>
+#define PAGESIZE sysconf(_SC_PAGESIZE)
+#endif
+#define mlock(a,b) \
+ mlock(((void *)(((size_t)(a)) & (~((PAGESIZE)-1)))),\
+ (((((size_t)(a)) + (b) - 1) | ((PAGESIZE) - 1)) + 1) - (((size_t)(a)) & (~((PAGESIZE) - 1))))
+#define munlock(a,b) \
+ munlock(((void *)(((size_t)(a)) & (~((PAGESIZE)-1)))),\
+ (((((size_t)(a)) + (b) - 1) | ((PAGESIZE) - 1)) + 1) - (((size_t)(a)) & (~((PAGESIZE) - 1))))
+#endif
+
+//
+// Allocator that locks its contents from being paged
+// out of memory and clears its contents before deletion.
+//
+template<typename T>
+struct secure_allocator : public std::allocator<T>
+{
+ // MSVC8 default copy constructor is broken
+ typedef std::allocator<T> base;
+ typedef typename base::size_type size_type;
+ typedef typename base::difference_type difference_type;
+ typedef typename base::pointer pointer;
+ typedef typename base::const_pointer const_pointer;
+ typedef typename base::reference reference;
+ typedef typename base::const_reference const_reference;
+ typedef typename base::value_type value_type;
+ secure_allocator() throw() {}
+ secure_allocator(const secure_allocator& a) throw() : base(a) {}
+ template <typename U>
+ secure_allocator(const secure_allocator<U>& a) throw() : base(a) {}
+ ~secure_allocator() throw() {}
+ template<typename _Other> struct rebind
+ { typedef secure_allocator<_Other> other; };
+
+ T* allocate(std::size_t n, const void *hint = 0)
+ {
+ T *p;
+ p = std::allocator<T>::allocate(n, hint);
+ if (p != NULL)
+ mlock(p, sizeof(T) * n);
+ return p;
+ }
+
+ void deallocate(T* p, std::size_t n)
+ {
+ if (p != NULL)
+ {
+ memset(p, 0, sizeof(T) * n);
+ munlock(p, sizeof(T) * n);
+ }
+ std::allocator<T>::deallocate(p, n);
+ }
+};
+
+
+//
+// Allocator that clears its contents before deletion.
+//
+template<typename T>
+struct zero_after_free_allocator : public std::allocator<T>
+{
+ // MSVC8 default copy constructor is broken
+ typedef std::allocator<T> base;
+ typedef typename base::size_type size_type;
+ typedef typename base::difference_type difference_type;
+ typedef typename base::pointer pointer;
+ typedef typename base::const_pointer const_pointer;
+ typedef typename base::reference reference;
+ typedef typename base::const_reference const_reference;
+ typedef typename base::value_type value_type;
+ zero_after_free_allocator() throw() {}
+ zero_after_free_allocator(const zero_after_free_allocator& a) throw() : base(a) {}
+ template <typename U>
+ zero_after_free_allocator(const zero_after_free_allocator<U>& a) throw() : base(a) {}
+ ~zero_after_free_allocator() throw() {}
+ template<typename _Other> struct rebind
+ { typedef zero_after_free_allocator<_Other> other; };
+
+ void deallocate(T* p, std::size_t n)
+ {
+ if (p != NULL)
+ memset(p, 0, sizeof(T) * n);
+ std::allocator<T>::deallocate(p, n);
+ }
+};
+
+// This is exactly like std::string, but with a custom allocator.
+// (secure_allocator<> is defined in serialize.h)
+typedef std::basic_string<char, std::char_traits<char>, secure_allocator<char> > SecureString;
+
+#endif
diff --git a/src/base58.h b/src/base58.h
index d3a153b1e4..90ce34b05b 100644
--- a/src/base58.h
+++ b/src/base58.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin Developers
+// Copyright (c) 2009-2012 The Bitcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -169,7 +169,7 @@ inline bool DecodeBase58Check(const std::string& str, std::vector<unsigned char>
-// Base class for all base58-encoded data
+/** Base class for all base58-encoded data */
class CBase58Data
{
protected:
@@ -252,11 +252,12 @@ public:
bool operator> (const CBase58Data& b58) const { return CompareTo(b58) > 0; }
};
-// base58-encoded bitcoin addresses
-// Public-key-hash-addresses have version 0 (or 192 testnet)
-// The data vector contains RIPEMD160(SHA256(pubkey)), where pubkey is the serialized public key
-// Script-hash-addresses have version 5 (or 196 testnet)
-// The data vector contains RIPEMD160(SHA256(cscript)), where cscript is the serialized redemption script
+/** base58-encoded bitcoin addresses.
+ * Public-key-hash-addresses have version 0 (or 111 testnet).
+ * The data vector contains RIPEMD160(SHA256(pubkey)), where pubkey is the serialized public key.
+ * Script-hash-addresses have version 5 (or 196 testnet).
+ * The data vector contains RIPEMD160(SHA256(cscript)), where cscript is the serialized redemption script.
+ */
class CBitcoinAddress : public CBase58Data
{
public:
@@ -287,7 +288,7 @@ public:
bool IsValid() const
{
- int nExpectedSize = 20;
+ unsigned int nExpectedSize = 20;
bool fExpectTestNet = false;
switch(nVersion)
{
@@ -356,6 +357,7 @@ public:
}
};
+/** A base58-encoded secret key */
class CBitcoinSecret : public CBase58Data
{
public:
@@ -394,6 +396,16 @@ public:
return fExpectTestNet == fTestNet && (vchData.size() == 32 || (vchData.size() == 33 && vchData[32] == 1));
}
+ bool SetString(const char* pszSecret)
+ {
+ return CBase58Data::SetString(pszSecret) && IsValid();
+ }
+
+ bool SetString(const std::string& strSecret)
+ {
+ return SetString(strSecret.c_str());
+ }
+
CBitcoinSecret(const CSecret& vchSecret, bool fCompressed)
{
SetSecret(vchSecret, fCompressed);
diff --git a/src/bignum.h b/src/bignum.h
index 135eade679..f0971e8850 100644
--- a/src/bignum.h
+++ b/src/bignum.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_BIGNUM_H
@@ -9,8 +9,9 @@
#include <vector>
#include <openssl/bn.h>
-#include "util.h"
+#include "util.h" // for uint64
+/** Errors thrown by the bignum class */
class bignum_error : public std::runtime_error
{
public:
@@ -18,7 +19,7 @@ public:
};
-
+/** RAII encapsulated BN_CTX (OpenSSL bignum context) */
class CAutoBN_CTX
{
protected:
@@ -46,7 +47,7 @@ public:
};
-
+/** C++ wrapper for BIGNUM (OpenSSL bignum) */
class CBigNum : public BIGNUM
{
public:
@@ -77,7 +78,8 @@ public:
BN_clear_free(this);
}
- CBigNum(char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
+ //CBigNum(char n) is not portable. Use 'signed char' or 'unsigned char'.
+ CBigNum(signed char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
CBigNum(short n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
CBigNum(int n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
CBigNum(long n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
@@ -115,9 +117,9 @@ public:
{
unsigned long n = BN_get_word(this);
if (!BN_is_negative(this))
- return (n > std::numeric_limits<int>::max() ? std::numeric_limits<int>::max() : n);
+ return (n > (unsigned long)std::numeric_limits<int>::max() ? std::numeric_limits<int>::max() : n);
else
- return (n > std::numeric_limits<int>::max() ? std::numeric_limits<int>::min() : -(int)n);
+ return (n > (unsigned long)std::numeric_limits<int>::max() ? std::numeric_limits<int>::min() : -(int)n);
}
void setint64(int64 n)
@@ -220,7 +222,7 @@ public:
if (vch.size() > 4)
vch[4] &= 0x7f;
uint256 n = 0;
- for (int i = 0, j = vch.size()-1; i < sizeof(n) && j >= 4; i++, j--)
+ for (unsigned int i = 0, j = vch.size()-1; i < sizeof(n) && j >= 4; i++, j--)
((unsigned char*)&n)[i] = vch[j];
return n;
}
@@ -243,7 +245,7 @@ public:
std::vector<unsigned char> getvch() const
{
unsigned int nSize = BN_bn2mpi(this, NULL);
- if (nSize < 4)
+ if (nSize <= 4)
return std::vector<unsigned char>();
std::vector<unsigned char> vch(nSize);
BN_bn2mpi(this, &vch[0]);
@@ -295,12 +297,12 @@ public:
psz++;
// hex string to bignum
- static char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 };
+ static signed char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 };
*this = 0;
while (isxdigit(*psz))
{
*this <<= 4;
- int n = phexdigit[*psz++];
+ int n = phexdigit[(unsigned char)*psz++];
*this += n;
}
if (fNegative)
diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp
index 03c01f7b21..0b851c4e70 100644
--- a/src/bitcoinrpc.cpp
+++ b/src/bitcoinrpc.cpp
@@ -1,12 +1,17 @@
// Copyright (c) 2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
+#include "main.h"
+#include "wallet.h"
#include "db.h"
+#include "walletdb.h"
#include "net.h"
#include "init.h"
+#include "ui_interface.h"
+#include "bitcoinrpc.h"
+
#undef printf
#include <boost/asio.hpp>
#include <boost/filesystem.hpp>
@@ -14,15 +19,10 @@
#include <boost/iostreams/stream.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/lexical_cast.hpp>
-#ifdef USE_SSL
#include <boost/asio/ssl.hpp>
-#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> SSLStream;
-#endif
-#include "json/json_spirit_reader_template.h"
-#include "json/json_spirit_writer_template.h"
-#include "json/json_spirit_utils.h"
+
#define printf OutputDebugStringF
// MinGW 3.4.5 gets "fatal error: had to relocate PCH" if the json headers are
// precompiled in headers.h. The problem might be when the pch file goes over
@@ -35,8 +35,6 @@ using namespace boost::asio;
using namespace json_spirit;
void ThreadRPCServer2(void* parg);
-typedef Value(*rpcfn_type)(const Array& params, bool fHelp);
-extern map<string, rpcfn_type> mapCallTable;
static std::string strRPCUserColonPass;
@@ -54,24 +52,6 @@ Object JSONRPCError(int code, const string& message)
return error;
}
-
-void PrintConsole(const std::string &format, ...)
-{
- char buffer[50000];
- int limit = sizeof(buffer);
- va_list arg_ptr;
- va_start(arg_ptr, format);
- int ret = _vsnprintf(buffer, limit, format.c_str(), arg_ptr);
- va_end(arg_ptr);
- if (ret < 0 || ret >= limit)
- {
- ret = limit - 1;
- buffer[limit-1] = 0;
- }
- printf("%s", buffer);
- fprintf(stdout, "%s", buffer);
-}
-
double GetDifficulty(const CBlockIndex* blockindex = NULL)
{
// Floating point number that is a multiple of the minimum difficulty,
@@ -120,6 +100,17 @@ Value ValueFromAmount(int64 amount)
return (double)amount / (double)COIN;
}
+std::string
+HexBits(unsigned int nBits)
+{
+ union {
+ int32_t nBits;
+ char cBits[4];
+ } uBits;
+ uBits.nBits = htonl((int32_t)nBits);
+ return HexStr(BEGIN(uBits.cBits), END(uBits.cBits));
+}
+
void WalletTxToJSON(const CWalletTx& wtx, Object& entry)
{
int confirms = wtx.GetDepthInMainChain();
@@ -147,11 +138,13 @@ Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex)
{
Object result;
result.push_back(Pair("hash", block.GetHash().GetHex()));
- result.push_back(Pair("blockcount", blockindex->nHeight));
+ result.push_back(Pair("size", (int)::GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION)));
+ result.push_back(Pair("height", blockindex->nHeight));
result.push_back(Pair("version", block.nVersion));
result.push_back(Pair("merkleroot", block.hashMerkleRoot.GetHex()));
result.push_back(Pair("time", (boost::int64_t)block.GetBlockTime()));
result.push_back(Pair("nonce", (boost::uint64_t)block.nNonce));
+ result.push_back(Pair("bits", HexBits(block.nBits)));
result.push_back(Pair("difficulty", GetDifficulty(blockindex)));
Array txhashes;
BOOST_FOREACH (const CTransaction&tx, block.vtx)
@@ -159,9 +152,9 @@ Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex)
result.push_back(Pair("tx", txhashes));
if (blockindex->pprev)
- result.push_back(Pair("hashprevious", blockindex->pprev->GetBlockHash().GetHex()));
+ result.push_back(Pair("previousblockhash", blockindex->pprev->GetBlockHash().GetHex()));
if (blockindex->pnext)
- result.push_back(Pair("hashnext", blockindex->pnext->GetBlockHash().GetHex()));
+ result.push_back(Pair("nextblockhash", blockindex->pnext->GetBlockHash().GetHex()));
return result;
}
@@ -171,23 +164,14 @@ Object blockToJSON(const CBlock& block, const CBlockIndex* blockindex)
/// Note: This interface may still be subject to change.
///
-
-Value help(const Array& params, bool fHelp)
+string CRPCTable::help(string strCommand) const
{
- if (fHelp || params.size() > 1)
- throw runtime_error(
- "help [command]\n"
- "List commands, or get help for a command.");
-
- string strCommand;
- if (params.size() > 0)
- strCommand = params[0].get_str();
-
string strRet;
set<rpcfn_type> setDone;
- for (map<string, rpcfn_type>::iterator mi = mapCallTable.begin(); mi != mapCallTable.end(); ++mi)
+ for (map<string, const CRPCCommand*>::const_iterator mi = mapCommands.begin(); mi != mapCommands.end(); ++mi)
{
- string strMethod = (*mi).first;
+ const CRPCCommand *pcmd = mi->second;
+ string strMethod = mi->first;
// We already filter duplicates, but these deprecated screw up the sort order
if (strMethod == "getamountreceived" ||
strMethod == "getallreceived" ||
@@ -199,7 +183,7 @@ Value help(const Array& params, bool fHelp)
try
{
Array params;
- rpcfn_type pfn = (*mi).second;
+ rpcfn_type pfn = pcmd->actor;
if (setDone.insert(pfn).second)
(*pfn)(params, true);
}
@@ -208,7 +192,7 @@ Value help(const Array& params, bool fHelp)
// Help text is returned in an exception
string strHelp = string(e.what());
if (strCommand == "")
- if (strHelp.find('\n') != -1)
+ if (strHelp.find('\n') != string::npos)
strHelp = strHelp.substr(0, strHelp.find('\n'));
strRet += strHelp + "\n";
}
@@ -219,6 +203,20 @@ Value help(const Array& params, bool fHelp)
return strRet;
}
+Value help(const Array& params, bool fHelp)
+{
+ if (fHelp || params.size() > 1)
+ throw runtime_error(
+ "help [command]\n"
+ "List commands, or get help for a command.");
+
+ string strCommand;
+ if (params.size() > 0)
+ strCommand = params[0].get_str();
+
+ return tableRPC.help(strCommand);
+}
+
Value stop(const Array& params, bool fHelp)
{
@@ -226,13 +224,9 @@ Value stop(const Array& params, bool fHelp)
throw runtime_error(
"stop\n"
"Stop bitcoin server.");
-#ifndef QT_GUI
// Shutdown will take long enough that the response should get back
- CreateThread(Shutdown, NULL);
+ QueueShutdown();
return "bitcoin server stopping";
-#else
- throw runtime_error("NYI: cannot shut down GUI with RPC command");
-#endif
}
@@ -288,7 +282,7 @@ Value getgenerate(const Array& params, bool fHelp)
"getgenerate\n"
"Returns true or false.");
- return (bool)fGenerateBitcoins;
+ return GetBoolArg("-gen");
}
@@ -307,13 +301,11 @@ Value setgenerate(const Array& params, bool fHelp)
if (params.size() > 1)
{
int nGenProcLimit = params[1].get_int();
- fLimitProcessors = (nGenProcLimit != -1);
- WriteSetting("fLimitProcessors", fLimitProcessors);
- if (nGenProcLimit != -1)
- WriteSetting("nLimitProcessors", nLimitProcessors = nGenProcLimit);
+ mapArgs["-genproclimit"] = itostr(nGenProcLimit);
if (nGenProcLimit == 0)
fGenerate = false;
}
+ mapArgs["-gen"] = (fGenerate ? "1" : "0");
GenerateBitcoins(fGenerate, pwalletMain);
return Value::null;
@@ -343,6 +335,7 @@ Value getinfo(const Array& params, bool fHelp)
Object obj;
obj.push_back(Pair("version", (int)CLIENT_VERSION));
obj.push_back(Pair("protocolversion",(int)PROTOCOL_VERSION));
+ obj.push_back(Pair("walletversion", pwalletMain->GetVersion()));
obj.push_back(Pair("balance", ValueFromAmount(pwalletMain->GetBalance())));
obj.push_back(Pair("blocks", (int)nBestHeight));
obj.push_back(Pair("connections", (int)vNodes.size()));
@@ -353,7 +346,7 @@ Value getinfo(const Array& params, bool fHelp)
obj.push_back(Pair("keypoolsize", pwalletMain->GetKeyPoolSize()));
obj.push_back(Pair("paytxfee", ValueFromAmount(nTransactionFee)));
if (pwalletMain->IsCrypted())
- obj.push_back(Pair("unlocked_until", (boost::int64_t)nWalletUnlockTime));
+ obj.push_back(Pair("unlocked_until", (boost::int64_t)nWalletUnlockTime / 1000));
obj.push_back(Pair("errors", GetWarnings("statusbar")));
return obj;
}
@@ -372,10 +365,10 @@ Value getmininginfo(const Array& params, bool fHelp)
obj.push_back(Pair("currentblocktx",(uint64_t)nLastBlockTx));
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
obj.push_back(Pair("errors", GetWarnings("statusbar")));
- obj.push_back(Pair("generate", (bool)fGenerateBitcoins));
- obj.push_back(Pair("genproclimit", (int)(fLimitProcessors ? nLimitProcessors : -1)));
+ obj.push_back(Pair("generate", GetBoolArg("-gen")));
+ obj.push_back(Pair("genproclimit", (int)GetArg("-genproclimit", -1)));
obj.push_back(Pair("hashespersec", gethashespersec(params, false)));
- obj.push_back(Pair("pooledtx", (uint64_t)nPooledTx));
+ obj.push_back(Pair("pooledtx", (uint64_t)mempool.size()));
obj.push_back(Pair("testnet", fTestNet));
return obj;
}
@@ -610,7 +603,7 @@ Value signmessage(const Array& params, bool fHelp)
if (!pwalletMain->GetKey(addr, key))
throw JSONRPCError(-4, "Private key not available");
- CDataStream ss(SER_GETHASH);
+ CDataStream ss(SER_GETHASH, 0);
ss << strMessageMagic;
ss << strMessage;
@@ -642,7 +635,7 @@ Value verifymessage(const Array& params, bool fHelp)
if (fInvalid)
throw JSONRPCError(-5, "Malformed base64 encoding");
- CDataStream ss(SER_GETHASH);
+ CDataStream ss(SER_GETHASH, 0);
ss << strMessageMagic;
ss << strMessage;
@@ -808,8 +801,10 @@ Value getbalance(const Array& params, bool fHelp)
list<pair<CBitcoinAddress, int64> > listSent;
wtx.GetAmounts(allGeneratedImmature, allGeneratedMature, listReceived, listSent, allFee, strSentAccount);
if (wtx.GetDepthInMainChain() >= nMinDepth)
+ {
BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64)& r, listReceived)
nBalance += r.second;
+ }
BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64)& r, listSent)
nBalance -= r.second;
nBalance -= allFee;
@@ -996,8 +991,6 @@ Value addmultisigaddress(const Array& params, bool fHelp)
"If [account] is specified, assign address to [account].";
throw runtime_error(msg);
}
- if (!fTestNet)
- throw runtime_error("addmultisigaddress available only when running -testnet\n");
int nRequired = params[0].get_int();
const Array& keys = params[1].get_array();
@@ -1006,13 +999,15 @@ Value addmultisigaddress(const Array& params, bool fHelp)
strAccount = AccountFromValue(params[2]);
// Gather public keys
- if (nRequired < 1 || keys.size() < nRequired)
+ if (nRequired < 1)
+ throw runtime_error("a multisignature address must require at least one key to redeem");
+ if ((int)keys.size() < nRequired)
throw runtime_error(
- strprintf("wrong number of keys"
- "(got %d, need at least %d)", keys.size(), nRequired));
+ strprintf("not enough keys supplied "
+ "(got %d keys, but need at least %d to redeem)", keys.size(), nRequired));
std::vector<CKey> pubkeys;
pubkeys.resize(keys.size());
- for (int i = 0; i < keys.size(); i++)
+ for (unsigned int i = 0; i < keys.size(); i++)
{
const std::string& ks = keys[i].get_str();
@@ -1242,6 +1237,7 @@ void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDe
// Received
if (listReceived.size() > 0 && wtx.GetDepthInMainChain() >= nMinDepth)
+ {
BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64)& r, listReceived)
{
string account;
@@ -1259,6 +1255,7 @@ void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDe
ret.push_back(entry);
}
}
+ }
}
void AcentryToJSON(const CAccountingEntry& acentry, const string& strAccount, Array& ret)
@@ -1295,14 +1292,21 @@ Value listtransactions(const Array& params, bool fHelp)
if (params.size() > 2)
nFrom = params[2].get_int();
+ if (nCount < 0)
+ throw JSONRPCError(-8, "Negative count");
+ if (nFrom < 0)
+ throw JSONRPCError(-8, "Negative from");
+
Array ret;
CWalletDB walletdb(pwalletMain->strWalletFile);
- // Firs: get all CWalletTx and CAccountingEntry into a sorted-by-time multimap:
+ // First: get all CWalletTx and CAccountingEntry into a sorted-by-time multimap.
typedef pair<CWalletTx*, CAccountingEntry*> TxPair;
typedef multimap<int64, TxPair > TxItems;
TxItems txByTime;
+ // Note: maintaining indices in the database of (account,time) --> txid and (account, time) --> acentry
+ // would make this much faster for applications that do this a lot.
for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it)
{
CWalletTx* wtx = &((*it).second);
@@ -1315,10 +1319,8 @@ Value listtransactions(const Array& params, bool fHelp)
txByTime.insert(make_pair(entry.nTime, TxPair((CWalletTx*)0, &entry)));
}
- // Now: iterate backwards until we have nCount items to return:
- TxItems::reverse_iterator it = txByTime.rbegin();
- if (txByTime.size() > nFrom) std::advance(it, nFrom);
- for (; it != txByTime.rend(); ++it)
+ // iterate backwards until we have nCount items to return:
+ for (TxItems::reverse_iterator it = txByTime.rbegin(); it != txByTime.rend(); ++it)
{
CWalletTx *const pwtx = (*it).second.first;
if (pwtx != 0)
@@ -1327,18 +1329,23 @@ Value listtransactions(const Array& params, bool fHelp)
if (pacentry != 0)
AcentryToJSON(*pacentry, strAccount, ret);
- if (ret.size() >= nCount) break;
+ if (ret.size() >= (nCount+nFrom)) break;
}
- // ret is now newest to oldest
+ // ret is newest to oldest
- // Make sure we return only last nCount items (sends-to-self might give us an extra):
- if (ret.size() > nCount)
- {
- Array::iterator last = ret.begin();
- std::advance(last, nCount);
- ret.erase(last, ret.end());
- }
- std::reverse(ret.begin(), ret.end()); // oldest to newest
+ if (nFrom > (int)ret.size())
+ nFrom = ret.size();
+ if ((nFrom + nCount) > (int)ret.size())
+ nCount = ret.size() - nFrom;
+ Array::iterator first = ret.begin();
+ std::advance(first, nFrom);
+ Array::iterator last = ret.begin();
+ std::advance(last, nFrom+nCount);
+
+ if (last != ret.end()) ret.erase(last, ret.end());
+ if (first != ret.begin()) ret.erase(ret.begin(), first);
+
+ std::reverse(ret.begin(), ret.end()); // Return oldest to newest
return ret;
}
@@ -1398,8 +1405,8 @@ Value listsinceblock(const Array& params, bool fHelp)
{
if (fHelp)
throw runtime_error(
- "listsinceblock [blockid] [target-confirmations]\n"
- "Get all transactions in blocks since block [blockid], or all transactions if omitted");
+ "listsinceblock [blockhash] [target-confirmations]\n"
+ "Get all transactions in blocks since block [blockhash], or all transactions if omitted");
CBlockIndex *pindex = NULL;
int target_confirms = 1;
@@ -1436,7 +1443,6 @@ Value listsinceblock(const Array& params, bool fHelp)
if (target_confirms == 1)
{
- printf("oops!\n");
lastblock = hashBestChain;
}
else
@@ -1537,37 +1543,43 @@ void ThreadTopUpKeyPool(void* parg)
void ThreadCleanWalletPassphrase(void* parg)
{
- int64 nMyWakeTime = GetTime() + *((int*)parg);
+ int64 nMyWakeTime = GetTimeMillis() + *((int64*)parg) * 1000;
+
+ ENTER_CRITICAL_SECTION(cs_nWalletUnlockTime);
if (nWalletUnlockTime == 0)
{
- CRITICAL_BLOCK(cs_nWalletUnlockTime)
+ nWalletUnlockTime = nMyWakeTime;
+
+ do
{
- nWalletUnlockTime = nMyWakeTime;
- }
+ if (nWalletUnlockTime==0)
+ break;
+ int64 nToSleep = nWalletUnlockTime - GetTimeMillis();
+ if (nToSleep <= 0)
+ break;
+
+ LEAVE_CRITICAL_SECTION(cs_nWalletUnlockTime);
+ Sleep(nToSleep);
+ ENTER_CRITICAL_SECTION(cs_nWalletUnlockTime);
- while (GetTime() < nWalletUnlockTime)
- Sleep(GetTime() - nWalletUnlockTime);
+ } while(1);
- CRITICAL_BLOCK(cs_nWalletUnlockTime)
+ if (nWalletUnlockTime)
{
nWalletUnlockTime = 0;
+ pwalletMain->Lock();
}
}
else
{
- CRITICAL_BLOCK(cs_nWalletUnlockTime)
- {
- if (nWalletUnlockTime < nMyWakeTime)
- nWalletUnlockTime = nMyWakeTime;
- }
- free(parg);
- return;
+ if (nWalletUnlockTime < nMyWakeTime)
+ nWalletUnlockTime = nMyWakeTime;
}
- pwalletMain->Lock();
+ LEAVE_CRITICAL_SECTION(cs_nWalletUnlockTime);
- delete (int*)parg;
+ delete (int64*)parg;
}
Value walletpassphrase(const Array& params, bool fHelp)
@@ -1602,7 +1614,7 @@ Value walletpassphrase(const Array& params, bool fHelp)
"Stores the wallet decryption key in memory for <timeout> seconds.");
CreateThread(ThreadTopUpKeyPool, NULL);
- int* pnSleepTime = new int(params[1].get_int());
+ int64* pnSleepTime = new int64(params[1].get_int64());
CreateThread(ThreadCleanWalletPassphrase, pnSleepTime);
return Value::null;
@@ -1655,9 +1667,9 @@ Value walletlock(const Array& params, bool fHelp)
if (!pwalletMain->IsCrypted())
throw JSONRPCError(-15, "Error: running with an unencrypted wallet, but walletlock was called.");
- pwalletMain->Lock();
- CRITICAL_BLOCK(cs_nWalletUnlockTime)
{
+ LOCK(cs_nWalletUnlockTime);
+ pwalletMain->Lock();
nWalletUnlockTime = 0;
}
@@ -1676,11 +1688,6 @@ Value encryptwallet(const Array& params, bool fHelp)
if (pwalletMain->IsCrypted())
throw JSONRPCError(-15, "Error: running with an encrypted wallet, but encryptwallet was called.");
-#ifdef QT_GUI
- // shutting down via RPC while the GUI is running does not work (yet):
- throw runtime_error("Not Yet Implemented: use GUI to encrypt wallet, not RPC command");
-#endif
-
// TODO: get rid of this .c_str() by implementing SecureString::operator=(std::string)
// Alternately, find a way to make params[0] mlock()'d to begin with.
SecureString strWalletPass;
@@ -1698,7 +1705,7 @@ Value encryptwallet(const Array& params, bool fHelp)
// BDB seems to have a bad habit of writing old data into
// slack space in .dat files; that is bad if the old data is
// unencrypted private keys. So:
- CreateThread(Shutdown, NULL);
+ QueueShutdown();
return "wallet encrypted; bitcoin server stopping, restart to run with encrypted wallet";
}
@@ -1810,7 +1817,7 @@ Value getwork(const Array& params, bool fHelp)
}
// Update nTime
- pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
+ pblock->UpdateTime(pindexPrev);
pblock->nNonce = 0;
// Update nExtraNonce
@@ -1910,7 +1917,7 @@ Value getmemorypool(const Array& params, bool fHelp)
}
// Update nTime
- pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
+ pblock->UpdateTime(pindexPrev);
pblock->nNonce = 0;
Array transactions;
@@ -1918,7 +1925,7 @@ Value getmemorypool(const Array& params, bool fHelp)
if(tx.IsCoinBase())
continue;
- CDataStream ssTx;
+ CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION);
ssTx << tx;
transactions.push_back(HexStr(ssTx.begin(), ssTx.end()));
@@ -1933,20 +1940,14 @@ Value getmemorypool(const Array& params, bool fHelp)
result.push_back(Pair("time", (int64_t)pblock->nTime));
result.push_back(Pair("mintime", (int64_t)pindexPrev->GetMedianTimePast()+1));
result.push_back(Pair("curtime", (int64_t)GetAdjustedTime()));
-
- union {
- int32_t nBits;
- char cBits[4];
- } uBits;
- uBits.nBits = htonl((int32_t)pblock->nBits);
- result.push_back(Pair("bits", HexStr(BEGIN(uBits.cBits), END(uBits.cBits))));
+ result.push_back(Pair("bits", HexBits(pblock->nBits)));
return result;
}
else
{
// Parse parameters
- CDataStream ssBlock(ParseHex(params[0].get_str()));
+ CDataStream ssBlock(ParseHex(params[0].get_str()), SER_NETWORK, PROTOCOL_VERSION);
CBlock pblock;
ssBlock >> pblock;
@@ -2006,86 +2007,77 @@ Value getblock(const Array& params, bool fHelp)
// Call Table
//
-pair<string, rpcfn_type> pCallTable[] =
-{
- make_pair("help", &help),
- make_pair("stop", &stop),
- make_pair("getblockcount", &getblockcount),
- make_pair("getblocknumber", &getblocknumber),
- make_pair("getconnectioncount", &getconnectioncount),
- make_pair("getdifficulty", &getdifficulty),
- make_pair("getgenerate", &getgenerate),
- make_pair("setgenerate", &setgenerate),
- make_pair("gethashespersec", &gethashespersec),
- make_pair("getinfo", &getinfo),
- make_pair("getmininginfo", &getmininginfo),
- make_pair("getnewaddress", &getnewaddress),
- make_pair("getaccountaddress", &getaccountaddress),
- make_pair("setaccount", &setaccount),
- make_pair("getaccount", &getaccount),
- make_pair("getaddressesbyaccount", &getaddressesbyaccount),
- make_pair("sendtoaddress", &sendtoaddress),
- make_pair("getreceivedbyaddress", &getreceivedbyaddress),
- make_pair("getreceivedbyaccount", &getreceivedbyaccount),
- make_pair("listreceivedbyaddress", &listreceivedbyaddress),
- make_pair("listreceivedbyaccount", &listreceivedbyaccount),
- make_pair("backupwallet", &backupwallet),
- make_pair("keypoolrefill", &keypoolrefill),
- make_pair("walletpassphrase", &walletpassphrase),
- make_pair("walletpassphrasechange", &walletpassphrasechange),
- make_pair("walletlock", &walletlock),
- make_pair("encryptwallet", &encryptwallet),
- make_pair("validateaddress", &validateaddress),
- make_pair("getbalance", &getbalance),
- make_pair("move", &movecmd),
- make_pair("sendfrom", &sendfrom),
- make_pair("sendmany", &sendmany),
- make_pair("addmultisigaddress", &addmultisigaddress),
- make_pair("getblock", &getblock),
- make_pair("getblockhash", &getblockhash),
- make_pair("gettransaction", &gettransaction),
- make_pair("listtransactions", &listtransactions),
- make_pair("signmessage", &signmessage),
- make_pair("verifymessage", &verifymessage),
- make_pair("getwork", &getwork),
- make_pair("listaccounts", &listaccounts),
- make_pair("settxfee", &settxfee),
- make_pair("getmemorypool", &getmemorypool),
- make_pair("listsinceblock", &listsinceblock),
- make_pair("dumpprivkey", &dumpprivkey),
- make_pair("importprivkey", &importprivkey)
-};
-map<string, rpcfn_type> mapCallTable(pCallTable, pCallTable + sizeof(pCallTable)/sizeof(pCallTable[0]));
-
-string pAllowInSafeMode[] =
-{
- "help",
- "stop",
- "getblockcount",
- "getblocknumber", // deprecated
- "getconnectioncount",
- "getdifficulty",
- "getgenerate",
- "setgenerate",
- "gethashespersec",
- "getinfo",
- "getmininginfo",
- "getnewaddress",
- "getaccountaddress",
- "getaccount",
- "getaddressesbyaccount",
- "backupwallet",
- "keypoolrefill",
- "walletpassphrase",
- "walletlock",
- "validateaddress",
- "getwork",
- "getmemorypool",
+
+static const CRPCCommand vRPCCommands[] =
+{ // name function safe mode?
+ // ------------------------ ----------------------- ----------
+ { "help", &help, true },
+ { "stop", &stop, true },
+ { "getblockcount", &getblockcount, true },
+ { "getblocknumber", &getblocknumber, true },
+ { "getconnectioncount", &getconnectioncount, true },
+ { "getdifficulty", &getdifficulty, true },
+ { "getgenerate", &getgenerate, true },
+ { "setgenerate", &setgenerate, true },
+ { "gethashespersec", &gethashespersec, true },
+ { "getinfo", &getinfo, true },
+ { "getmininginfo", &getmininginfo, true },
+ { "getnewaddress", &getnewaddress, true },
+ { "getaccountaddress", &getaccountaddress, true },
+ { "setaccount", &setaccount, true },
+ { "getaccount", &getaccount, false },
+ { "getaddressesbyaccount", &getaddressesbyaccount, true },
+ { "sendtoaddress", &sendtoaddress, false },
+ { "getreceivedbyaddress", &getreceivedbyaddress, false },
+ { "getreceivedbyaccount", &getreceivedbyaccount, false },
+ { "listreceivedbyaddress", &listreceivedbyaddress, false },
+ { "listreceivedbyaccount", &listreceivedbyaccount, false },
+ { "backupwallet", &backupwallet, true },
+ { "keypoolrefill", &keypoolrefill, true },
+ { "walletpassphrase", &walletpassphrase, true },
+ { "walletpassphrasechange", &walletpassphrasechange, false },
+ { "walletlock", &walletlock, true },
+ { "encryptwallet", &encryptwallet, false },
+ { "validateaddress", &validateaddress, true },
+ { "getbalance", &getbalance, false },
+ { "move", &movecmd, false },
+ { "sendfrom", &sendfrom, false },
+ { "sendmany", &sendmany, false },
+ { "addmultisigaddress", &addmultisigaddress, false },
+ { "getblock", &getblock, false },
+ { "getblockhash", &getblockhash, false },
+ { "gettransaction", &gettransaction, false },
+ { "listtransactions", &listtransactions, false },
+ { "signmessage", &signmessage, false },
+ { "verifymessage", &verifymessage, false },
+ { "getwork", &getwork, true },
+ { "listaccounts", &listaccounts, false },
+ { "settxfee", &settxfee, false },
+ { "getmemorypool", &getmemorypool, true },
+ { "listsinceblock", &listsinceblock, false },
+ { "dumpprivkey", &dumpprivkey, false },
+ { "importprivkey", &importprivkey, false },
};
-set<string> setAllowInSafeMode(pAllowInSafeMode, pAllowInSafeMode + sizeof(pAllowInSafeMode)/sizeof(pAllowInSafeMode[0]));
+CRPCTable::CRPCTable()
+{
+ unsigned int vcidx;
+ for (vcidx = 0; vcidx < (sizeof(vRPCCommands) / sizeof(vRPCCommands[0])); vcidx++)
+ {
+ const CRPCCommand *pcmd;
+ pcmd = &vRPCCommands[vcidx];
+ mapCommands[pcmd->name] = pcmd;
+ }
+}
+const CRPCCommand *CRPCTable::operator[](string name) const
+{
+ map<string, const CRPCCommand*>::const_iterator it = mapCommands.find(name);
+ if (it == mapCommands.end())
+ return NULL;
+ return (*it).second;
+}
//
// HTTP protocol
@@ -2213,7 +2205,7 @@ int ReadHTTP(std::basic_istream<char>& stream, map<string, string>& mapHeadersRe
// Read header
int nLen = ReadHTTPHeader(stream, mapHeadersRet);
- if (nLen < 0 || nLen > MAX_SIZE)
+ if (nLen < 0 || nLen > (int)MAX_SIZE)
return 500;
// Read message
@@ -2290,7 +2282,6 @@ bool ClientAllowed(const string& strAddress)
return false;
}
-#ifdef USE_SSL
//
// IOStream device that speaks SSL but can also speak non-SSL
//
@@ -2342,22 +2333,21 @@ private:
bool fUseSSL;
SSLStream& stream;
};
-#endif
void ThreadRPCServer(void* parg)
{
IMPLEMENT_RANDOMIZE_STACK(ThreadRPCServer(parg));
try
{
- vnThreadsRunning[4]++;
+ vnThreadsRunning[THREAD_RPCSERVER]++;
ThreadRPCServer2(parg);
- vnThreadsRunning[4]--;
+ vnThreadsRunning[THREAD_RPCSERVER]--;
}
catch (std::exception& e) {
- vnThreadsRunning[4]--;
+ vnThreadsRunning[THREAD_RPCSERVER]--;
PrintException(&e, "ThreadRPCServer()");
} catch (...) {
- vnThreadsRunning[4]--;
+ vnThreadsRunning[THREAD_RPCSERVER]--;
PrintException(NULL, "ThreadRPCServer()");
}
printf("ThreadRPCServer exiting\n");
@@ -2368,21 +2358,27 @@ void ThreadRPCServer2(void* parg)
printf("ThreadRPCServer started\n");
strRPCUserColonPass = mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"];
- if (strRPCUserColonPass == ":")
+ if (mapArgs["-rpcpassword"] == "")
{
+ unsigned char rand_pwd[32];
+ RAND_bytes(rand_pwd, 32);
string strWhatAmI = "To use bitcoind";
if (mapArgs.count("-server"))
strWhatAmI = strprintf(_("To use the %s option"), "\"-server\"");
else if (mapArgs.count("-daemon"))
strWhatAmI = strprintf(_("To use the %s option"), "\"-daemon\"");
- PrintConsole(
- _("Error: %s, you must set rpcpassword=<password>\nin the configuration file: %s\n"
+ ThreadSafeMessageBox(strprintf(
+ _("%s, you must set a rpcpassword in the configuration file:\n %s\n"
+ "It is recommended you use the following random password:\n"
+ "rpcuser=bitcoinrpc\n"
+ "rpcpassword=%s\n"
+ "(you do not need to remember this password)\n"
"If the file does not exist, create it with owner-readable-only file permissions.\n"),
strWhatAmI.c_str(),
- GetConfigFile().c_str());
-#ifndef QT_GUI
- CreateThread(Shutdown, NULL);
-#endif
+ GetConfigFile().string().c_str(),
+ EncodeBase58(&rand_pwd[0],&rand_pwd[0]+32).c_str()),
+ _("Error"), wxOK | wxMODAL);
+ QueueShutdown();
return;
}
@@ -2391,51 +2387,51 @@ void ThreadRPCServer2(void* parg)
asio::io_service io_service;
ip::tcp::endpoint endpoint(bindAddress, GetArg("-rpcport", 8332));
- ip::tcp::acceptor acceptor(io_service, endpoint);
-
- acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
+ ip::tcp::acceptor acceptor(io_service);
+ try
+ {
+ acceptor.open(endpoint.protocol());
+ acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
+ acceptor.bind(endpoint);
+ acceptor.listen(socket_base::max_connections);
+ }
+ catch(boost::system::system_error &e)
+ {
+ ThreadSafeMessageBox(strprintf(_("An error occured while setting up the RPC port %i for listening: %s"), endpoint.port(), e.what()),
+ _("Error"), wxOK | wxMODAL);
+ QueueShutdown();
+ return;
+ }
-#ifdef USE_SSL
ssl::context context(io_service, ssl::context::sslv23);
if (fUseSSL)
{
context.set_options(ssl::context::no_sslv2);
- filesystem::path certfile = GetArg("-rpcsslcertificatechainfile", "server.cert");
- if (!certfile.is_complete()) certfile = filesystem::path(GetDataDir()) / certfile;
- if (filesystem::exists(certfile)) context.use_certificate_chain_file(certfile.string().c_str());
- else printf("ThreadRPCServer ERROR: missing server certificate file %s\n", certfile.string().c_str());
- filesystem::path pkfile = GetArg("-rpcsslprivatekeyfile", "server.pem");
- if (!pkfile.is_complete()) pkfile = filesystem::path(GetDataDir()) / pkfile;
- if (filesystem::exists(pkfile)) context.use_private_key_file(pkfile.string().c_str(), ssl::context::pem);
- else printf("ThreadRPCServer ERROR: missing server private key file %s\n", pkfile.string().c_str());
-
- string ciphers = GetArg("-rpcsslciphers",
- "TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH");
- SSL_CTX_set_cipher_list(context.impl(), ciphers.c_str());
- }
-#else
- if (fUseSSL)
- throw runtime_error("-rpcssl=1, but bitcoin compiled without full openssl libraries.");
-#endif
+
+ filesystem::path pathCertFile(GetArg("-rpcsslcertificatechainfile", "server.cert"));
+ if (!pathCertFile.is_complete()) pathCertFile = filesystem::path(GetDataDir()) / pathCertFile;
+ if (filesystem::exists(pathCertFile)) context.use_certificate_chain_file(pathCertFile.string());
+ else printf("ThreadRPCServer ERROR: missing server certificate file %s\n", pathCertFile.string().c_str());
+
+ filesystem::path pathPKFile(GetArg("-rpcsslprivatekeyfile", "server.pem"));
+ if (!pathPKFile.is_complete()) pathPKFile = filesystem::path(GetDataDir()) / pathPKFile;
+ if (filesystem::exists(pathPKFile)) context.use_private_key_file(pathPKFile.string(), ssl::context::pem);
+ else printf("ThreadRPCServer ERROR: missing server private key file %s\n", pathPKFile.string().c_str());
+
+ string strCiphers = GetArg("-rpcsslciphers", "TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH");
+ SSL_CTX_set_cipher_list(context.impl(), strCiphers.c_str());
+ }
loop
{
// Accept connection
-#ifdef USE_SSL
SSLStream sslStream(io_service, context);
SSLIOStreamDevice d(sslStream, fUseSSL);
iostreams::stream<SSLIOStreamDevice> stream(d);
-#else
- ip::tcp::iostream stream;
-#endif
ip::tcp::endpoint peer;
- vnThreadsRunning[4]--;
-#ifdef USE_SSL
+ vnThreadsRunning[THREAD_RPCSERVER]--;
acceptor.accept(sslStream.lowest_layer(), peer);
-#else
- acceptor.accept(*stream.rdbuf(), peer);
-#endif
vnThreadsRunning[4]++;
if (fShutdown)
return;
@@ -2468,12 +2464,14 @@ void ThreadRPCServer2(void* parg)
}
if (!HTTPAuthorized(mapHeaders))
{
- // Deter brute-forcing short passwords
- if (mapArgs["-rpcpassword"].size() < 15)
- Sleep(50);
+ printf("ThreadRPCServer incorrect password attempt from %s\n",peer.address().to_string().c_str());
+ /* Deter brute-forcing short passwords.
+ If this results in a DOS the user really
+ shouldn't have their RPC port exposed.*/
+ if (mapArgs["-rpcpassword"].size() < 20)
+ Sleep(250);
stream << HTTPReply(401, "") << std::flush;
- printf("ThreadRPCServer incorrect password attempt\n");
continue;
}
@@ -2510,22 +2508,24 @@ void ThreadRPCServer2(void* parg)
throw JSONRPCError(-32600, "Params must be an array");
// Find method
- map<string, rpcfn_type>::iterator mi = mapCallTable.find(strMethod);
- if (mi == mapCallTable.end())
+ const CRPCCommand *pcmd = tableRPC[strMethod];
+ if (!pcmd)
throw JSONRPCError(-32601, "Method not found");
// Observe safe mode
string strWarning = GetWarnings("rpc");
- if (strWarning != "" && !GetBoolArg("-disablesafemode") && !setAllowInSafeMode.count(strMethod))
+ if (strWarning != "" && !GetBoolArg("-disablesafemode") &&
+ !pcmd->okSafeMode)
throw JSONRPCError(-2, string("Safe mode: ") + strWarning);
try
{
// Execute
Value result;
- CRITICAL_BLOCK(cs_main)
- CRITICAL_BLOCK(pwalletMain->cs_wallet)
- result = (*(*mi).second)(params, false);
+ {
+ LOCK2(cs_main, pwalletMain->cs_wallet);
+ result = pcmd->actor(params, false);
+ }
// Send reply
string strReply = JSONRPCReply(result, Value::null, id);
@@ -2556,11 +2556,10 @@ Object CallRPC(const string& strMethod, const Array& params)
throw runtime_error(strprintf(
_("You must set rpcpassword=<password> in the configuration file:\n%s\n"
"If the file does not exist, create it with owner-readable-only file permissions."),
- GetConfigFile().c_str()));
+ GetConfigFile().string().c_str()));
// Connect to localhost
bool fUseSSL = GetBoolArg("-rpcssl");
-#ifdef USE_SSL
asio::io_service io_service;
ssl::context context(io_service, ssl::context::sslv23);
context.set_options(ssl::context::no_sslv2);
@@ -2569,15 +2568,6 @@ Object CallRPC(const string& strMethod, const Array& params)
iostreams::stream<SSLIOStreamDevice> stream(d);
if (!d.connect(GetArg("-rpcconnect", "127.0.0.1"), GetArg("-rpcport", "8332")))
throw runtime_error("couldn't connect to server");
-#else
- if (fUseSSL)
- throw runtime_error("-rpcssl=1, but bitcoin compiled without full openssl libraries.");
-
- ip::tcp::iostream stream(GetArg("-rpcconnect", "127.0.0.1"), GetArg("-rpcport", "8332"));
- if (stream.fail())
- throw runtime_error("couldn't connect to server");
-#endif
-
// HTTP basic authentication
string strUserPass64 = EncodeBase64(mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"]);
@@ -2775,3 +2765,5 @@ int main(int argc, char *argv[])
return 0;
}
#endif
+
+const CRPCTable tableRPC;
diff --git a/src/bitcoinrpc.h b/src/bitcoinrpc.h
index f267400797..6b7293ed19 100644
--- a/src/bitcoinrpc.h
+++ b/src/bitcoinrpc.h
@@ -1,7 +1,41 @@
// Copyright (c) 2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#ifndef _BITCOINRPC_H_
+#define _BITCOINRPC_H_ 1
+
+#include <string>
+#include <map>
+
+#include "json/json_spirit_reader_template.h"
+#include "json/json_spirit_writer_template.h"
+#include "json/json_spirit_utils.h"
+
void ThreadRPCServer(void* parg);
int CommandLineRPC(int argc, char *argv[]);
+
+typedef json_spirit::Value(*rpcfn_type)(const json_spirit::Array& params, bool fHelp);
+
+class CRPCCommand
+{
+public:
+ std::string name;
+ rpcfn_type actor;
+ bool okSafeMode;
+};
+
+class CRPCTable
+{
+private:
+ std::map<std::string, const CRPCCommand*> mapCommands;
+public:
+ CRPCTable();
+ const CRPCCommand* operator[](std::string name) const;
+ std::string help(std::string name) const;
+};
+
+extern const CRPCTable tableRPC;
+
+#endif
diff --git a/src/checkpoints.cpp b/src/checkpoints.cpp
index 508f72b376..cf56fa0695 100644
--- a/src/checkpoints.cpp
+++ b/src/checkpoints.cpp
@@ -1,13 +1,15 @@
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#include <boost/assign/list_of.hpp> // for 'map_list_of()'
#include <boost/foreach.hpp>
-#include "headers.h"
#include "checkpoints.h"
+#include "main.h"
+#include "uint256.h"
+
namespace Checkpoints
{
typedef std::map<int, uint256> MapCheckpoints;
@@ -30,6 +32,7 @@ namespace Checkpoints
(118000, uint256("0x000000000000774a7f8a7a12dc906ddb9e17e75d684f15e00f8767f9e8f36553"))
(134444, uint256("0x00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe"))
(140700, uint256("0x000000000000033b512028abb90e1626d8b346fd0ed598ac0a3c371138dce2bd"))
+ (168000, uint256("0x000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763"))
;
bool CheckBlock(int nHeight, const uint256& hash)
diff --git a/src/checkpoints.h b/src/checkpoints.h
index 9d52da404f..5d3228f3fc 100644
--- a/src/checkpoints.h
+++ b/src/checkpoints.h
@@ -1,19 +1,17 @@
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_CHECKPOINT_H
#define BITCOIN_CHECKPOINT_H
#include <map>
-#include "util.h"
class uint256;
class CBlockIndex;
-//
-// Block-chain checkpoints are compiled-in sanity checks.
-// They are updated every release or three.
-//
+/** Block-chain checkpoints are compiled-in sanity checks.
+ * They are updated every release or three.
+ */
namespace Checkpoints
{
// Returns true if block passes checkpoint checks
diff --git a/src/compat.h b/src/compat.h
index 5c1fcc3d6e..804a8141b5 100644
--- a/src/compat.h
+++ b/src/compat.h
@@ -1,10 +1,30 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef _BITCOIN_COMPAT_H
#define _BITCOIN_COMPAT_H 1
+#ifdef WIN32
+#define _WIN32_WINNT 0x0501
+#define WIN32_LEAN_AND_MEAN 1
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#include <winsock2.h>
+#include <mswsock.h>
+#include <ws2tcpip.h>
+#else
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/fcntl.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <net/if.h>
+#include <netinet/in.h>
+#include <ifaddrs.h>
+#endif
+
typedef u_int SOCKET;
#ifdef WIN32
#define MSG_NOSIGNAL 0
@@ -39,4 +59,5 @@ inline int myclosesocket(SOCKET& hSocket)
}
#define closesocket(s) myclosesocket(s)
+
#endif
diff --git a/src/crypter.cpp b/src/crypter.cpp
index 7f53e22f1e..4f37575a6a 100644
--- a/src/crypter.cpp
+++ b/src/crypter.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Bitcoin Developers
+// Copyright (c) 2009-2012 The Bitcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
@@ -6,14 +6,11 @@
#include <openssl/evp.h>
#include <vector>
#include <string>
-#include "headers.h"
#ifdef WIN32
#include <windows.h>
#endif
#include "crypter.h"
-#include "main.h"
-#include "util.h"
bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::vector<unsigned char>& chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod)
{
@@ -31,7 +28,7 @@ bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::v
i = EVP_BytesToKey(EVP_aes_256_cbc(), EVP_sha512(), &chSalt[0],
(unsigned char *)&strKeyData[0], strKeyData.size(), nRounds, chKey, chIV);
- if (i != WALLET_CRYPTO_KEY_SIZE)
+ if (i != (int)WALLET_CRYPTO_KEY_SIZE)
{
memset(&chKey, 0, sizeof chKey);
memset(&chIV, 0, sizeof chIV);
@@ -73,14 +70,16 @@ bool CCrypter::Encrypt(const CKeyingMaterial& vchPlaintext, std::vector<unsigned
EVP_CIPHER_CTX ctx;
- EVP_CIPHER_CTX_init(&ctx);
- EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV);
-
- EVP_EncryptUpdate(&ctx, &vchCiphertext[0], &nCLen, &vchPlaintext[0], nLen);
- EVP_EncryptFinal_ex(&ctx, (&vchCiphertext[0])+nCLen, &nFLen);
+ bool fOk = true;
+ EVP_CIPHER_CTX_init(&ctx);
+ if (fOk) fOk = EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV);
+ if (fOk) fOk = EVP_EncryptUpdate(&ctx, &vchCiphertext[0], &nCLen, &vchPlaintext[0], nLen);
+ if (fOk) fOk = EVP_EncryptFinal_ex(&ctx, (&vchCiphertext[0])+nCLen, &nFLen);
EVP_CIPHER_CTX_cleanup(&ctx);
+ if (!fOk) return false;
+
vchCiphertext.resize(nCLen + nFLen);
return true;
}
@@ -98,14 +97,16 @@ bool CCrypter::Decrypt(const std::vector<unsigned char>& vchCiphertext, CKeyingM
EVP_CIPHER_CTX ctx;
- EVP_CIPHER_CTX_init(&ctx);
- EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV);
-
- EVP_DecryptUpdate(&ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen);
- EVP_DecryptFinal_ex(&ctx, (&vchPlaintext[0])+nPLen, &nFLen);
+ bool fOk = true;
+ EVP_CIPHER_CTX_init(&ctx);
+ if (fOk) fOk = EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV);
+ if (fOk) fOk = EVP_DecryptUpdate(&ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen);
+ if (fOk) fOk = EVP_DecryptFinal_ex(&ctx, (&vchPlaintext[0])+nPLen, &nFLen);
EVP_CIPHER_CTX_cleanup(&ctx);
+ if (!fOk) return false;
+
vchPlaintext.resize(nPLen + nFLen);
return true;
}
diff --git a/src/crypter.h b/src/crypter.h
index e52ebc01c7..d1bdb92c91 100644
--- a/src/crypter.h
+++ b/src/crypter.h
@@ -1,11 +1,12 @@
-// Copyright (c) 2011 The Bitcoin Developers
+// Copyright (c) 2009-2012 The Bitcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef __CRYPTER_H__
#define __CRYPTER_H__
-#include "util.h" /* for SecureString */
+#include "allocators.h" /* for SecureString */
#include "key.h"
+#include "serialize.h"
const unsigned int WALLET_CRYPTO_KEY_SIZE = 32;
const unsigned int WALLET_CRYPTO_SALT_SIZE = 8;
@@ -25,6 +26,7 @@ with the double-sha256 of the public key as the IV, and the
master key's key as the encryption key (see keystore.[ch]).
*/
+/** Master key for wallet encryption */
class CMasterKey
{
public:
@@ -58,6 +60,7 @@ public:
typedef std::vector<unsigned char, secure_allocator<unsigned char> > CKeyingMaterial;
+/** Encryption/decryption context with key information */
class CCrypter
{
private:
diff --git a/src/db.cpp b/src/db.cpp
index 07f58ef38a..12647e568a 100644
--- a/src/db.cpp
+++ b/src/db.cpp
@@ -1,20 +1,24 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
#include "db.h"
-#include "net.h"
+#include "util.h"
+#include "main.h"
+#include <boost/version.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
+#ifndef WIN32
+#include "sys/stat.h"
+#endif
+
using namespace std;
using namespace boost;
unsigned int nWalletDBUpdated;
-uint64 nAccountingEntryNumber = 0;
@@ -22,10 +26,11 @@ uint64 nAccountingEntryNumber = 0;
// CDB
//
-static CCriticalSection cs_db;
+CCriticalSection cs_db;
static bool fDbEnvInit = false;
+bool fDetachDB = false;
DbEnv dbenv(0);
-static map<string, int> mapFileUseCount;
+map<string, int> mapFileUseCount;
static map<string, Db*> mapDb;
static void EnvShutdown()
@@ -42,7 +47,7 @@ static void EnvShutdown()
{
printf("EnvShutdown exception: %s (%d)\n", e.what(), e.get_errno());
}
- DbEnv(0).remove(GetDataDir().c_str(), 0);
+ DbEnv(0).remove(GetDataDir().string().c_str(), 0);
}
class CDBInit
@@ -59,7 +64,7 @@ public:
instance_of_cdbinit;
-CDB::CDB(const char* pszFile, const char* pszMode) : pdb(NULL)
+CDB::CDB(const char *pszFile, const char* pszMode) : pdb(NULL)
{
int ret;
if (pszFile == NULL)
@@ -71,25 +76,29 @@ CDB::CDB(const char* pszFile, const char* pszMode) : pdb(NULL)
if (fCreate)
nFlags |= DB_CREATE;
- CRITICAL_BLOCK(cs_db)
{
+ LOCK(cs_db);
if (!fDbEnvInit)
{
if (fShutdown)
return;
- string strDataDir = GetDataDir();
- string strLogDir = strDataDir + "/database";
- filesystem::create_directory(strLogDir.c_str());
- string strErrorFile = strDataDir + "/db.log";
- printf("dbenv.open strLogDir=%s strErrorFile=%s\n", strLogDir.c_str(), strErrorFile.c_str());
-
- dbenv.set_lg_dir(strLogDir.c_str());
- dbenv.set_lg_max(10000000);
+ filesystem::path pathDataDir = GetDataDir();
+ filesystem::path pathLogDir = pathDataDir / "database";
+ filesystem::create_directory(pathLogDir);
+ filesystem::path pathErrorFile = pathDataDir / "db.log";
+ printf("dbenv.open LogDir=%s ErrorFile=%s\n", pathLogDir.string().c_str(), pathErrorFile.string().c_str());
+
+ int nDbCache = GetArg("-dbcache", 25);
+ dbenv.set_lg_dir(pathLogDir.string().c_str());
+ dbenv.set_cachesize(nDbCache / 1024, (nDbCache % 1024)*1048576, 1);
+ dbenv.set_lg_bsize(1048576);
+ dbenv.set_lg_max(10485760);
dbenv.set_lk_max_locks(10000);
dbenv.set_lk_max_objects(10000);
- dbenv.set_errfile(fopen(strErrorFile.c_str(), "a")); /// debug
+ dbenv.set_errfile(fopen(pathErrorFile.string().c_str(), "a")); /// debug
dbenv.set_flags(DB_AUTO_COMMIT, 1);
- ret = dbenv.open(strDataDir.c_str(),
+ dbenv.log_set_config(DB_LOG_AUTO_REMOVE, 1);
+ ret = dbenv.open(pathDataDir.string().c_str(),
DB_CREATE |
DB_INIT_LOCK |
DB_INIT_LOG |
@@ -121,8 +130,10 @@ CDB::CDB(const char* pszFile, const char* pszMode) : pdb(NULL)
{
delete pdb;
pdb = NULL;
- CRITICAL_BLOCK(cs_db)
+ {
+ LOCK(cs_db);
--mapFileUseCount[strFile];
+ }
strFile = "";
throw runtime_error(strprintf("CDB() : can't open database file %s, error %d", pszFile, ret));
}
@@ -155,18 +166,23 @@ void CDB::Close()
nMinutes = 1;
if (strFile == "addr.dat")
nMinutes = 2;
- if (strFile == "blkindex.dat" && IsInitialBlockDownload() && nBestHeight % 500 != 0)
- nMinutes = 1;
- dbenv.txn_checkpoint(0, nMinutes, 0);
+ if (strFile == "blkindex.dat")
+ nMinutes = 2;
+ if (strFile == "blkindex.dat" && IsInitialBlockDownload())
+ nMinutes = 5;
- CRITICAL_BLOCK(cs_db)
+ dbenv.txn_checkpoint(nMinutes ? GetArg("-dblogsize", 100)*1024 : 0, nMinutes, 0);
+
+ {
+ LOCK(cs_db);
--mapFileUseCount[strFile];
+ }
}
-void static CloseDb(const string& strFile)
+void CloseDb(const string& strFile)
{
- CRITICAL_BLOCK(cs_db)
{
+ LOCK(cs_db);
if (mapDb[strFile] != NULL)
{
// Close the database handle
@@ -182,8 +198,8 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip)
{
while (!fShutdown)
{
- CRITICAL_BLOCK(cs_db)
{
+ LOCK(cs_db);
if (!mapFileUseCount.count(strFile) || mapFileUseCount[strFile] == 0)
{
// Flush log data to the dat file
@@ -215,8 +231,8 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip)
if (pcursor)
while (fSuccess)
{
- CDataStream ssKey;
- CDataStream ssValue;
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
+ CDataStream ssValue(SER_DISK, CLIENT_VERSION);
int ret = db.ReadAtCursor(pcursor, ssKey, ssValue, DB_NEXT);
if (ret == DB_NOTFOUND)
{
@@ -280,8 +296,8 @@ void DBFlush(bool fShutdown)
printf("DBFlush(%s)%s\n", fShutdown ? "true" : "false", fDbEnvInit ? "" : " db not started");
if (!fDbEnvInit)
return;
- CRITICAL_BLOCK(cs_db)
{
+ LOCK(cs_db);
map<string, int>::iterator mi = mapFileUseCount.begin();
while (mi != mapFileUseCount.end())
{
@@ -292,9 +308,13 @@ void DBFlush(bool fShutdown)
{
// Move log data to the dat file
CloseDb(strFile);
+ printf("%s checkpoint\n", strFile.c_str());
dbenv.txn_checkpoint(0, 0, 0);
- printf("%s flush\n", strFile.c_str());
- dbenv.lsn_reset(strFile.c_str(), 0);
+ if ((strFile != "blkindex.dat" && strFile != "addr.dat") || fDetachDB) {
+ printf("%s detach\n", strFile.c_str());
+ dbenv.lsn_reset(strFile.c_str(), 0);
+ }
+ printf("%s closed\n", strFile.c_str());
mapFileUseCount.erase(mi++);
}
else
@@ -372,10 +392,10 @@ bool CTxDB::ReadOwnerTxes(uint160 hash160, int nMinHeight, vector<CTransaction>&
loop
{
// Read next record
- CDataStream ssKey;
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
if (fFlags == DB_SET_RANGE)
ssKey << string("owner") << hash160 << CDiskTxPos(0, 0, 0);
- CDataStream ssValue;
+ CDataStream ssValue(SER_DISK, CLIENT_VERSION);
int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags);
fFlags = DB_NEXT;
if (ret == DB_NOTFOUND)
@@ -500,10 +520,10 @@ bool CTxDB::LoadBlockIndex()
loop
{
// Read next record
- CDataStream ssKey;
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
if (fFlags == DB_SET_RANGE)
ssKey << make_pair(string("blockindex"), uint256(0));
- CDataStream ssValue;
+ CDataStream ssValue(SER_DISK, CLIENT_VERSION);
int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags);
fFlags = DB_NEXT;
if (ret == DB_NOTFOUND)
@@ -514,7 +534,7 @@ bool CTxDB::LoadBlockIndex()
// Unserialize
string strType;
ssKey >> strType;
- if (strType == "blockindex")
+ if (strType == "blockindex" && !fRequestShutdown)
{
CDiskBlockIndex diskindex;
ssValue >> diskindex;
@@ -541,11 +561,14 @@ bool CTxDB::LoadBlockIndex()
}
else
{
- break;
+ break; // if shutdown requested or finished loading block index
}
}
pcursor->close();
+ if (fRequestShutdown)
+ return true;
+
// Calculate bnChainWork
vector<pair<int, CBlockIndex*> > vSortedByHeight;
vSortedByHeight.reserve(mapBlockIndex.size());
@@ -579,19 +602,118 @@ bool CTxDB::LoadBlockIndex()
ReadBestInvalidWork(bnBestInvalidWork);
// Verify blocks in the best chain
+ int nCheckLevel = GetArg("-checklevel", 1);
+ int nCheckDepth = GetArg( "-checkblocks", 2500);
+ if (nCheckDepth == 0)
+ nCheckDepth = 1000000000; // suffices until the year 19000
+ if (nCheckDepth > nBestHeight)
+ nCheckDepth = nBestHeight;
+ printf("Verifying last %i blocks at level %i\n", nCheckDepth, nCheckLevel);
CBlockIndex* pindexFork = NULL;
+ map<pair<unsigned int, unsigned int>, CBlockIndex*> mapBlockPos;
for (CBlockIndex* pindex = pindexBest; pindex && pindex->pprev; pindex = pindex->pprev)
{
- if (pindex->nHeight < nBestHeight-2500 && !mapArgs.count("-checkblocks"))
+ if (pindex->nHeight < nBestHeight-nCheckDepth)
break;
CBlock block;
if (!block.ReadFromDisk(pindex))
return error("LoadBlockIndex() : block.ReadFromDisk failed");
- if (!block.CheckBlock())
+ // check level 1: verify block validity
+ if (nCheckLevel>0 && !block.CheckBlock())
{
printf("LoadBlockIndex() : *** found bad block at %d, hash=%s\n", pindex->nHeight, pindex->GetBlockHash().ToString().c_str());
pindexFork = pindex->pprev;
}
+ // check level 2: verify transaction index validity
+ if (nCheckLevel>1)
+ {
+ pair<unsigned int, unsigned int> pos = make_pair(pindex->nFile, pindex->nBlockPos);
+ mapBlockPos[pos] = pindex;
+ BOOST_FOREACH(const CTransaction &tx, block.vtx)
+ {
+ uint256 hashTx = tx.GetHash();
+ CTxIndex txindex;
+ if (ReadTxIndex(hashTx, txindex))
+ {
+ // check level 3: checker transaction hashes
+ if (nCheckLevel>2 || pindex->nFile != txindex.pos.nFile || pindex->nBlockPos != txindex.pos.nBlockPos)
+ {
+ // either an error or a duplicate transaction
+ CTransaction txFound;
+ if (!txFound.ReadFromDisk(txindex.pos))
+ {
+ printf("LoadBlockIndex() : *** cannot read mislocated transaction %s\n", hashTx.ToString().c_str());
+ pindexFork = pindex->pprev;
+ }
+ else
+ if (txFound.GetHash() != hashTx) // not a duplicate tx
+ {
+ printf("LoadBlockIndex(): *** invalid tx position for %s\n", hashTx.ToString().c_str());
+ pindexFork = pindex->pprev;
+ }
+ }
+ // check level 4: check whether spent txouts were spent within the main chain
+ unsigned int nOutput = 0;
+ if (nCheckLevel>3)
+ {
+ BOOST_FOREACH(const CDiskTxPos &txpos, txindex.vSpent)
+ {
+ if (!txpos.IsNull())
+ {
+ pair<unsigned int, unsigned int> posFind = make_pair(txpos.nFile, txpos.nBlockPos);
+ if (!mapBlockPos.count(posFind))
+ {
+ printf("LoadBlockIndex(): *** found bad spend at %d, hashBlock=%s, hashTx=%s\n", pindex->nHeight, pindex->GetBlockHash().ToString().c_str(), hashTx.ToString().c_str());
+ pindexFork = pindex->pprev;
+ }
+ // check level 6: check whether spent txouts were spent by a valid transaction that consume them
+ if (nCheckLevel>5)
+ {
+ CTransaction txSpend;
+ if (!txSpend.ReadFromDisk(txpos))
+ {
+ printf("LoadBlockIndex(): *** cannot read spending transaction of %s:%i from disk\n", hashTx.ToString().c_str(), nOutput);
+ pindexFork = pindex->pprev;
+ }
+ else if (!txSpend.CheckTransaction())
+ {
+ printf("LoadBlockIndex(): *** spending transaction of %s:%i is invalid\n", hashTx.ToString().c_str(), nOutput);
+ pindexFork = pindex->pprev;
+ }
+ else
+ {
+ bool fFound = false;
+ BOOST_FOREACH(const CTxIn &txin, txSpend.vin)
+ if (txin.prevout.hash == hashTx && txin.prevout.n == nOutput)
+ fFound = true;
+ if (!fFound)
+ {
+ printf("LoadBlockIndex(): *** spending transaction of %s:%i does not spend it\n", hashTx.ToString().c_str(), nOutput);
+ pindexFork = pindex->pprev;
+ }
+ }
+ }
+ }
+ nOutput++;
+ }
+ }
+ }
+ // check level 5: check whether all prevouts are marked spent
+ if (nCheckLevel>4)
+ {
+ BOOST_FOREACH(const CTxIn &txin, tx.vin)
+ {
+ CTxIndex txindex;
+ if (ReadTxIndex(txin.prevout.hash, txindex))
+ if (txindex.vSpent.size()-1 < txin.prevout.n || txindex.vSpent[txin.prevout.n].IsNull())
+ {
+ printf("LoadBlockIndex(): *** found unspent prevout %s:%i in %s\n", txin.prevout.hash.ToString().c_str(), txin.prevout.n, hashTx.ToString().c_str());
+ pindexFork = pindex->pprev;
+ }
+ }
+ }
+ }
+ }
}
if (pindexFork)
{
@@ -615,466 +737,65 @@ bool CTxDB::LoadBlockIndex()
// CAddrDB
//
-bool CAddrDB::WriteAddress(const CAddress& addr)
-{
- return Write(make_pair(string("addr"), addr.GetKey()), addr);
-}
-
-bool CAddrDB::EraseAddress(const CAddress& addr)
+bool CAddrDB::WriteAddrman(const CAddrMan& addrman)
{
- return Erase(make_pair(string("addr"), addr.GetKey()));
+ return Write(string("addrman"), addrman);
}
bool CAddrDB::LoadAddresses()
{
- CRITICAL_BLOCK(cs_mapAddresses)
+ if (Read(string("addrman"), addrman))
{
- // Get cursor
- Dbc* pcursor = GetCursor();
- if (!pcursor)
- return false;
-
- loop
- {
- // Read next record
- CDataStream ssKey;
- CDataStream ssValue;
- int ret = ReadAtCursor(pcursor, ssKey, ssValue);
- if (ret == DB_NOTFOUND)
- break;
- else if (ret != 0)
- return false;
-
- // Unserialize
- string strType;
- ssKey >> strType;
- if (strType == "addr")
- {
- CAddress addr;
- ssValue >> addr;
- mapAddresses.insert(make_pair(addr.GetKey(), addr));
- }
- }
- pcursor->close();
-
- printf("Loaded %d addresses\n", mapAddresses.size());
+ printf("Loaded %i addresses\n", addrman.size());
+ return true;
}
+
+ // Read pre-0.6 addr records
- return true;
-}
-
-bool LoadAddresses()
-{
- return CAddrDB("cr+").LoadAddresses();
-}
-
-
-
-
-//
-// CWalletDB
-//
-
-bool CWalletDB::WriteName(const string& strAddress, const string& strName)
-{
- nWalletDBUpdated++;
- return Write(make_pair(string("name"), strAddress), strName);
-}
-
-bool CWalletDB::EraseName(const string& strAddress)
-{
- // This should only be used for sending addresses, never for receiving addresses,
- // receiving addresses must always have an address book entry if they're not change return.
- nWalletDBUpdated++;
- return Erase(make_pair(string("name"), strAddress));
-}
-
-bool CWalletDB::ReadAccount(const string& strAccount, CAccount& account)
-{
- account.SetNull();
- return Read(make_pair(string("acc"), strAccount), account);
-}
-
-bool CWalletDB::WriteAccount(const string& strAccount, const CAccount& account)
-{
- return Write(make_pair(string("acc"), strAccount), account);
-}
-
-bool CWalletDB::WriteAccountingEntry(const CAccountingEntry& acentry)
-{
- return Write(boost::make_tuple(string("acentry"), acentry.strAccount, ++nAccountingEntryNumber), acentry);
-}
-
-int64 CWalletDB::GetAccountCreditDebit(const string& strAccount)
-{
- list<CAccountingEntry> entries;
- ListAccountCreditDebit(strAccount, entries);
-
- int64 nCreditDebit = 0;
- BOOST_FOREACH (const CAccountingEntry& entry, entries)
- nCreditDebit += entry.nCreditDebit;
-
- return nCreditDebit;
-}
-
-void CWalletDB::ListAccountCreditDebit(const string& strAccount, list<CAccountingEntry>& entries)
-{
- bool fAllAccounts = (strAccount == "*");
+ vector<CAddress> vAddr;
+ vector<vector<unsigned char> > vDelete;
+ // Get cursor
Dbc* pcursor = GetCursor();
if (!pcursor)
- throw runtime_error("CWalletDB::ListAccountCreditDebit() : cannot create DB cursor");
- unsigned int fFlags = DB_SET_RANGE;
+ return false;
+
loop
{
// Read next record
- CDataStream ssKey;
- if (fFlags == DB_SET_RANGE)
- ssKey << boost::make_tuple(string("acentry"), (fAllAccounts? string("") : strAccount), uint64(0));
- CDataStream ssValue;
- int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags);
- fFlags = DB_NEXT;
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
+ CDataStream ssValue(SER_DISK, CLIENT_VERSION);
+ int ret = ReadAtCursor(pcursor, ssKey, ssValue);
if (ret == DB_NOTFOUND)
break;
else if (ret != 0)
- {
- pcursor->close();
- throw runtime_error("CWalletDB::ListAccountCreditDebit() : error scanning DB");
- }
+ return false;
// Unserialize
string strType;
ssKey >> strType;
- if (strType != "acentry")
- break;
- CAccountingEntry acentry;
- ssKey >> acentry.strAccount;
- if (!fAllAccounts && acentry.strAccount != strAccount)
- break;
-
- ssValue >> acentry;
- entries.push_back(acentry);
- }
-
- pcursor->close();
-}
-
-
-int CWalletDB::LoadWallet(CWallet* pwallet)
-{
- pwallet->vchDefaultKey.clear();
- int nFileVersion = 0;
- vector<uint256> vWalletUpgrade;
- bool fIsEncrypted = false;
-
- // Modify defaults
-#ifndef WIN32
- // Tray icon sometimes disappears on 9.10 karmic koala 64-bit, leaving no way to access the program
- fMinimizeToTray = false;
- fMinimizeOnClose = false;
-#endif
-
- //// todo: shouldn't we catch exceptions and try to recover and continue?
- CRITICAL_BLOCK(pwallet->cs_wallet)
- {
- // Get cursor
- Dbc* pcursor = GetCursor();
- if (!pcursor)
- return DB_CORRUPT;
-
- loop
+ if (strType == "addr")
{
- // Read next record
- CDataStream ssKey;
- CDataStream ssValue;
- int ret = ReadAtCursor(pcursor, ssKey, ssValue);
- if (ret == DB_NOTFOUND)
- break;
- else if (ret != 0)
- return DB_CORRUPT;
-
- // Unserialize
- // Taking advantage of the fact that pair serialization
- // is just the two items serialized one after the other
- string strType;
- ssKey >> strType;
- if (strType == "name")
- {
- string strAddress;
- ssKey >> strAddress;
- ssValue >> pwallet->mapAddressBook[strAddress];
- }
- else if (strType == "tx")
- {
- uint256 hash;
- ssKey >> hash;
- CWalletTx& wtx = pwallet->mapWallet[hash];
- ssValue >> wtx;
- wtx.BindWallet(pwallet);
-
- if (wtx.GetHash() != hash)
- printf("Error in wallet.dat, hash mismatch\n");
-
- // Undo serialize changes in 31600
- if (31404 <= wtx.fTimeReceivedIsTxTime && wtx.fTimeReceivedIsTxTime <= 31703)
- {
- if (!ssValue.empty())
- {
- char fTmp;
- char fUnused;
- ssValue >> fTmp >> fUnused >> wtx.strFromAccount;
- printf("LoadWallet() upgrading tx ver=%d %d '%s' %s\n", wtx.fTimeReceivedIsTxTime, fTmp, wtx.strFromAccount.c_str(), hash.ToString().c_str());
- wtx.fTimeReceivedIsTxTime = fTmp;
- }
- else
- {
- printf("LoadWallet() repairing tx ver=%d %s\n", wtx.fTimeReceivedIsTxTime, hash.ToString().c_str());
- wtx.fTimeReceivedIsTxTime = 0;
- }
- vWalletUpgrade.push_back(hash);
- }
-
- //// debug print
- //printf("LoadWallet %s\n", wtx.GetHash().ToString().c_str());
- //printf(" %12I64d %s %s %s\n",
- // wtx.vout[0].nValue,
- // DateTimeStrFormat("%x %H:%M:%S", wtx.GetBlockTime()).c_str(),
- // wtx.hashBlock.ToString().substr(0,20).c_str(),
- // wtx.mapValue["message"].c_str());
- }
- else if (strType == "acentry")
- {
- string strAccount;
- ssKey >> strAccount;
- uint64 nNumber;
- ssKey >> nNumber;
- if (nNumber > nAccountingEntryNumber)
- nAccountingEntryNumber = nNumber;
- }
- else if (strType == "key" || strType == "wkey")
- {
- vector<unsigned char> vchPubKey;
- ssKey >> vchPubKey;
- CKey key;
- if (strType == "key")
- {
- CPrivKey pkey;
- ssValue >> pkey;
- key.SetPubKey(vchPubKey);
- key.SetPrivKey(pkey);
- if (key.GetPubKey() != vchPubKey || !key.IsValid())
- return DB_CORRUPT;
- }
- else
- {
- CWalletKey wkey;
- ssValue >> wkey;
- key.SetPubKey(vchPubKey);
- key.SetPrivKey(wkey.vchPrivKey);
- if (key.GetPubKey() != vchPubKey || !key.IsValid())
- return DB_CORRUPT;
- }
- if (!pwallet->LoadKey(key))
- return DB_CORRUPT;
- }
- else if (strType == "mkey")
- {
- unsigned int nID;
- ssKey >> nID;
- CMasterKey kMasterKey;
- ssValue >> kMasterKey;
- if(pwallet->mapMasterKeys.count(nID) != 0)
- return DB_CORRUPT;
- pwallet->mapMasterKeys[nID] = kMasterKey;
- if (pwallet->nMasterKeyMaxID < nID)
- pwallet->nMasterKeyMaxID = nID;
- }
- else if (strType == "ckey")
- {
- vector<unsigned char> vchPubKey;
- ssKey >> vchPubKey;
- vector<unsigned char> vchPrivKey;
- ssValue >> vchPrivKey;
- if (!pwallet->LoadCryptedKey(vchPubKey, vchPrivKey))
- return DB_CORRUPT;
- fIsEncrypted = true;
- }
- else if (strType == "defaultkey")
- {
- ssValue >> pwallet->vchDefaultKey;
- }
- else if (strType == "pool")
- {
- int64 nIndex;
- ssKey >> nIndex;
- pwallet->setKeyPool.insert(nIndex);
- }
- else if (strType == "version")
- {
- ssValue >> nFileVersion;
- if (nFileVersion == 10300)
- nFileVersion = 300;
- }
- else if (strType == "setting")
- {
- string strKey;
- ssKey >> strKey;
-
- // Options
-#ifndef QT_GUI
- if (strKey == "fGenerateBitcoins") ssValue >> fGenerateBitcoins;
-#endif
- if (strKey == "nTransactionFee") ssValue >> nTransactionFee;
- if (strKey == "fLimitProcessors") ssValue >> fLimitProcessors;
- if (strKey == "nLimitProcessors") ssValue >> nLimitProcessors;
- if (strKey == "fMinimizeToTray") ssValue >> fMinimizeToTray;
- if (strKey == "fMinimizeOnClose") ssValue >> fMinimizeOnClose;
- if (strKey == "fUseProxy") ssValue >> fUseProxy;
- if (strKey == "addrProxy") ssValue >> addrProxy;
- if (fHaveUPnP && strKey == "fUseUPnP") ssValue >> fUseUPnP;
- }
- else if (strType == "minversion")
- {
- int nMinVersion = 0;
- ssValue >> nMinVersion;
- if (nMinVersion > CLIENT_VERSION)
- return DB_TOO_NEW;
- }
- else if (strType == "cscript")
- {
- uint160 hash;
- ssKey >> hash;
- CScript script;
- ssValue >> script;
- if (!pwallet->LoadCScript(script))
- return DB_CORRUPT;
- }
+ CAddress addr;
+ ssValue >> addr;
+ vAddr.push_back(addr);
}
- pcursor->close();
}
+ pcursor->close();
- BOOST_FOREACH(uint256 hash, vWalletUpgrade)
- WriteTx(hash, pwallet->mapWallet[hash]);
-
- printf("nFileVersion = %d\n", nFileVersion);
- printf("fGenerateBitcoins = %d\n", fGenerateBitcoins);
- printf("nTransactionFee = %"PRI64d"\n", nTransactionFee);
- printf("fMinimizeToTray = %d\n", fMinimizeToTray);
- printf("fMinimizeOnClose = %d\n", fMinimizeOnClose);
- printf("fUseProxy = %d\n", fUseProxy);
- printf("addrProxy = %s\n", addrProxy.ToString().c_str());
- if (fHaveUPnP)
- printf("fUseUPnP = %d\n", fUseUPnP);
-
-
- // Rewrite encrypted wallets of versions 0.4.0 and 0.5.0rc:
- if (fIsEncrypted && (nFileVersion == 40000 || nFileVersion == 50000))
- return DB_NEED_REWRITE;
-
- if (nFileVersion < CLIENT_VERSION) // Update
- {
- // Get rid of old debug.log file in current directory
- if (nFileVersion <= 105 && !pszSetDataDir[0])
- unlink("debug.log");
+ addrman.Add(vAddr, CNetAddr("0.0.0.0"));
+ printf("Loaded %i addresses\n", addrman.size());
- WriteVersion(CLIENT_VERSION);
- }
+ // Note: old records left; we ran into hangs-on-startup
+ // bugs for some users who (we think) were running after
+ // an unclean shutdown.
- return DB_LOAD_OK;
+ return true;
}
-void ThreadFlushWalletDB(void* parg)
+bool LoadAddresses()
{
- const string& strFile = ((const string*)parg)[0];
- static bool fOneThread;
- if (fOneThread)
- return;
- fOneThread = true;
- if (mapArgs.count("-noflushwallet"))
- return;
-
- unsigned int nLastSeen = nWalletDBUpdated;
- unsigned int nLastFlushed = nWalletDBUpdated;
- int64 nLastWalletUpdate = GetTime();
- while (!fShutdown)
- {
- Sleep(500);
-
- if (nLastSeen != nWalletDBUpdated)
- {
- nLastSeen = nWalletDBUpdated;
- nLastWalletUpdate = GetTime();
- }
-
- if (nLastFlushed != nWalletDBUpdated && GetTime() - nLastWalletUpdate >= 2)
- {
- TRY_CRITICAL_BLOCK(cs_db)
- {
- // Don't do this if any databases are in use
- int nRefCount = 0;
- map<string, int>::iterator mi = mapFileUseCount.begin();
- while (mi != mapFileUseCount.end())
- {
- nRefCount += (*mi).second;
- mi++;
- }
-
- if (nRefCount == 0 && !fShutdown)
- {
- map<string, int>::iterator mi = mapFileUseCount.find(strFile);
- if (mi != mapFileUseCount.end())
- {
- printf("%s ", DateTimeStrFormat("%x %H:%M:%S", GetTime()).c_str());
- printf("Flushing wallet.dat\n");
- nLastFlushed = nWalletDBUpdated;
- int64 nStart = GetTimeMillis();
-
- // Flush wallet.dat so it's self contained
- CloseDb(strFile);
- dbenv.txn_checkpoint(0, 0, 0);
- dbenv.lsn_reset(strFile.c_str(), 0);
-
- mapFileUseCount.erase(mi++);
- printf("Flushed wallet.dat %"PRI64d"ms\n", GetTimeMillis() - nStart);
- }
- }
- }
- }
- }
+ return CAddrDB("cr+").LoadAddresses();
}
-bool BackupWallet(const CWallet& wallet, const string& strDest)
-{
- if (!wallet.fFileBacked)
- return false;
- while (!fShutdown)
- {
- CRITICAL_BLOCK(cs_db)
- {
- if (!mapFileUseCount.count(wallet.strWalletFile) || mapFileUseCount[wallet.strWalletFile] == 0)
- {
- // Flush log data to the dat file
- CloseDb(wallet.strWalletFile);
- dbenv.txn_checkpoint(0, 0, 0);
- dbenv.lsn_reset(wallet.strWalletFile.c_str(), 0);
- mapFileUseCount.erase(wallet.strWalletFile);
-
- // Copy wallet.dat
- filesystem::path pathSrc(GetDataDir() + "/" + wallet.strWalletFile);
- filesystem::path pathDest(strDest);
- if (filesystem::is_directory(pathDest))
- pathDest = pathDest / wallet.strWalletFile;
-#if BOOST_VERSION >= 104000
- filesystem::copy_file(pathSrc, pathDest, filesystem::copy_option::overwrite_if_exists);
-#else
- filesystem::copy_file(pathSrc, pathDest);
-#endif
- printf("copied wallet.dat to %s\n", pathDest.string().c_str());
- return true;
- }
- }
- Sleep(100);
- }
- return false;
-}
diff --git a/src/db.h b/src/db.h
index e593ae28ed..3ce8f1758f 100644
--- a/src/db.h
+++ b/src/db.h
@@ -1,11 +1,11 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_DB_H
#define BITCOIN_DB_H
-#include "key.h"
+#include "main.h"
#include <map>
#include <string>
@@ -13,9 +13,8 @@
#include <db_cxx.h>
-class CAccount;
-class CAccountingEntry;
class CAddress;
+class CAddrMan;
class CBlockLocator;
class CDiskBlockIndex;
class CDiskTxPos;
@@ -26,6 +25,7 @@ class CWallet;
class CWalletTx;
extern unsigned int nWalletDBUpdated;
+extern bool fDetachDB;
extern DbEnv dbenv;
extern void DBFlush(bool fShutdown);
@@ -33,7 +33,7 @@ void ThreadFlushWalletDB(void* parg);
bool BackupWallet(const CWallet& wallet, const std::string& strDest);
-
+/** RAII class that provides access to a Berkeley database */
class CDB
{
protected:
@@ -58,7 +58,7 @@ protected:
return false;
// Key
- CDataStream ssKey(SER_DISK);
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
ssKey.reserve(1000);
ssKey << key;
Dbt datKey(&ssKey[0], ssKey.size());
@@ -72,7 +72,7 @@ protected:
return false;
// Unserialize value
- CDataStream ssValue((char*)datValue.get_data(), (char*)datValue.get_data() + datValue.get_size(), SER_DISK);
+ CDataStream ssValue((char*)datValue.get_data(), (char*)datValue.get_data() + datValue.get_size(), SER_DISK, CLIENT_VERSION);
ssValue >> value;
// Clear and free memory
@@ -90,13 +90,13 @@ protected:
assert(!"Write called on database in read-only mode");
// Key
- CDataStream ssKey(SER_DISK);
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
ssKey.reserve(1000);
ssKey << key;
Dbt datKey(&ssKey[0], ssKey.size());
// Value
- CDataStream ssValue(SER_DISK);
+ CDataStream ssValue(SER_DISK, CLIENT_VERSION);
ssValue.reserve(10000);
ssValue << value;
Dbt datValue(&ssValue[0], ssValue.size());
@@ -119,7 +119,7 @@ protected:
assert(!"Erase called on database in read-only mode");
// Key
- CDataStream ssKey(SER_DISK);
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
ssKey.reserve(1000);
ssKey << key;
Dbt datKey(&ssKey[0], ssKey.size());
@@ -139,7 +139,7 @@ protected:
return false;
// Key
- CDataStream ssKey(SER_DISK);
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
ssKey.reserve(1000);
ssKey << key;
Dbt datKey(&ssKey[0], ssKey.size());
@@ -265,7 +265,7 @@ public:
-
+/** Access to the transaction database (blkindex.dat) */
class CTxDB : public CDB
{
public:
@@ -296,7 +296,7 @@ public:
-
+/** Access to the (IP) address database (addr.dat) */
class CAddrDB : public CDB
{
public:
@@ -305,194 +305,11 @@ private:
CAddrDB(const CAddrDB&);
void operator=(const CAddrDB&);
public:
- bool WriteAddress(const CAddress& addr);
- bool EraseAddress(const CAddress& addr);
+ bool WriteAddrman(const CAddrMan& addr);
bool LoadAddresses();
};
bool LoadAddresses();
-
-class CKeyPool
-{
-public:
- int64 nTime;
- std::vector<unsigned char> vchPubKey;
-
- CKeyPool()
- {
- nTime = GetTime();
- }
-
- CKeyPool(const std::vector<unsigned char>& vchPubKeyIn)
- {
- nTime = GetTime();
- vchPubKey = vchPubKeyIn;
- }
-
- IMPLEMENT_SERIALIZE
- (
- if (!(nType & SER_GETHASH))
- READWRITE(nVersion);
- READWRITE(nTime);
- READWRITE(vchPubKey);
- )
-};
-
-
-
-
-enum DBErrors
-{
- DB_LOAD_OK,
- DB_CORRUPT,
- DB_TOO_NEW,
- DB_LOAD_FAIL,
- DB_NEED_REWRITE
-};
-
-class CWalletDB : public CDB
-{
-public:
- CWalletDB(std::string strFilename, const char* pszMode="r+") : CDB(strFilename.c_str(), pszMode)
- {
- }
-private:
- CWalletDB(const CWalletDB&);
- void operator=(const CWalletDB&);
-public:
- bool ReadName(const std::string& strAddress, std::string& strName)
- {
- strName = "";
- return Read(std::make_pair(std::string("name"), strAddress), strName);
- }
-
- bool WriteName(const std::string& strAddress, const std::string& strName);
-
- bool EraseName(const std::string& strAddress);
-
- bool ReadTx(uint256 hash, CWalletTx& wtx)
- {
- return Read(std::make_pair(std::string("tx"), hash), wtx);
- }
-
- bool WriteTx(uint256 hash, const CWalletTx& wtx)
- {
- nWalletDBUpdated++;
- return Write(std::make_pair(std::string("tx"), hash), wtx);
- }
-
- bool EraseTx(uint256 hash)
- {
- nWalletDBUpdated++;
- return Erase(std::make_pair(std::string("tx"), hash));
- }
-
- bool ReadKey(const std::vector<unsigned char>& vchPubKey, CPrivKey& vchPrivKey)
- {
- vchPrivKey.clear();
- return Read(std::make_pair(std::string("key"), vchPubKey), vchPrivKey);
- }
-
- bool WriteKey(const std::vector<unsigned char>& vchPubKey, const CPrivKey& vchPrivKey)
- {
- nWalletDBUpdated++;
- return Write(std::make_pair(std::string("key"), vchPubKey), vchPrivKey, false);
- }
-
- bool WriteCryptedKey(const std::vector<unsigned char>& vchPubKey, const std::vector<unsigned char>& vchCryptedSecret, bool fEraseUnencryptedKey = true)
- {
- nWalletDBUpdated++;
- if (!Write(std::make_pair(std::string("ckey"), vchPubKey), vchCryptedSecret, false))
- return false;
- if (fEraseUnencryptedKey)
- {
- Erase(std::make_pair(std::string("key"), vchPubKey));
- Erase(std::make_pair(std::string("wkey"), vchPubKey));
- }
- return true;
- }
-
- bool WriteMasterKey(unsigned int nID, const CMasterKey& kMasterKey)
- {
- nWalletDBUpdated++;
- return Write(std::make_pair(std::string("mkey"), nID), kMasterKey, true);
- }
-
- // Support for BIP 0013 : see https://en.bitcoin.it/wiki/BIP_0013
- bool ReadCScript(const uint160 &hash, CScript& redeemScript)
- {
- redeemScript.clear();
- return Read(std::make_pair(std::string("cscript"), hash), redeemScript);
- }
-
- bool WriteCScript(const uint160& hash, const CScript& redeemScript)
- {
- nWalletDBUpdated++;
- return Write(std::make_pair(std::string("cscript"), hash), redeemScript, false);
- }
-
- bool WriteBestBlock(const CBlockLocator& locator)
- {
- nWalletDBUpdated++;
- return Write(std::string("bestblock"), locator);
- }
-
- bool ReadBestBlock(CBlockLocator& locator)
- {
- return Read(std::string("bestblock"), locator);
- }
-
- bool ReadDefaultKey(std::vector<unsigned char>& vchPubKey)
- {
- vchPubKey.clear();
- return Read(std::string("defaultkey"), vchPubKey);
- }
-
- bool WriteDefaultKey(const std::vector<unsigned char>& vchPubKey)
- {
- nWalletDBUpdated++;
- return Write(std::string("defaultkey"), vchPubKey);
- }
-
- bool ReadPool(int64 nPool, CKeyPool& keypool)
- {
- return Read(std::make_pair(std::string("pool"), nPool), keypool);
- }
-
- bool WritePool(int64 nPool, const CKeyPool& keypool)
- {
- nWalletDBUpdated++;
- return Write(std::make_pair(std::string("pool"), nPool), keypool);
- }
-
- bool ErasePool(int64 nPool)
- {
- nWalletDBUpdated++;
- return Erase(std::make_pair(std::string("pool"), nPool));
- }
-
- template<typename T>
- bool ReadSetting(const std::string& strKey, T& value)
- {
- return Read(std::make_pair(std::string("setting"), strKey), value);
- }
-
- template<typename T>
- bool WriteSetting(const std::string& strKey, const T& value)
- {
- nWalletDBUpdated++;
- return Write(std::make_pair(std::string("setting"), strKey), value);
- }
-
- bool ReadAccount(const std::string& strAccount, CAccount& account);
- bool WriteAccount(const std::string& strAccount, const CAccount& account);
- bool WriteAccountingEntry(const CAccountingEntry& acentry);
- int64 GetAccountCreditDebit(const std::string& strAccount);
- void ListAccountCreditDebit(const std::string& strAccount, std::list<CAccountingEntry>& acentries);
-
- int LoadWallet(CWallet* pwallet);
-};
-
-#endif
+#endif // BITCOIN_DB_H
diff --git a/src/headers.h b/src/headers.h
deleted file mode 100644
index 127cf41282..0000000000
--- a/src/headers.h
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
-// Distributed under the MIT/X11 software license, see the accompanying
-// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#pragma warning(disable:4804)
-#pragma warning(disable:4805)
-#pragma warning(disable:4717)
-#endif
-#ifdef _WIN32_WINNT
-#undef _WIN32_WINNT
-#endif
-#define _WIN32_WINNT 0x0501
-#ifdef _WIN32_IE
-#undef _WIN32_IE
-#endif
-#define _WIN32_IE 0x0400
-#define WIN32_LEAN_AND_MEAN 1
-
-// Include boost/foreach here as it defines __STDC_LIMIT_MACROS on some systems.
-#include <boost/foreach.hpp>
-
-#if (defined(__unix__) || defined(unix)) && !defined(USG)
-#include <sys/param.h> // to get BSD define
-#endif
-#ifdef MAC_OSX
-#ifndef BSD
-#define BSD 1
-#endif
-#endif
-#include <openssl/buffer.h>
-#include <openssl/ecdsa.h>
-#include <openssl/evp.h>
-#include <openssl/rand.h>
-#include <openssl/sha.h>
-#include <openssl/ripemd.h>
-#include <db_cxx.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <math.h>
-#include <float.h>
-#include <assert.h>
-#include <iostream>
-#include <sstream>
-#include <string>
-#include <vector>
-#include <list>
-#include <deque>
-#include <map>
-
-#ifdef WIN32
-#include <windows.h>
-#include <winsock2.h>
-#include <mswsock.h>
-#include <shlobj.h>
-#include <shlwapi.h>
-#include <io.h>
-#include <process.h>
-#include <malloc.h>
-#else
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <errno.h>
-#include <net/if.h>
-#include <ifaddrs.h>
-#include <fcntl.h>
-#include <signal.h>
-#endif
-#ifdef BSD
-#include <netinet/in.h>
-#endif
-
-
-#include "serialize.h"
-#include "uint256.h"
-#include "util.h"
-#include "bignum.h"
-#include "base58.h"
-#include "main.h"
-#ifdef QT_GUI
-#include "qtui.h"
-#else
-#include "noui.h"
-#endif
diff --git a/src/init.cpp b/src/init.cpp
index 4bb3312902..3fe6d1b091 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -1,26 +1,21 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
#include "db.h"
+#include "walletdb.h"
#include "bitcoinrpc.h"
#include "net.h"
#include "init.h"
-#include "strlcpy.h"
+#include "util.h"
+#include "ui_interface.h"
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/filesystem/convenience.hpp>
#include <boost/interprocess/sync/file_lock.hpp>
-#if defined(BITCOIN_NEED_QT_PLUGINS) && !defined(_BITCOIN_QT_PLUGINS_INCLUDED)
-#define _BITCOIN_QT_PLUGINS_INCLUDED
-#define __INSURE__
-#include <QtPlugin>
-Q_IMPORT_PLUGIN(qcncodecs)
-Q_IMPORT_PLUGIN(qjpcodecs)
-Q_IMPORT_PLUGIN(qtwcodecs)
-Q_IMPORT_PLUGIN(qkrcodecs)
+#ifndef WIN32
+#include <signal.h>
#endif
using namespace std;
@@ -46,10 +41,13 @@ void Shutdown(void* parg)
static CCriticalSection cs_Shutdown;
static bool fTaken;
bool fFirstThread = false;
- TRY_CRITICAL_BLOCK(cs_Shutdown)
{
- fFirstThread = !fTaken;
- fTaken = true;
+ TRY_LOCK(cs_Shutdown, lockShutdown);
+ if (lockShutdown)
+ {
+ fFirstThread = !fTaken;
+ fTaken = true;
+ }
}
static bool fExit;
if (fFirstThread)
@@ -149,27 +147,16 @@ bool AppInit2(int argc, char* argv[])
//
// Parameters
//
- // If Qt is used, parameters are parsed in qt/bitcoin.cpp's main()
+ // If Qt is used, parameters/bitcoin.conf are parsed in qt/bitcoin.cpp's main()
#if !defined(QT_GUI)
ParseParameters(argc, argv);
-#endif
-
- if (mapArgs.count("-datadir"))
+ if (!boost::filesystem::is_directory(GetDataDir(false)))
{
- if (filesystem::is_directory(filesystem::system_complete(mapArgs["-datadir"])))
- {
- filesystem::path pathDataDir = filesystem::system_complete(mapArgs["-datadir"]);
- strlcpy(pszSetDataDir, pathDataDir.string().c_str(), sizeof(pszSetDataDir));
- }
- else
- {
- fprintf(stderr, "Error: Specified directory does not exist\n");
- Shutdown(NULL);
- }
+ fprintf(stderr, "Error: Specified directory does not exist\n");
+ Shutdown(NULL);
}
-
-
- ReadConfigFile(mapArgs, mapMultiArgs); // Must be done after processing datadir
+ ReadConfigFile(mapArgs, mapMultiArgs);
+#endif
if (mapArgs.count("-?") || mapArgs.count("--help"))
{
@@ -186,7 +173,10 @@ bool AppInit2(int argc, char* argv[])
" -gen \t\t " + _("Generate coins") + "\n" +
" -gen=0 \t\t " + _("Don't generate coins") + "\n" +
" -min \t\t " + _("Start minimized") + "\n" +
+ " -splash \t\t " + _("Show splash screen on startup (default: 1)") + "\n" +
" -datadir=<dir> \t\t " + _("Specify data directory") + "\n" +
+ " -dbcache=<n> \t\t " + _("Set database cache size in megabytes (default: 25)") + "\n" +
+ " -dblogsize=<n> \t\t " + _("Set database disk log size in megabytes (default: 100)") + "\n" +
" -timeout=<n> \t " + _("Specify connection timeout (in milliseconds)") + "\n" +
" -proxy=<ip:port> \t " + _("Connect through socks4 proxy") + "\n" +
" -dns \t " + _("Allow DNS lookups for addnode and connect") + "\n" +
@@ -194,25 +184,29 @@ bool AppInit2(int argc, char* argv[])
" -maxconnections=<n>\t " + _("Maintain at most <n> connections to peers (default: 125)") + "\n" +
" -addnode=<ip> \t " + _("Add a node to connect to and attempt to keep the connection open") + "\n" +
" -connect=<ip> \t\t " + _("Connect only to the specified node") + "\n" +
- " -noirc \t " + _("Don't find peers using internet relay chat") + "\n" +
- " -nolisten \t " + _("Don't accept connections from outside") + "\n" +
- " -nodnsseed \t " + _("Don't bootstrap list of peers using DNS") + "\n" +
+ " -irc \t " + _("Find peers using internet relay chat (default: 0)") + "\n" +
+ " -listen \t " + _("Accept connections from outside (default: 1)") + "\n" +
+#ifdef QT_GUI
+ " -lang=<lang> \t\t " + _("Set language, for example \"de_DE\" (default: system locale)") + "\n" +
+#endif
+ " -dnsseed \t " + _("Find peers using DNS lookup (default: 1)") + "\n" +
" -banscore=<n> \t " + _("Threshold for disconnecting misbehaving peers (default: 100)") + "\n" +
" -bantime=<n> \t " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)") + "\n" +
" -maxreceivebuffer=<n>\t " + _("Maximum per-connection receive buffer, <n>*1000 bytes (default: 10000)") + "\n" +
" -maxsendbuffer=<n>\t " + _("Maximum per-connection send buffer, <n>*1000 bytes (default: 10000)") + "\n" +
#ifdef USE_UPNP
#if USE_UPNP
- " -noupnp \t " + _("Don't attempt to use UPnP to map the listening port") + "\n" +
+ " -upnp \t " + _("Use Universal Plug and Play to map the listening port (default: 1)") + "\n" +
#else
- " -upnp \t " + _("Attempt to use UPnP to map the listening port") + "\n" +
+ " -upnp \t " + _("Use Universal Plug and Play to map the listening port (default: 0)") + "\n" +
#endif
+ " -detachdb \t " + _("Detach block and address databases. Increases shutdown time (default: 0)") + "\n" +
#endif
" -paytxfee=<amt> \t " + _("Fee per KB to add to transactions you send") + "\n" +
-#ifdef GUI
+#ifdef QT_GUI
" -server \t\t " + _("Accept command line and JSON-RPC commands") + "\n" +
#endif
-#ifndef WIN32
+#if !defined(WIN32) && !defined(QT_GUI)
" -daemon \t\t " + _("Run in the background as a daemon and accept commands") + "\n" +
#endif
" -testnet \t\t " + _("Use the test network") + "\n" +
@@ -228,31 +222,43 @@ bool AppInit2(int argc, char* argv[])
" -rpcallowip=<ip> \t\t " + _("Allow JSON-RPC connections from specified IP address") + "\n" +
" -rpcconnect=<ip> \t " + _("Send commands to node running on <ip> (default: 127.0.0.1)") + "\n" +
" -blocknotify=<cmd> " + _("Execute command when the best block changes (%s in cmd is replaced by block hash)") + "\n" +
+ " -upgradewallet \t " + _("Upgrade wallet to latest format") + "\n" +
" -keypool=<n> \t " + _("Set key pool size to <n> (default: 100)") + "\n" +
- " -rescan \t " + _("Rescan the block chain for missing wallet transactions") + "\n";
+ " -rescan \t " + _("Rescan the block chain for missing wallet transactions") + "\n" +
+ " -checkblocks=<n> \t\t " + _("How many blocks to check at startup (default: 2500, 0 = all)") + "\n" +
+ " -checklevel=<n> \t\t " + _("How thorough the block verification is (0-6, default: 1)") + "\n";
-#ifdef USE_SSL
strUsage += string() +
_("\nSSL options: (see the Bitcoin Wiki for SSL setup instructions)") + "\n" +
" -rpcssl \t " + _("Use OpenSSL (https) for JSON-RPC connections") + "\n" +
" -rpcsslcertificatechainfile=<file.cert>\t " + _("Server certificate file (default: server.cert)") + "\n" +
" -rpcsslprivatekeyfile=<file.pem> \t " + _("Server private key (default: server.pem)") + "\n" +
" -rpcsslciphers=<ciphers> \t " + _("Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)") + "\n";
-#endif
strUsage += string() +
" -? \t\t " + _("This help message") + "\n";
// Remove tabs
strUsage.erase(std::remove(strUsage.begin(), strUsage.end(), '\t'), strUsage.end());
+#if defined(QT_GUI) && defined(WIN32)
+ // On windows, show a message box, as there is no stderr
+ ThreadSafeMessageBox(strUsage, _("Usage"), wxOK | wxMODAL);
+#else
fprintf(stderr, "%s", strUsage.c_str());
+#endif
return false;
}
fTestNet = GetBoolArg("-testnet");
+ if (fTestNet)
+ {
+ SoftSetBoolArg("-irc", true);
+ }
+
fDebug = GetBoolArg("-debug");
+ fDetachDB = GetBoolArg("-detachdb", false);
-#ifndef WIN32
+#if !defined(WIN32) && !defined(QT_GUI)
fDaemon = GetBoolArg("-daemon");
#else
fDaemon = false;
@@ -283,7 +289,7 @@ bool AppInit2(int argc, char* argv[])
}
#endif
-#ifndef WIN32
+#if !defined(WIN32) && !defined(QT_GUI)
if (fDaemon)
{
// Daemonize
@@ -305,11 +311,11 @@ bool AppInit2(int argc, char* argv[])
}
#endif
- if (!fDebug && !pszSetDataDir[0])
+ if (!fDebug)
ShrinkDebugFile();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
- printf("Bitcoin version %s\n", FormatFullVersion().c_str());
- printf("Default data directory %s\n", GetDefaultDataDir().c_str());
+ printf("Bitcoin version %s (%s)\n", FormatFullVersion().c_str(), CLIENT_DATE.c_str());
+ printf("Default data directory %s\n", GetDefaultDataDir().string().c_str());
if (GetBoolArg("-loadblockindextest"))
{
@@ -320,13 +326,13 @@ bool AppInit2(int argc, char* argv[])
}
// Make sure only a single bitcoin process is using the data directory.
- string strLockFile = GetDataDir() + "/.lock";
- FILE* file = fopen(strLockFile.c_str(), "a"); // empty lock file; created if it doesn't exist.
+ boost::filesystem::path pathLockFile = GetDataDir() / ".lock";
+ FILE* file = fopen(pathLockFile.string().c_str(), "a"); // empty lock file; created if it doesn't exist.
if (file) fclose(file);
- static boost::interprocess::file_lock lock(strLockFile.c_str());
+ static boost::interprocess::file_lock lock(pathLockFile.string().c_str());
if (!lock.try_lock())
{
- wxMessageBox(strprintf(_("Cannot obtain a lock on data directory %s. Bitcoin is probably already running."), GetDataDir().c_str()), "Bitcoin");
+ ThreadSafeMessageBox(strprintf(_("Cannot obtain a lock on data directory %s. Bitcoin is probably already running."), GetDataDir().string().c_str()), _("Bitcoin"), wxOK|wxMODAL);
return false;
}
@@ -350,6 +356,15 @@ bool AppInit2(int argc, char* argv[])
nStart = GetTimeMillis();
if (!LoadBlockIndex())
strErrors << _("Error loading blkindex.dat") << "\n";
+
+ // as LoadBlockIndex can take several minutes, it's possible the user
+ // requested to kill bitcoin-qt during the last operation. If so, exit.
+ // As the program has not fully started yet, Shutdown() is possibly overkill.
+ if (fRequestShutdown)
+ {
+ printf("Shutdown requested. Exiting.\n");
+ return false;
+ }
printf(" block index %15"PRI64d"ms\n", GetTimeMillis() - nStart);
InitMessage(_("Loading wallet..."));
@@ -367,12 +382,44 @@ bool AppInit2(int argc, char* argv[])
else if (nLoadWalletRet == DB_NEED_REWRITE)
{
strErrors << _("Wallet needed to be rewritten: restart Bitcoin to complete") << "\n";
- wxMessageBox(strErrors.str(), "Bitcoin", wxOK | wxICON_ERROR);
+ printf("%s", strErrors.str().c_str());
+ ThreadSafeMessageBox(strErrors.str(), _("Bitcoin"), wxOK | wxICON_ERROR | wxMODAL);
return false;
}
else
strErrors << _("Error loading wallet.dat") << "\n";
}
+
+ if (GetBoolArg("-upgradewallet", fFirstRun))
+ {
+ int nMaxVersion = GetArg("-upgradewallet", 0);
+ if (nMaxVersion == 0) // the -walletupgrade without argument case
+ {
+ printf("Performing wallet upgrade to %i\n", FEATURE_LATEST);
+ nMaxVersion = CLIENT_VERSION;
+ pwalletMain->SetMinVersion(FEATURE_LATEST); // permanently upgrade the wallet immediately
+ }
+ else
+ printf("Allowing wallet upgrade up to %i\n", nMaxVersion);
+ if (nMaxVersion < pwalletMain->GetVersion())
+ strErrors << _("Cannot downgrade wallet") << "\n";
+ pwalletMain->SetMaxVersion(nMaxVersion);
+ }
+
+ if (fFirstRun)
+ {
+ // Create new keyUser and set as default key
+ RandAddSeedPerfmon();
+
+ std::vector<unsigned char> newDefaultKey;
+ if (!pwalletMain->GetKeyFromPool(newDefaultKey, false))
+ strErrors << _("Cannot initialize keypool") << "\n";
+ pwalletMain->SetDefaultKey(newDefaultKey);
+ if (!pwalletMain->SetAddressBookName(CBitcoinAddress(pwalletMain->vchDefaultKey), ""))
+ strErrors << _("Cannot write default address") << "\n";
+ }
+
+ printf("%s", strErrors.str().c_str());
printf(" wallet %15"PRI64d"ms\n", GetTimeMillis() - nStart);
RegisterWallet(pwalletMain);
@@ -408,7 +455,7 @@ bool AppInit2(int argc, char* argv[])
if (!strErrors.str().empty())
{
- wxMessageBox(strErrors.str(), "Bitcoin", wxOK | wxICON_ERROR);
+ ThreadSafeMessageBox(strErrors.str(), _("Bitcoin"), wxOK | wxICON_ERROR | wxMODAL);
return false;
}
@@ -458,15 +505,13 @@ bool AppInit2(int argc, char* argv[])
return false;
}
- fGenerateBitcoins = GetBoolArg("-gen");
-
if (mapArgs.count("-proxy"))
{
fUseProxy = true;
addrProxy = CService(mapArgs["-proxy"], 9050);
if (!addrProxy.IsValid())
{
- wxMessageBox(_("Invalid -proxy address"), "Bitcoin");
+ ThreadSafeMessageBox(_("Invalid -proxy address"), _("Bitcoin"), wxOK | wxMODAL);
return false;
}
}
@@ -474,31 +519,30 @@ bool AppInit2(int argc, char* argv[])
bool fTor = (fUseProxy && addrProxy.GetPort() == 9050);
if (fTor)
{
- // Use SoftSetArg here so user can override any of these if they wish.
+ // Use SoftSetBoolArg here so user can override any of these if they wish.
// Note: the GetBoolArg() calls for all of these must happen later.
- SoftSetArg("-nolisten", true);
- SoftSetArg("-noirc", true);
- SoftSetArg("-nodnsseed", true);
- SoftSetArg("-noupnp", true);
- SoftSetArg("-upnp", false);
- SoftSetArg("-dns", false);
+ SoftSetBoolArg("-listen", false);
+ SoftSetBoolArg("-irc", false);
+ SoftSetBoolArg("-dnsseed", false);
+ SoftSetBoolArg("-upnp", false);
+ SoftSetBoolArg("-dns", false);
}
fAllowDNS = GetBoolArg("-dns");
- fNoListen = GetBoolArg("-nolisten");
+ fNoListen = !GetBoolArg("-listen", true);
- // Command-line args override in-wallet settings:
- if (mapArgs.count("-upnp"))
- fUseUPnP = GetBoolArg("-upnp");
- else if (mapArgs.count("-noupnp"))
- fUseUPnP = !GetBoolArg("-noupnp");
+ // Continue to put "/P2SH/" in the coinbase to monitor
+ // BIP16 support.
+ // This can be removed eventually...
+ const char* pszP2SH = "/P2SH/";
+ COINBASE_FLAGS << std::vector<unsigned char>(pszP2SH, pszP2SH+strlen(pszP2SH));
if (!fNoListen)
{
std::string strError;
if (!BindListenPort(strError))
{
- wxMessageBox(strError, "Bitcoin");
+ ThreadSafeMessageBox(strError, _("Bitcoin"), wxOK | wxMODAL);
return false;
}
}
@@ -510,7 +554,7 @@ bool AppInit2(int argc, char* argv[])
CAddress addr(CService(strAddr, GetDefaultPort(), fAllowDNS));
addr.nTime = 0; // so it won't relay unless successfully connected
if (addr.IsValid())
- AddAddress(addr);
+ addrman.Add(addr, CNetAddr("127.0.0.1"));
}
}
@@ -518,11 +562,11 @@ bool AppInit2(int argc, char* argv[])
{
if (!ParseMoney(mapArgs["-paytxfee"], nTransactionFee))
{
- wxMessageBox(_("Invalid amount for -paytxfee=<amount>"), "Bitcoin");
+ ThreadSafeMessageBox(_("Invalid amount for -paytxfee=<amount>"), _("Bitcoin"), wxOK | wxMODAL);
return false;
}
if (nTransactionFee > 0.25 * COIN)
- wxMessageBox(_("Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."), "Bitcoin", wxOK | wxICON_EXCLAMATION);
+ ThreadSafeMessageBox(_("Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."), _("Bitcoin"), wxOK | wxICON_EXCLAMATION | wxMODAL);
}
//
@@ -534,14 +578,14 @@ bool AppInit2(int argc, char* argv[])
RandAddSeedPerfmon();
if (!CreateThread(StartNode, NULL))
- wxMessageBox(_("Error: CreateThread(StartNode) failed"), "Bitcoin");
+ ThreadSafeMessageBox(_("Error: CreateThread(StartNode) failed"), _("Bitcoin"), wxOK | wxMODAL);
if (fServer)
CreateThread(ThreadRPCServer, NULL);
#ifdef QT_GUI
- if(GetStartOnSystemStartup())
- SetStartOnSystemStartup(true); // Remove startup links to bitcoin-wx
+ if (GetStartOnSystemStartup())
+ SetStartOnSystemStartup(true); // Remove startup links
#endif
#if !defined(QT_GUI)
@@ -552,151 +596,3 @@ bool AppInit2(int argc, char* argv[])
return true;
}
-#ifdef WIN32
-string StartupShortcutPath()
-{
- return MyGetSpecialFolderPath(CSIDL_STARTUP, true) + "\\Bitcoin.lnk";
-}
-
-bool GetStartOnSystemStartup()
-{
- return filesystem::exists(StartupShortcutPath().c_str());
-}
-
-bool SetStartOnSystemStartup(bool fAutoStart)
-{
- // If the shortcut exists already, remove it for updating
- remove(StartupShortcutPath().c_str());
-
- if (fAutoStart)
- {
- CoInitialize(NULL);
-
- // Get a pointer to the IShellLink interface.
- IShellLink* psl = NULL;
- HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL,
- CLSCTX_INPROC_SERVER, IID_IShellLink,
- reinterpret_cast<void**>(&psl));
-
- if (SUCCEEDED(hres))
- {
- // Get the current executable path
- TCHAR pszExePath[MAX_PATH];
- GetModuleFileName(NULL, pszExePath, sizeof(pszExePath));
-
- TCHAR pszArgs[5] = TEXT("-min");
-
- // Set the path to the shortcut target
- psl->SetPath(pszExePath);
- PathRemoveFileSpec(pszExePath);
- psl->SetWorkingDirectory(pszExePath);
- psl->SetShowCmd(SW_SHOWMINNOACTIVE);
- psl->SetArguments(pszArgs);
-
- // Query IShellLink for the IPersistFile interface for
- // saving the shortcut in persistent storage.
- IPersistFile* ppf = NULL;
- hres = psl->QueryInterface(IID_IPersistFile,
- reinterpret_cast<void**>(&ppf));
- if (SUCCEEDED(hres))
- {
- WCHAR pwsz[MAX_PATH];
- // Ensure that the string is ANSI.
- MultiByteToWideChar(CP_ACP, 0, StartupShortcutPath().c_str(), -1, pwsz, MAX_PATH);
- // Save the link by calling IPersistFile::Save.
- hres = ppf->Save(pwsz, TRUE);
- ppf->Release();
- psl->Release();
- CoUninitialize();
- return true;
- }
- psl->Release();
- }
- CoUninitialize();
- return false;
- }
- return true;
-}
-
-#elif defined(LINUX)
-
-// Follow the Desktop Application Autostart Spec:
-// http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html
-
-boost::filesystem::path GetAutostartDir()
-{
- namespace fs = boost::filesystem;
-
- char* pszConfigHome = getenv("XDG_CONFIG_HOME");
- if (pszConfigHome) return fs::path(pszConfigHome) / fs::path("autostart");
- char* pszHome = getenv("HOME");
- if (pszHome) return fs::path(pszHome) / fs::path(".config/autostart");
- return fs::path();
-}
-
-boost::filesystem::path GetAutostartFilePath()
-{
- return GetAutostartDir() / boost::filesystem::path("bitcoin.desktop");
-}
-
-bool GetStartOnSystemStartup()
-{
- boost::filesystem::ifstream optionFile(GetAutostartFilePath());
- if (!optionFile.good())
- return false;
- // Scan through file for "Hidden=true":
- string line;
- while (!optionFile.eof())
- {
- getline(optionFile, line);
- if (line.find("Hidden") != string::npos &&
- line.find("true") != string::npos)
- return false;
- }
- optionFile.close();
-
- return true;
-}
-
-bool SetStartOnSystemStartup(bool fAutoStart)
-{
- if (!fAutoStart)
- {
-#if defined(BOOST_FILESYSTEM_VERSION) && BOOST_FILESYSTEM_VERSION >= 3
- unlink(GetAutostartFilePath().string().c_str());
-#else
- unlink(GetAutostartFilePath().native_file_string().c_str());
-#endif
- }
- else
- {
- char pszExePath[MAX_PATH+1];
- memset(pszExePath, 0, sizeof(pszExePath));
- if (readlink("/proc/self/exe", pszExePath, sizeof(pszExePath)-1) == -1)
- return false;
-
- boost::filesystem::create_directories(GetAutostartDir());
-
- boost::filesystem::ofstream optionFile(GetAutostartFilePath(), ios_base::out|ios_base::trunc);
- if (!optionFile.good())
- return false;
- // Write a bitcoin.desktop file to the autostart directory:
- optionFile << "[Desktop Entry]\n";
- optionFile << "Type=Application\n";
- optionFile << "Name=Bitcoin\n";
- optionFile << "Exec=" << pszExePath << " -min\n";
- optionFile << "Terminal=false\n";
- optionFile << "Hidden=false\n";
- optionFile.close();
- }
- return true;
-}
-#else
-
-// TODO: OSX startup stuff; see:
-// http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/CustomLogin.html
-
-bool GetStartOnSystemStartup() { return false; }
-bool SetStartOnSystemStartup(bool fAutoStart) { return false; }
-
-#endif
diff --git a/src/init.h b/src/init.h
index 6721b2899b..e3971c85e3 100644
--- a/src/init.h
+++ b/src/init.h
@@ -1,10 +1,12 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_INIT_H
#define BITCOIN_INIT_H
+#include "wallet.h"
+
extern CWallet* pwalletMain;
void Shutdown(void* parg);
diff --git a/src/irc.cpp b/src/irc.cpp
index 8805c7fd5b..237497055d 100644
--- a/src/irc.cpp
+++ b/src/irc.cpp
@@ -1,12 +1,12 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
#include "irc.h"
#include "net.h"
#include "strlcpy.h"
+#include "base58.h"
using namespace std;
using namespace boost;
@@ -76,57 +76,6 @@ static bool Send(SOCKET hSocket, const char* pszSend)
return true;
}
-bool RecvLine(SOCKET hSocket, string& strLine)
-{
- strLine = "";
- loop
- {
- char c;
- int nBytes = recv(hSocket, &c, 1, 0);
- if (nBytes > 0)
- {
- if (c == '\n')
- continue;
- if (c == '\r')
- return true;
- strLine += c;
- if (strLine.size() >= 9000)
- return true;
- }
- else if (nBytes <= 0)
- {
- if (fShutdown)
- return false;
- if (nBytes < 0)
- {
- int nErr = WSAGetLastError();
- if (nErr == WSAEMSGSIZE)
- continue;
- if (nErr == WSAEWOULDBLOCK || nErr == WSAEINTR || nErr == WSAEINPROGRESS)
- {
- Sleep(10);
- continue;
- }
- }
- if (!strLine.empty())
- return true;
- if (nBytes == 0)
- {
- // socket closed
- printf("IRC socket closed\n");
- return false;
- }
- else
- {
- // socket error
- int nErr = WSAGetLastError();
- printf("IRC recv failed: %d\n", nErr);
- return false;
- }
- }
- }
-}
-
bool RecvLineIRC(SOCKET hSocket, string& strLine)
{
loop
@@ -159,13 +108,13 @@ int RecvUntil(SOCKET hSocket, const char* psz1, const char* psz2=NULL, const cha
if (!RecvLineIRC(hSocket, strLine))
return 0;
printf("IRC %s\n", strLine.c_str());
- if (psz1 && strLine.find(psz1) != -1)
+ if (psz1 && strLine.find(psz1) != string::npos)
return 1;
- if (psz2 && strLine.find(psz2) != -1)
+ if (psz2 && strLine.find(psz2) != string::npos)
return 2;
- if (psz3 && strLine.find(psz3) != -1)
+ if (psz3 && strLine.find(psz3) != string::npos)
return 3;
- if (psz4 && strLine.find(psz4) != -1)
+ if (psz4 && strLine.find(psz4) != string::npos)
return 4;
}
}
@@ -261,8 +210,9 @@ void ThreadIRCSeed2(void* parg)
if (mapArgs.count("-connect") || fNoListen)
return;
- if (GetBoolArg("-noirc"))
+ if (!GetBoolArg("-irc", false))
return;
+
printf("ThreadIRCSeed started\n");
int nErrorWait = 10;
int nRetryWait = 10;
@@ -391,7 +341,7 @@ void ThreadIRCSeed2(void* parg)
if (DecodeAddress(pszName, addr))
{
addr.nTime = GetAdjustedTime();
- if (AddAddress(addr, 51 * 60))
+ if (addrman.Add(addr, addrConnect, 51 * 60))
printf("IRC got new address: %s\n", addr.ToString().c_str());
nGotIRCAddresses++;
}
diff --git a/src/irc.h b/src/irc.h
index 6945b2cecb..08d62b83d2 100644
--- a/src/irc.h
+++ b/src/irc.h
@@ -1,11 +1,10 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_IRC_H
#define BITCOIN_IRC_H
-bool RecvLine(SOCKET hSocket, std::string& strLine);
void ThreadIRCSeed(void* parg);
extern int nGotIRCAddresses;
diff --git a/src/key.cpp b/src/key.cpp
index 400b1887c5..e0844412d9 100644
--- a/src/key.cpp
+++ b/src/key.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
diff --git a/src/key.h b/src/key.h
index f7bdc87c77..1579cdc40a 100644
--- a/src/key.h
+++ b/src/key.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_KEY_H
@@ -12,7 +12,7 @@
#include <openssl/ecdsa.h>
#include <openssl/obj_mac.h>
-#include "serialize.h"
+#include "allocators.h"
#include "uint256.h"
// secp160k1
@@ -54,6 +54,7 @@ typedef std::vector<unsigned char, secure_allocator<unsigned char> > CPrivKey;
// CSecret is a serialization of just the secret parameter (32 bytes)
typedef std::vector<unsigned char, secure_allocator<unsigned char> > CSecret;
+/** An encapsulated OpenSSL Elliptic Curve key (public and/or private) */
class CKey
{
protected:
@@ -114,7 +115,7 @@ public:
return fCompressedPubKey;
}
- void MakeNewKey(bool fCompressed = true)
+ void MakeNewKey(bool fCompressed)
{
if (!EC_KEY_generate_key(pkey))
throw key_error("CKey::MakeNewKey() : EC_KEY_generate_key failed");
@@ -141,10 +142,13 @@ public:
if (vchSecret.size() != 32)
throw key_error("CKey::SetSecret() : secret must be 32 bytes");
BIGNUM *bn = BN_bin2bn(&vchSecret[0],32,BN_new());
- if (bn == NULL)
+ if (bn == NULL)
throw key_error("CKey::SetSecret() : BN_bin2bn failed");
if (!EC_KEY_regenerate_key(pkey,bn))
+ {
+ BN_clear_free(bn);
throw key_error("CKey::SetSecret() : EC_KEY_regenerate_key failed");
+ }
BN_clear_free(bn);
fSet = true;
if (fCompressed || fCompressedPubKey)
@@ -169,7 +173,7 @@ public:
CPrivKey GetPrivKey() const
{
- unsigned int nSize = i2d_ECPrivateKey(pkey, NULL);
+ int nSize = i2d_ECPrivateKey(pkey, NULL);
if (!nSize)
throw key_error("CKey::GetPrivKey() : i2d_ECPrivateKey failed");
CPrivKey vchPrivKey(nSize, 0);
@@ -192,7 +196,7 @@ public:
std::vector<unsigned char> GetPubKey() const
{
- unsigned int nSize = i2o_ECPublicKey(pkey, NULL);
+ int nSize = i2o_ECPublicKey(pkey, NULL);
if (!nSize)
throw key_error("CKey::GetPubKey() : i2o_ECPublicKey failed");
std::vector<unsigned char> vchPubKey(nSize, 0);
diff --git a/src/keystore.cpp b/src/keystore.cpp
index 61d84ec0f2..313518711b 100644
--- a/src/keystore.cpp
+++ b/src/keystore.cpp
@@ -1,23 +1,11 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
-#include "crypter.h"
-#include "db.h"
+#include "keystore.h"
#include "script.h"
-std::vector<unsigned char> CKeyStore::GenerateNewKey()
-{
- RandAddSeedPerfmon();
- CKey key;
- key.MakeNewKey();
- if (!AddKey(key))
- throw std::runtime_error("CKeyStore::GenerateNewKey() : AddKey failed");
- return key.GetPubKey();
-}
-
bool CKeyStore::GetPubKey(const CBitcoinAddress &address, std::vector<unsigned char> &vchPubKeyOut) const
{
CKey key;
@@ -31,31 +19,37 @@ bool CBasicKeyStore::AddKey(const CKey& key)
{
bool fCompressed = false;
CSecret secret = key.GetSecret(fCompressed);
- CRITICAL_BLOCK(cs_KeyStore)
+ {
+ LOCK(cs_KeyStore);
mapKeys[CBitcoinAddress(key.GetPubKey())] = make_pair(secret, fCompressed);
+ }
return true;
}
bool CBasicKeyStore::AddCScript(const CScript& redeemScript)
{
- CRITICAL_BLOCK(cs_KeyStore)
+ {
+ LOCK(cs_KeyStore);
mapScripts[Hash160(redeemScript)] = redeemScript;
+ }
return true;
}
bool CBasicKeyStore::HaveCScript(const uint160& hash) const
{
bool result;
- CRITICAL_BLOCK(cs_KeyStore)
+ {
+ LOCK(cs_KeyStore);
result = (mapScripts.count(hash) > 0);
+ }
return result;
}
bool CBasicKeyStore::GetCScript(const uint160 &hash, CScript& redeemScriptOut) const
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
ScriptMap::const_iterator mi = mapScripts.find(hash);
if (mi != mapScripts.end())
{
@@ -68,8 +62,8 @@ bool CBasicKeyStore::GetCScript(const uint160 &hash, CScript& redeemScriptOut) c
bool CCryptoKeyStore::SetCrypted()
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
if (fUseCrypto)
return true;
if (!mapKeys.empty())
@@ -81,8 +75,8 @@ bool CCryptoKeyStore::SetCrypted()
bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn)
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
if (!SetCrypted())
return false;
@@ -94,6 +88,8 @@ bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn)
CSecret vchSecret;
if(!DecryptSecret(vMasterKeyIn, vchCryptedSecret, Hash(vchPubKey.begin(), vchPubKey.end()), vchSecret))
return false;
+ if (vchSecret.size() != 32)
+ return false;
CKey key;
key.SetPubKey(vchPubKey);
key.SetSecret(vchSecret);
@@ -108,8 +104,8 @@ bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn)
bool CCryptoKeyStore::AddKey(const CKey& key)
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
if (!IsCrypted())
return CBasicKeyStore::AddKey(key);
@@ -131,8 +127,8 @@ bool CCryptoKeyStore::AddKey(const CKey& key)
bool CCryptoKeyStore::AddCryptedKey(const std::vector<unsigned char> &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret)
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
if (!SetCrypted())
return false;
@@ -143,8 +139,8 @@ bool CCryptoKeyStore::AddCryptedKey(const std::vector<unsigned char> &vchPubKey,
bool CCryptoKeyStore::GetKey(const CBitcoinAddress &address, CKey& keyOut) const
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
if (!IsCrypted())
return CBasicKeyStore::GetKey(address, keyOut);
@@ -156,6 +152,8 @@ bool CCryptoKeyStore::GetKey(const CBitcoinAddress &address, CKey& keyOut) const
CSecret vchSecret;
if (!DecryptSecret(vMasterKey, vchCryptedSecret, Hash(vchPubKey.begin(), vchPubKey.end()), vchSecret))
return false;
+ if (vchSecret.size() != 32)
+ return false;
keyOut.SetPubKey(vchPubKey);
keyOut.SetSecret(vchSecret);
return true;
@@ -166,8 +164,8 @@ bool CCryptoKeyStore::GetKey(const CBitcoinAddress &address, CKey& keyOut) const
bool CCryptoKeyStore::GetPubKey(const CBitcoinAddress &address, std::vector<unsigned char>& vchPubKeyOut) const
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
if (!IsCrypted())
return CKeyStore::GetPubKey(address, vchPubKeyOut);
@@ -183,8 +181,8 @@ bool CCryptoKeyStore::GetPubKey(const CBitcoinAddress &address, std::vector<unsi
bool CCryptoKeyStore::EncryptKeys(CKeyingMaterial& vMasterKeyIn)
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
if (!mapCryptedKeys.empty() || IsCrypted())
return false;
@@ -192,7 +190,7 @@ bool CCryptoKeyStore::EncryptKeys(CKeyingMaterial& vMasterKeyIn)
BOOST_FOREACH(KeyMap::value_type& mKey, mapKeys)
{
CKey key;
- if (!key.SetSecret(mKey.second.first, false))
+ if (!key.SetSecret(mKey.second.first, mKey.second.second))
return false;
const std::vector<unsigned char> vchPubKey = key.GetPubKey();
std::vector<unsigned char> vchCryptedSecret;
diff --git a/src/keystore.h b/src/keystore.h
index 1d068b4d75..76820e204b 100644
--- a/src/keystore.h
+++ b/src/keystore.h
@@ -1,20 +1,25 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_KEYSTORE_H
#define BITCOIN_KEYSTORE_H
#include "crypter.h"
-#include "script.h"
+#include "util.h"
+#include "base58.h"
-// A virtual base class for key stores
+class CScript;
+
+/** A virtual base class for key stores */
class CKeyStore
{
protected:
mutable CCriticalSection cs_KeyStore;
public:
+ virtual ~CKeyStore() {}
+
// Add a key to the store.
virtual bool AddKey(const CKey& key) =0;
@@ -29,8 +34,6 @@ public:
virtual bool HaveCScript(const uint160 &hash) const =0;
virtual bool GetCScript(const uint160 &hash, CScript& redeemScriptOut) const =0;
- // Generate a new key, and add it to the store
- virtual std::vector<unsigned char> GenerateNewKey();
virtual bool GetSecret(const CBitcoinAddress &address, CSecret& vchSecret, bool &fCompressed) const
{
CKey key;
@@ -44,7 +47,7 @@ public:
typedef std::map<CBitcoinAddress, std::pair<CSecret, bool> > KeyMap;
typedef std::map<uint160, CScript > ScriptMap;
-// Basic key store, that keeps keys in an address->secret map
+/** Basic key store, that keeps keys in an address->secret map */
class CBasicKeyStore : public CKeyStore
{
protected:
@@ -56,15 +59,17 @@ public:
bool HaveKey(const CBitcoinAddress &address) const
{
bool result;
- CRITICAL_BLOCK(cs_KeyStore)
+ {
+ LOCK(cs_KeyStore);
result = (mapKeys.count(address) > 0);
+ }
return result;
}
void GetKeys(std::set<CBitcoinAddress> &setAddress) const
{
setAddress.clear();
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
KeyMap::const_iterator mi = mapKeys.begin();
while (mi != mapKeys.end())
{
@@ -75,8 +80,8 @@ public:
}
bool GetKey(const CBitcoinAddress &address, CKey &keyOut) const
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
KeyMap::const_iterator mi = mapKeys.find(address);
if (mi != mapKeys.end())
{
@@ -94,8 +99,9 @@ public:
typedef std::map<CBitcoinAddress, std::pair<std::vector<unsigned char>, std::vector<unsigned char> > > CryptedKeyMap;
-// Keystore which keeps the private keys encrypted
-// It derives from the basic key store, which is used if no encryption is active.
+/** Keystore which keeps the private keys encrypted.
+ * It derives from the basic key store, which is used if no encryption is active.
+ */
class CCryptoKeyStore : public CBasicKeyStore
{
private:
@@ -130,8 +136,10 @@ public:
if (!IsCrypted())
return false;
bool result;
- CRITICAL_BLOCK(cs_KeyStore)
+ {
+ LOCK(cs_KeyStore);
result = vMasterKey.empty();
+ }
return result;
}
@@ -140,8 +148,10 @@ public:
if (!SetCrypted())
return false;
- CRITICAL_BLOCK(cs_KeyStore)
+ {
+ LOCK(cs_KeyStore);
vMasterKey.clear();
+ }
return true;
}
@@ -150,8 +160,8 @@ public:
bool AddKey(const CKey& key);
bool HaveKey(const CBitcoinAddress &address) const
{
- CRITICAL_BLOCK(cs_KeyStore)
{
+ LOCK(cs_KeyStore);
if (!IsCrypted())
return CBasicKeyStore::HaveKey(address);
return mapCryptedKeys.count(address) > 0;
diff --git a/src/main.cpp b/src/main.cpp
index f0e5183e98..821bfbb476 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,12 +1,12 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
#include "checkpoints.h"
#include "db.h"
#include "net.h"
#include "init.h"
+#include "ui_interface.h"
#include <boost/algorithm/string/replace.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
@@ -18,20 +18,13 @@ using namespace boost;
// Global state
//
-// Name of client reported in the 'version' message. Report the same name
-// for both bitcoind and bitcoin-qt, to make it harder for attackers to
-// target servers or GUI users specifically.
-const std::string CLIENT_NAME("bitcoin-qt");
-
CCriticalSection cs_setpwalletRegistered;
set<CWallet*> setpwalletRegistered;
CCriticalSection cs_main;
-static map<uint256, CTransaction> mapTransactions;
-CCriticalSection cs_mapTransactions;
+CTxMemPool mempool;
unsigned int nTransactionsUpdated = 0;
-map<COutPoint, CInPoint> mapNextTx;
map<uint256, CBlockIndex*> mapBlockIndex;
uint256 hashGenesisBlock("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f");
@@ -52,25 +45,17 @@ multimap<uint256, CBlock*> mapOrphanBlocksByPrev;
map<uint256, CDataStream*> mapOrphanTransactions;
multimap<uint256, CDataStream*> mapOrphanTransactionsByPrev;
+// Constant stuff for coinbase transactions we create:
+CScript COINBASE_FLAGS;
const string strMessageMagic = "Bitcoin Signed Message:\n";
-
double dHashesPerSec;
int64 nHPSTimerStart;
// Settings
-int fGenerateBitcoins = false;
int64 nTransactionFee = 0;
-int fLimitProcessors = false;
-int nLimitProcessors = 1;
-int fMinimizeToTray = true;
-int fMinimizeOnClose = true;
-#if USE_UPNP
-int fUseUPnP = true;
-#else
-int fUseUPnP = false;
-#endif
+
//////////////////////////////////////////////////////////////////////////////
@@ -83,16 +68,16 @@ int fUseUPnP = false;
void RegisterWallet(CWallet* pwalletIn)
{
- CRITICAL_BLOCK(cs_setpwalletRegistered)
{
+ LOCK(cs_setpwalletRegistered);
setpwalletRegistered.insert(pwalletIn);
}
}
void UnregisterWallet(CWallet* pwalletIn)
{
- CRITICAL_BLOCK(cs_setpwalletRegistered)
{
+ LOCK(cs_setpwalletRegistered);
setpwalletRegistered.erase(pwalletIn);
}
}
@@ -175,13 +160,14 @@ void static ResendWalletTransactions()
// mapOrphanTransactions
//
-void static AddOrphanTx(const CDataStream& vMsg)
+void AddOrphanTx(const CDataStream& vMsg)
{
CTransaction tx;
CDataStream(vMsg) >> tx;
uint256 hash = tx.GetHash();
if (mapOrphanTransactions.count(hash))
return;
+
CDataStream* pvMsg = mapOrphanTransactions[hash] = new CDataStream(vMsg);
BOOST_FOREACH(const CTxIn& txin, tx.vin)
mapOrphanTransactionsByPrev.insert(make_pair(txin.prevout.hash, pvMsg));
@@ -209,6 +195,23 @@ void static EraseOrphanTx(uint256 hash)
mapOrphanTransactions.erase(hash);
}
+unsigned int LimitOrphanTxSize(unsigned int nMaxOrphans)
+{
+ unsigned int nEvicted = 0;
+ while (mapOrphanTransactions.size() > nMaxOrphans)
+ {
+ // Evict a random orphan:
+ std::vector<unsigned char> randbytes(32);
+ RAND_bytes(&randbytes[0], 32);
+ uint256 randomhash(randbytes);
+ map<uint256, CDataStream*>::iterator it = mapOrphanTransactions.lower_bound(randomhash);
+ if (it == mapOrphanTransactions.end())
+ it = mapOrphanTransactions.begin();
+ EraseOrphanTx(it->first);
+ ++nEvicted;
+ }
+ return nEvicted;
+}
@@ -283,7 +286,7 @@ bool CTransaction::AreInputsStandard(const MapPrevTx& mapInputs) const
if (IsCoinBase())
return true; // Coinbases don't use vin normally
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
{
const CTxOut& prev = GetOutputFor(vin[i], mapInputs);
@@ -293,27 +296,49 @@ bool CTransaction::AreInputsStandard(const MapPrevTx& mapInputs) const
const CScript& prevScript = prev.scriptPubKey;
if (!Solver(prevScript, whichType, vSolutions))
return false;
+ int nArgsExpected = ScriptSigArgsExpected(whichType, vSolutions);
+ if (nArgsExpected < 0)
+ return false;
+
+ // Transactions with extra stuff in their scriptSigs are
+ // non-standard. Note that this EvalScript() call will
+ // be quick, because if there are any operations
+ // beside "push data" in the scriptSig the
+ // IsStandard() call returns false
+ vector<vector<unsigned char> > stack;
+ if (!EvalScript(stack, vin[i].scriptSig, *this, i, 0))
+ return false;
+
if (whichType == TX_SCRIPTHASH)
{
- vector<vector<unsigned char> > stack;
-
- if (!EvalScript(stack, vin[i].scriptSig, *this, i, 0))
- return false;
if (stack.empty())
return false;
CScript subscript(stack.back().begin(), stack.back().end());
- if (!::IsStandard(subscript))
+ vector<vector<unsigned char> > vSolutions2;
+ txnouttype whichType2;
+ if (!Solver(subscript, whichType2, vSolutions2))
+ return false;
+ if (whichType2 == TX_SCRIPTHASH)
return false;
+
+ int tmpExpected;
+ tmpExpected = ScriptSigArgsExpected(whichType2, vSolutions2);
+ if (tmpExpected < 0)
+ return false;
+ nArgsExpected += tmpExpected;
}
+
+ if (stack.size() != (unsigned int)nArgsExpected)
+ return false;
}
return true;
}
-int
+unsigned int
CTransaction::GetLegacySigOpCount() const
{
- int nSigOps = 0;
+ unsigned int nSigOps = 0;
BOOST_FOREACH(const CTxIn& txin, vin)
{
nSigOps += txin.scriptSig.GetSigOpCount(false);
@@ -351,10 +376,10 @@ int CMerkleTx::SetMerkleBranch(const CBlock* pblock)
hashBlock = pblock->GetHash();
// Locate the transaction
- for (nIndex = 0; nIndex < pblock->vtx.size(); nIndex++)
+ for (nIndex = 0; nIndex < (int)pblock->vtx.size(); nIndex++)
if (pblock->vtx[nIndex] == *(CTransaction*)this)
break;
- if (nIndex == pblock->vtx.size())
+ if (nIndex == (int)pblock->vtx.size())
{
vMerkleBranch.clear();
nIndex = -1;
@@ -391,7 +416,7 @@ bool CTransaction::CheckTransaction() const
if (vout.empty())
return DoS(10, error("CTransaction::CheckTransaction() : vout empty"));
// Size limits
- if (::GetSerializeSize(*this, SER_NETWORK) > MAX_BLOCK_SIZE)
+ if (::GetSerializeSize(*this, SER_NETWORK, PROTOCOL_VERSION) > MAX_BLOCK_SIZE)
return DoS(100, error("CTransaction::CheckTransaction() : size limits failed"));
// Check for negative or overflow output values
@@ -431,40 +456,43 @@ bool CTransaction::CheckTransaction() const
return true;
}
-bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMissingInputs)
+bool CTxMemPool::accept(CTxDB& txdb, CTransaction &tx, bool fCheckInputs,
+ bool* pfMissingInputs)
{
if (pfMissingInputs)
*pfMissingInputs = false;
- if (!CheckTransaction())
- return error("AcceptToMemoryPool() : CheckTransaction failed");
+ if (!tx.CheckTransaction())
+ return error("CTxMemPool::accept() : CheckTransaction failed");
// Coinbase is only valid in a block, not as a loose transaction
- if (IsCoinBase())
- return DoS(100, error("AcceptToMemoryPool() : coinbase as individual tx"));
+ if (tx.IsCoinBase())
+ return tx.DoS(100, error("CTxMemPool::accept() : coinbase as individual tx"));
// To help v0.1.5 clients who would see it as a negative number
- if ((int64)nLockTime > std::numeric_limits<int>::max())
- return error("AcceptToMemoryPool() : not accepting nLockTime beyond 2038 yet");
+ if ((int64)tx.nLockTime > std::numeric_limits<int>::max())
+ return error("CTxMemPool::accept() : not accepting nLockTime beyond 2038 yet");
// Rather not work on nonstandard transactions (unless -testnet)
- if (!fTestNet && !IsStandard())
- return error("AcceptToMemoryPool() : nonstandard transaction type");
+ if (!fTestNet && !tx.IsStandard())
+ return error("CTxMemPool::accept() : nonstandard transaction type");
// Do we already have it?
- uint256 hash = GetHash();
- CRITICAL_BLOCK(cs_mapTransactions)
- if (mapTransactions.count(hash))
+ uint256 hash = tx.GetHash();
+ {
+ LOCK(cs);
+ if (mapTx.count(hash))
return false;
+ }
if (fCheckInputs)
if (txdb.ContainsTx(hash))
return false;
// Check for conflicts with in-memory transactions
CTransaction* ptxOld = NULL;
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < tx.vin.size(); i++)
{
- COutPoint outpoint = vin[i].prevout;
+ COutPoint outpoint = tx.vin[i].prevout;
if (mapNextTx.count(outpoint))
{
// Disable replacement feature for now
@@ -476,11 +504,11 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
ptxOld = mapNextTx[outpoint].ptx;
if (ptxOld->IsFinal())
return false;
- if (!IsNewerThan(*ptxOld))
+ if (!tx.IsNewerThan(*ptxOld))
return false;
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < tx.vin.size(); i++)
{
- COutPoint outpoint = vin[i].prevout;
+ COutPoint outpoint = tx.vin[i].prevout;
if (!mapNextTx.count(outpoint) || mapNextTx[outpoint].ptx != ptxOld)
return false;
}
@@ -493,29 +521,29 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
MapPrevTx mapInputs;
map<uint256, CTxIndex> mapUnused;
bool fInvalid = false;
- if (!FetchInputs(txdb, mapUnused, false, false, mapInputs, fInvalid))
+ if (!tx.FetchInputs(txdb, mapUnused, false, false, mapInputs, fInvalid))
{
if (fInvalid)
- return error("AcceptToMemoryPool() : FetchInputs found invalid tx %s", hash.ToString().substr(0,10).c_str());
+ return error("CTxMemPool::accept() : FetchInputs found invalid tx %s", hash.ToString().substr(0,10).c_str());
if (pfMissingInputs)
*pfMissingInputs = true;
- return error("AcceptToMemoryPool() : FetchInputs failed %s", hash.ToString().substr(0,10).c_str());
+ return error("CTxMemPool::accept() : FetchInputs failed %s", hash.ToString().substr(0,10).c_str());
}
// Check for non-standard pay-to-script-hash in inputs
- if (!AreInputsStandard(mapInputs) && !fTestNet)
- return error("AcceptToMemoryPool() : nonstandard transaction input");
+ if (!tx.AreInputsStandard(mapInputs) && !fTestNet)
+ return error("CTxMemPool::accept() : nonstandard transaction input");
// Note: if you modify this code to accept non-standard transactions, then
// you should add code here to check that the transaction does a
// reasonable number of ECDSA signature verifications.
- int64 nFees = GetValueIn(mapInputs)-GetValueOut();
- unsigned int nSize = ::GetSerializeSize(*this, SER_NETWORK);
+ int64 nFees = tx.GetValueIn(mapInputs)-tx.GetValueOut();
+ unsigned int nSize = ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION);
// Don't accept it if it can't get into a block
- if (nFees < GetMinFee(1000, true, GMF_RELAY))
- return error("AcceptToMemoryPool() : not enough fees");
+ if (nFees < tx.GetMinFee(1000, true, GMF_RELAY))
+ return error("CTxMemPool::accept() : not enough fees");
// Continuously rate-limit free transactions
// This mitigates 'penny-flooding' -- sending thousands of free transactions just to
@@ -527,15 +555,15 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
static int64 nLastTime;
int64 nNow = GetTime();
- CRITICAL_BLOCK(cs)
{
+ LOCK(cs);
// Use an exponentially decaying ~10-minute window:
dFreeCount *= pow(1.0 - 1.0/600.0, (double)(nNow - nLastTime));
nLastTime = nNow;
// -limitfreerelay unit is thousand-bytes-per-minute
// At default rate it would take over a month to fill 1GB
- if (dFreeCount > GetArg("-limitfreerelay", 15)*10*1000 && !IsFromMe(*this))
- return error("AcceptToMemoryPool() : free transaction rejected by rate limiter");
+ if (dFreeCount > GetArg("-limitfreerelay", 15)*10*1000 && !IsFromMe(tx))
+ return error("CTxMemPool::accept() : free transaction rejected by rate limiter");
if (fDebug)
printf("Rate limit dFreeCount: %g => %g\n", dFreeCount, dFreeCount+nSize);
dFreeCount += nSize;
@@ -544,21 +572,21 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
// Check against previous transactions
// This is done last to help prevent CPU exhaustion denial-of-service attacks.
- if (!ConnectInputs(mapInputs, mapUnused, CDiskTxPos(1,1,1), pindexBest, false, false))
+ if (!tx.ConnectInputs(mapInputs, mapUnused, CDiskTxPos(1,1,1), pindexBest, false, false))
{
- return error("AcceptToMemoryPool() : ConnectInputs failed %s", hash.ToString().substr(0,10).c_str());
+ return error("CTxMemPool::accept() : ConnectInputs failed %s", hash.ToString().substr(0,10).c_str());
}
}
// Store transaction in memory
- CRITICAL_BLOCK(cs_mapTransactions)
{
+ LOCK(cs);
if (ptxOld)
{
- printf("AcceptToMemoryPool() : replacing tx %s with new version\n", ptxOld->GetHash().ToString().c_str());
- ptxOld->RemoveFromMemoryPool();
+ printf("CTxMemPool::accept() : replacing tx %s with new version\n", ptxOld->GetHash().ToString().c_str());
+ remove(*ptxOld);
}
- AddToMemoryPoolUnchecked();
+ addUnchecked(tx);
}
///// are we sure this is ok when loading transactions or restoring block txes
@@ -566,46 +594,45 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
if (ptxOld)
EraseFromWallets(ptxOld->GetHash());
- printf("AcceptToMemoryPool(): accepted %s\n", hash.ToString().substr(0,10).c_str());
+ printf("CTxMemPool::accept() : accepted %s\n", hash.ToString().substr(0,10).c_str());
return true;
}
-bool CTransaction::AcceptToMemoryPool(bool fCheckInputs, bool* pfMissingInputs)
+bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMissingInputs)
{
- CTxDB txdb("r");
- return AcceptToMemoryPool(txdb, fCheckInputs, pfMissingInputs);
+ return mempool.accept(txdb, *this, fCheckInputs, pfMissingInputs);
}
-uint64 nPooledTx = 0;
-
-bool CTransaction::AddToMemoryPoolUnchecked()
+bool CTxMemPool::addUnchecked(CTransaction &tx)
{
- printf("AcceptToMemoryPoolUnchecked(): size %lu\n", mapTransactions.size());
+ printf("addUnchecked(): size %lu\n", mapTx.size());
// Add to memory pool without checking anything. Don't call this directly,
- // call AcceptToMemoryPool to properly check the transaction first.
- CRITICAL_BLOCK(cs_mapTransactions)
+ // call CTxMemPool::accept to properly check the transaction first.
{
- uint256 hash = GetHash();
- mapTransactions[hash] = *this;
- for (int i = 0; i < vin.size(); i++)
- mapNextTx[vin[i].prevout] = CInPoint(&mapTransactions[hash], i);
+ LOCK(cs);
+ uint256 hash = tx.GetHash();
+ mapTx[hash] = tx;
+ for (unsigned int i = 0; i < tx.vin.size(); i++)
+ mapNextTx[tx.vin[i].prevout] = CInPoint(&mapTx[hash], i);
nTransactionsUpdated++;
- ++nPooledTx;
}
return true;
}
-bool CTransaction::RemoveFromMemoryPool()
+bool CTxMemPool::remove(CTransaction &tx)
{
// Remove transaction from memory pool
- CRITICAL_BLOCK(cs_mapTransactions)
{
- BOOST_FOREACH(const CTxIn& txin, vin)
- mapNextTx.erase(txin.prevout);
- mapTransactions.erase(GetHash());
- nTransactionsUpdated++;
- --nPooledTx;
+ LOCK(cs);
+ uint256 hash = tx.GetHash();
+ if (mapTx.count(hash))
+ {
+ BOOST_FOREACH(const CTxIn& txin, tx.vin)
+ mapNextTx.erase(txin.prevout);
+ mapTx.erase(hash);
+ nTransactionsUpdated++;
+ }
}
return true;
}
@@ -673,15 +700,16 @@ bool CMerkleTx::AcceptToMemoryPool()
bool CWalletTx::AcceptWalletTransaction(CTxDB& txdb, bool fCheckInputs)
{
- CRITICAL_BLOCK(cs_mapTransactions)
+
{
+ LOCK(mempool.cs);
// Add previous supporting transactions first
BOOST_FOREACH(CMerkleTx& tx, vtxPrev)
{
if (!tx.IsCoinBase())
{
uint256 hash = tx.GetHash();
- if (!mapTransactions.count(hash) && !txdb.ContainsTx(hash))
+ if (!mempool.exists(hash) && !txdb.ContainsTx(hash))
tx.AcceptToMemoryPool(txdb, fCheckInputs);
}
}
@@ -901,6 +929,15 @@ void static InvalidChainFound(CBlockIndex* pindexNew)
printf("InvalidChainFound: WARNING: Displayed transactions may not be correct! You may need to upgrade, or other nodes may need to upgrade.\n");
}
+void CBlock::UpdateTime(const CBlockIndex* pindexPrev)
+{
+ nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
+
+ // Updating time can change work required on testnet:
+ if (fTestNet)
+ nBits = GetNextWorkRequired(pindexPrev, this);
+}
+
@@ -938,8 +975,10 @@ bool CTransaction::DisconnectInputs(CTxDB& txdb)
}
// Remove transaction from index
- if (!txdb.EraseTxIndex(*this))
- return error("DisconnectInputs() : EraseTxPos failed");
+ // This can fail if a duplicate of this transaction was in a chain that got
+ // reorganized away. This is only possible if this transaction was completely
+ // spent, so erasing it would be a no-op anway.
+ txdb.EraseTxIndex(*this);
return true;
}
@@ -957,7 +996,7 @@ bool CTransaction::FetchInputs(CTxDB& txdb, const map<uint256, CTxIndex>& mapTes
if (IsCoinBase())
return true; // Coinbase transactions have no inputs to fetch.
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
{
COutPoint prevout = vin[i].prevout;
if (inputsRet.count(prevout.hash))
@@ -984,11 +1023,11 @@ bool CTransaction::FetchInputs(CTxDB& txdb, const map<uint256, CTxIndex>& mapTes
if (!fFound || txindex.pos == CDiskTxPos(1,1,1))
{
// Get prev tx from single transactions in memory
- CRITICAL_BLOCK(cs_mapTransactions)
{
- if (!mapTransactions.count(prevout.hash))
- return error("FetchInputs() : %s mapTransactions prev not found %s", GetHash().ToString().substr(0,10).c_str(), prevout.hash.ToString().substr(0,10).c_str());
- txPrev = mapTransactions[prevout.hash];
+ LOCK(mempool.cs);
+ if (!mempool.exists(prevout.hash))
+ return error("FetchInputs() : %s mempool Tx prev not found %s", GetHash().ToString().substr(0,10).c_str(), prevout.hash.ToString().substr(0,10).c_str());
+ txPrev = mempool.lookup(prevout.hash);
}
if (!fFound)
txindex.vSpent.resize(txPrev.vout.size());
@@ -1002,7 +1041,7 @@ bool CTransaction::FetchInputs(CTxDB& txdb, const map<uint256, CTxIndex>& mapTes
}
// Make sure all prevout.n's are valid:
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
{
const COutPoint prevout = vin[i].prevout;
assert(inputsRet.count(prevout.hash) != 0);
@@ -1039,7 +1078,7 @@ int64 CTransaction::GetValueIn(const MapPrevTx& inputs) const
return 0;
int64 nResult = 0;
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
{
nResult += GetOutputFor(vin[i], inputs).nValue;
}
@@ -1047,13 +1086,13 @@ int64 CTransaction::GetValueIn(const MapPrevTx& inputs) const
}
-int CTransaction::GetP2SHSigOpCount(const MapPrevTx& inputs) const
+unsigned int CTransaction::GetP2SHSigOpCount(const MapPrevTx& inputs) const
{
if (IsCoinBase())
return 0;
- int nSigOps = 0;
- for (int i = 0; i < vin.size(); i++)
+ unsigned int nSigOps = 0;
+ for (unsigned int i = 0; i < vin.size(); i++)
{
const CTxOut& prevout = GetOutputFor(vin[i], inputs);
if (prevout.scriptPubKey.IsPayToScriptHash())
@@ -1074,7 +1113,7 @@ bool CTransaction::ConnectInputs(MapPrevTx inputs,
{
int64 nValueIn = 0;
int64 nFees = 0;
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
{
COutPoint prevout = vin[i].prevout;
assert(inputs.count(prevout.hash) > 0);
@@ -1108,7 +1147,14 @@ bool CTransaction::ConnectInputs(MapPrevTx inputs,
{
// Verify signature
if (!VerifySignature(txPrev, *this, i, fStrictPayToScriptHash, 0))
+ {
+ // only during transition phase for P2SH: do not invoke anti-DoS code for
+ // potentially old clients relaying bad P2SH transactions
+ if (fStrictPayToScriptHash && VerifySignature(txPrev, *this, i, false, 0))
+ return error("ConnectInputs() : %s P2SH VerifySignature failed", GetHash().ToString().substr(0,10).c_str());
+
return DoS(100,error("ConnectInputs() : %s VerifySignature failed", GetHash().ToString().substr(0,10).c_str()));
+ }
}
// Mark outpoints as spent
@@ -1143,16 +1189,16 @@ bool CTransaction::ClientConnectInputs()
return false;
// Take over previous transactions' spent pointers
- CRITICAL_BLOCK(cs_mapTransactions)
{
+ LOCK(mempool.cs);
int64 nValueIn = 0;
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
{
// Get prev tx from single transactions in memory
COutPoint prevout = vin[i].prevout;
- if (!mapTransactions.count(prevout.hash))
+ if (!mempool.exists(prevout.hash))
return false;
- CTransaction& txPrev = mapTransactions[prevout.hash];
+ CTransaction& txPrev = mempool.lookup(prevout.hash);
if (prevout.n >= txPrev.vout.size())
return false;
@@ -1161,7 +1207,8 @@ bool CTransaction::ClientConnectInputs()
if (!VerifySignature(txPrev, *this, i, true, 0))
return error("ConnectInputs() : VerifySignature failed");
- ///// this is redundant with the mapNextTx stuff, not sure which I want to get rid of
+ ///// this is redundant with the mempool.mapNextTx stuff,
+ ///// not sure which I want to get rid of
///// this has to go away now that posNext is gone
// // Check for conflicts
// if (!txPrev.vout[prevout.n].posNext.IsNull())
@@ -1211,18 +1258,40 @@ bool CBlock::ConnectBlock(CTxDB& txdb, CBlockIndex* pindex)
if (!CheckBlock())
return false;
- // To avoid being on the short end of a block-chain split,
- // don't do secondary validation of pay-to-script-hash transactions
- // until blocks with timestamps after paytoscripthashtime:
- int64 nEvalSwitchTime = GetArg("-paytoscripthashtime", 1329264000); // Feb 15, 2012
- bool fStrictPayToScriptHash = (pindex->nTime >= nEvalSwitchTime);
+ // Do not allow blocks that contain transactions which 'overwrite' older transactions,
+ // unless those are already completely spent.
+ // If such overwrites are allowed, coinbases and transactions depending upon those
+ // can be duplicated to remove the ability to spend the first instance -- even after
+ // being sent to another address.
+ // See BIP30 and http://r6.ca/blog/20120206T005236Z.html for more information.
+ // This logic is not necessary for memory pool transactions, as AcceptToMemoryPool
+ // already refuses previously-known transaction id's entirely.
+ // This rule applies to all blocks whose timestamp is after March 15, 2012, 0:00 UTC.
+ // On testnet it is enabled as of februari 20, 2012, 0:00 UTC.
+ if (pindex->nTime > 1331769600 || (fTestNet && pindex->nTime > 1329696000))
+ {
+ BOOST_FOREACH(CTransaction& tx, vtx)
+ {
+ CTxIndex txindexOld;
+ if (txdb.ReadTxIndex(tx.GetHash(), txindexOld))
+ {
+ BOOST_FOREACH(CDiskTxPos &pos, txindexOld.vSpent)
+ if (pos.IsNull())
+ return false;
+ }
+ }
+ }
+
+ // BIP16 didn't become active until Apr 1 2012 (Feb 15 on testnet)
+ int64 nBIP16SwitchTime = fTestNet ? 1329264000 : 1333238400;
+ bool fStrictPayToScriptHash = (pindex->nTime >= nBIP16SwitchTime);
//// issue here: it doesn't know the version
- unsigned int nTxPos = pindex->nBlockPos + ::GetSerializeSize(CBlock(), SER_DISK) - 1 + GetSizeOfCompactSize(vtx.size());
+ unsigned int nTxPos = pindex->nBlockPos + ::GetSerializeSize(CBlock(), SER_DISK, CLIENT_VERSION) - 1 + GetSizeOfCompactSize(vtx.size());
map<uint256, CTxIndex> mapQueuedChanges;
int64 nFees = 0;
- int nSigOps = 0;
+ unsigned int nSigOps = 0;
BOOST_FOREACH(CTransaction& tx, vtx)
{
nSigOps += tx.GetLegacySigOpCount();
@@ -1230,7 +1299,7 @@ bool CBlock::ConnectBlock(CTxDB& txdb, CBlockIndex* pindex)
return DoS(100, error("ConnectBlock() : too many sigops"));
CDiskTxPos posThisTx(pindex->nFile, pindex->nBlockPos, nTxPos);
- nTxPos += ::GetSerializeSize(tx, SER_DISK);
+ nTxPos += ::GetSerializeSize(tx, SER_DISK, CLIENT_VERSION);
MapPrevTx mapInputs;
if (!tx.IsCoinBase())
@@ -1314,6 +1383,9 @@ bool static Reorganize(CTxDB& txdb, CBlockIndex* pindexNew)
vConnect.push_back(pindex);
reverse(vConnect.begin(), vConnect.end());
+ printf("REORGANIZE: Disconnect %i blocks; %s..%s\n", vDisconnect.size(), pfork->GetBlockHash().ToString().substr(0,20).c_str(), pindexBest->GetBlockHash().ToString().substr(0,20).c_str());
+ printf("REORGANIZE: Connect %i blocks; %s..%s\n", vConnect.size(), pfork->GetBlockHash().ToString().substr(0,20).c_str(), pindexNew->GetBlockHash().ToString().substr(0,20).c_str());
+
// Disconnect shorter branch
vector<CTransaction> vResurrect;
BOOST_FOREACH(CBlockIndex* pindex, vDisconnect)
@@ -1322,7 +1394,7 @@ bool static Reorganize(CTxDB& txdb, CBlockIndex* pindexNew)
if (!block.ReadFromDisk(pindex))
return error("Reorganize() : ReadFromDisk for disconnect failed");
if (!block.DisconnectBlock(txdb, pindex))
- return error("Reorganize() : DisconnectBlock failed");
+ return error("Reorganize() : DisconnectBlock %s failed", pindex->GetBlockHash().ToString().substr(0,20).c_str());
// Queue memory transactions to resurrect
BOOST_FOREACH(const CTransaction& tx, block.vtx)
@@ -1332,7 +1404,7 @@ bool static Reorganize(CTxDB& txdb, CBlockIndex* pindexNew)
// Connect longer branch
vector<CTransaction> vDelete;
- for (int i = 0; i < vConnect.size(); i++)
+ for (unsigned int i = 0; i < vConnect.size(); i++)
{
CBlockIndex* pindex = vConnect[i];
CBlock block;
@@ -1342,7 +1414,7 @@ bool static Reorganize(CTxDB& txdb, CBlockIndex* pindexNew)
{
// Invalid block
txdb.TxnAbort();
- return error("Reorganize() : ConnectBlock failed");
+ return error("Reorganize() : ConnectBlock %s failed", pindex->GetBlockHash().ToString().substr(0,20).c_str());
}
// Queue memory transactions to delete
@@ -1372,7 +1444,9 @@ bool static Reorganize(CTxDB& txdb, CBlockIndex* pindexNew)
// Delete redundant memory transactions that are in the connected branch
BOOST_FOREACH(CTransaction& tx, vDelete)
- tx.RemoveFromMemoryPool();
+ mempool.remove(tx);
+
+ printf("REORGANIZE: done\n");
return true;
}
@@ -1386,6 +1460,31 @@ runCommand(std::string strCommand)
printf("runCommand error: system(%s) returned %d\n", strCommand.c_str(), nErr);
}
+// Called from inside SetBestChain: attaches a block to the new best chain being built
+bool CBlock::SetBestChainInner(CTxDB& txdb, CBlockIndex *pindexNew)
+{
+ uint256 hash = GetHash();
+
+ // Adding to current best branch
+ if (!ConnectBlock(txdb, pindexNew) || !txdb.WriteHashBestChain(hash))
+ {
+ txdb.TxnAbort();
+ InvalidChainFound(pindexNew);
+ return false;
+ }
+ if (!txdb.TxnCommit())
+ return error("SetBestChain() : TxnCommit failed");
+
+ // Add to current best branch
+ pindexNew->pprev->pnext = pindexNew;
+
+ // Delete redundant memory transactions
+ BOOST_FOREACH(CTransaction& tx, vtx)
+ mempool.remove(tx);
+
+ return true;
+}
+
bool CBlock::SetBestChain(CTxDB& txdb, CBlockIndex* pindexNew)
{
uint256 hash = GetHash();
@@ -1400,32 +1499,50 @@ bool CBlock::SetBestChain(CTxDB& txdb, CBlockIndex* pindexNew)
}
else if (hashPrevBlock == hashBestChain)
{
- // Adding to current best branch
- if (!ConnectBlock(txdb, pindexNew) || !txdb.WriteHashBestChain(hash))
+ if (!SetBestChainInner(txdb, pindexNew))
+ return error("SetBestChain() : SetBestChainInner failed");
+ }
+ else
+ {
+ // the first block in the new chain that will cause it to become the new best chain
+ CBlockIndex *pindexIntermediate = pindexNew;
+
+ // list of blocks that need to be connected afterwards
+ std::vector<CBlockIndex*> vpindexSecondary;
+
+ // Reorganize is costly in terms of db load, as it works in a single db transaction.
+ // Try to limit how much needs to be done inside
+ while (pindexIntermediate->pprev && pindexIntermediate->pprev->bnChainWork > pindexBest->bnChainWork)
{
- txdb.TxnAbort();
- InvalidChainFound(pindexNew);
- return error("SetBestChain() : ConnectBlock failed");
+ vpindexSecondary.push_back(pindexIntermediate);
+ pindexIntermediate = pindexIntermediate->pprev;
}
- if (!txdb.TxnCommit())
- return error("SetBestChain() : TxnCommit failed");
- // Add to current best branch
- pindexNew->pprev->pnext = pindexNew;
+ if (!vpindexSecondary.empty())
+ printf("Postponing %i reconnects\n", vpindexSecondary.size());
- // Delete redundant memory transactions
- BOOST_FOREACH(CTransaction& tx, vtx)
- tx.RemoveFromMemoryPool();
- }
- else
- {
- // New best branch
- if (!Reorganize(txdb, pindexNew))
+ // Switch to new best branch
+ if (!Reorganize(txdb, pindexIntermediate))
{
txdb.TxnAbort();
InvalidChainFound(pindexNew);
return error("SetBestChain() : Reorganize failed");
}
+
+ // Connect futher blocks
+ BOOST_REVERSE_FOREACH(CBlockIndex *pindex, vpindexSecondary)
+ {
+ CBlock block;
+ if (!block.ReadFromDisk(pindex))
+ {
+ printf("SetBestChain() : ReadFromDisk failed\n");
+ break;
+ }
+ txdb.TxnBegin();
+ // errors now are not fatal, we still did a reorganisation to a new chain in a valid way
+ if (!block.SetBestChainInner(txdb, pindex))
+ break;
+ }
}
// Update best block in wallet (so we can detect restored wallets)
@@ -1512,7 +1629,7 @@ bool CBlock::CheckBlock() const
// that can be verified before saving an orphan block.
// Size limits
- if (vtx.empty() || vtx.size() > MAX_BLOCK_SIZE || ::GetSerializeSize(*this, SER_NETWORK) > MAX_BLOCK_SIZE)
+ if (vtx.empty() || vtx.size() > MAX_BLOCK_SIZE || ::GetSerializeSize(*this, SER_NETWORK, PROTOCOL_VERSION) > MAX_BLOCK_SIZE)
return DoS(100, error("CheckBlock() : size limits failed"));
// Check proof of work matches claimed amount
@@ -1526,7 +1643,7 @@ bool CBlock::CheckBlock() const
// First transaction must be coinbase, the rest must not be
if (vtx.empty() || !vtx[0].IsCoinBase())
return DoS(100, error("CheckBlock() : first tx is not coinbase"));
- for (int i = 1; i < vtx.size(); i++)
+ for (unsigned int i = 1; i < vtx.size(); i++)
if (vtx[i].IsCoinBase())
return DoS(100, error("CheckBlock() : more than one coinbase"));
@@ -1535,7 +1652,17 @@ bool CBlock::CheckBlock() const
if (!tx.CheckTransaction())
return DoS(tx.nDoS, error("CheckBlock() : CheckTransaction failed"));
- int nSigOps = 0;
+ // Check for duplicate txids. This is caught by ConnectInputs(),
+ // but catching it earlier avoids a potential DoS attack:
+ set<uint256> uniqueTx;
+ BOOST_FOREACH(const CTransaction& tx, vtx)
+ {
+ uniqueTx.insert(tx.GetHash());
+ }
+ if (uniqueTx.size() != vtx.size())
+ return DoS(100, error("CheckBlock() : duplicate transaction"));
+
+ unsigned int nSigOps = 0;
BOOST_FOREACH(const CTransaction& tx, vtx)
{
nSigOps += tx.GetLegacySigOpCount();
@@ -1582,7 +1709,7 @@ bool CBlock::AcceptBlock()
return DoS(100, error("AcceptBlock() : rejected by checkpoint lockin at %d", nHeight));
// Write block to history file
- if (!CheckDiskSpace(::GetSerializeSize(*this, SER_DISK)))
+ if (!CheckDiskSpace(::GetSerializeSize(*this, SER_DISK, CLIENT_VERSION)))
return error("AcceptBlock() : out of disk space");
unsigned int nFile = -1;
unsigned int nBlockPos = 0;
@@ -1592,11 +1719,14 @@ bool CBlock::AcceptBlock()
return error("AcceptBlock() : AddToBlockIndex failed");
// Relay inventory, but don't relay old inventory during initial block download
+ int nBlockEstimate = Checkpoints::GetTotalBlocksEstimate();
if (hashBestChain == hash)
- CRITICAL_BLOCK(cs_vNodes)
- BOOST_FOREACH(CNode* pnode, vNodes)
- if (nBestHeight > (pnode->nStartingHeight != -1 ? pnode->nStartingHeight - 2000 : 140700))
- pnode->PushInventory(CInv(MSG_BLOCK, hash));
+ {
+ LOCK(cs_vNodes);
+ BOOST_FOREACH(CNode* pnode, vNodes)
+ if (nBestHeight > (pnode->nStartingHeight != -1 ? pnode->nStartingHeight - 2000 : nBlockEstimate))
+ pnode->PushInventory(CInv(MSG_BLOCK, hash));
+ }
return true;
}
@@ -1621,7 +1751,8 @@ bool ProcessBlock(CNode* pfrom, CBlock* pblock)
int64 deltaTime = pblock->GetBlockTime() - pcheckpoint->nTime;
if (deltaTime < 0)
{
- pfrom->Misbehaving(100);
+ if (pfrom)
+ pfrom->Misbehaving(100);
return error("ProcessBlock() : block with timestamp before last checkpoint");
}
CBigNum bnNewBlock;
@@ -1630,7 +1761,8 @@ bool ProcessBlock(CNode* pfrom, CBlock* pblock)
bnRequired.SetCompact(ComputeMinWork(pcheckpoint->nBits, deltaTime));
if (bnNewBlock > bnRequired)
{
- pfrom->Misbehaving(100);
+ if (pfrom)
+ pfrom->Misbehaving(100);
return error("ProcessBlock() : block with too little proof-of-work");
}
}
@@ -1657,7 +1789,7 @@ bool ProcessBlock(CNode* pfrom, CBlock* pblock)
// Recursively process any orphan blocks that depended on this one
vector<uint256> vWorkQueue;
vWorkQueue.push_back(hash);
- for (int i = 0; i < vWorkQueue.size(); i++)
+ for (unsigned int i = 0; i < vWorkQueue.size(); i++)
{
uint256 hashPrev = vWorkQueue[i];
for (multimap<uint256, CBlock*>::iterator mi = mapOrphanBlocksByPrev.lower_bound(hashPrev);
@@ -1695,8 +1827,8 @@ bool CheckDiskSpace(uint64 nAdditionalBytes)
string strMessage = _("Warning: Disk space is low ");
strMiscWarning = strMessage;
printf("*** %s\n", strMessage.c_str());
- ThreadSafeMessageBox(strMessage, "Bitcoin", wxOK | wxICON_EXCLAMATION);
- CreateThread(Shutdown, NULL);
+ ThreadSafeMessageBox(strMessage, "Bitcoin", wxOK | wxICON_EXCLAMATION | wxMODAL);
+ QueueShutdown();
return false;
}
return true;
@@ -1706,7 +1838,7 @@ FILE* OpenBlockFile(unsigned int nFile, unsigned int nBlockPos, const char* pszM
{
if (nFile == -1)
return NULL;
- FILE* file = fopen(strprintf("%s/blk%04d.dat", GetDataDir().c_str(), nFile).c_str(), pszMode);
+ FILE* file = fopen((GetDataDir() / strprintf("blk%04d.dat", nFile)).string().c_str(), pszMode);
if (!file)
return NULL;
if (nBlockPos != 0 && !strchr(pszMode, 'a') && !strchr(pszMode, 'w'))
@@ -1881,7 +2013,7 @@ void PrintBlockTree()
// put the main timechain first
vector<CBlockIndex*>& vNext = mapNext[pindex];
- for (int i = 0; i < vNext.size(); i++)
+ for (unsigned int i = 0; i < vNext.size(); i++)
{
if (vNext[i]->pnext)
{
@@ -1891,7 +2023,7 @@ void PrintBlockTree()
}
// iterate children
- for (int i = 0; i < vNext.size(); i++)
+ for (unsigned int i = 0; i < vNext.size(); i++)
vStack.push_back(make_pair(nCol+i, vNext[i]));
}
}
@@ -1936,8 +2068,8 @@ string GetWarnings(string strFor)
}
// Alerts
- CRITICAL_BLOCK(cs_mapAlerts)
{
+ LOCK(cs_mapAlerts);
BOOST_FOREACH(PAIRTYPE(const uint256, CAlert)& item, mapAlerts)
{
const CAlert& alert = item.second;
@@ -1964,8 +2096,8 @@ bool CAlert::ProcessAlert()
if (!IsInEffect())
return false;
- CRITICAL_BLOCK(cs_mapAlerts)
{
+ LOCK(cs_mapAlerts);
// Cancel previous alerts
for (map<uint256, CAlert>::iterator mi = mapAlerts.begin(); mi != mapAlerts.end();)
{
@@ -2021,8 +2153,21 @@ bool static AlreadyHave(CTxDB& txdb, const CInv& inv)
{
switch (inv.type)
{
- case MSG_TX: return mapTransactions.count(inv.hash) || mapOrphanTransactions.count(inv.hash) || txdb.ContainsTx(inv.hash);
- case MSG_BLOCK: return mapBlockIndex.count(inv.hash) || mapOrphanBlocks.count(inv.hash);
+ case MSG_TX:
+ {
+ bool txInMap = false;
+ {
+ LOCK(mempool.cs);
+ txInMap = (mempool.exists(inv.hash));
+ }
+ return txInMap ||
+ mapOrphanTransactions.count(inv.hash) ||
+ txdb.ContainsTx(inv.hash);
+ }
+
+ case MSG_BLOCK:
+ return mapBlockIndex.count(inv.hash) ||
+ mapOrphanBlocks.count(inv.hash);
}
// Don't know what it is, just say we already got one
return true;
@@ -2069,18 +2214,24 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
CAddress addrFrom;
uint64 nNonce = 1;
vRecv >> pfrom->nVersion >> pfrom->nServices >> nTime >> addrMe;
+ if (pfrom->nVersion < MIN_PROTO_VERSION)
+ {
+ // Since February 20, 2012, the protocol is initiated at version 209,
+ // and earlier versions are no longer supported
+ printf("partner %s using obsolete version %i; disconnecting\n", pfrom->addr.ToString().c_str(), pfrom->nVersion);
+ pfrom->fDisconnect = true;
+ return false;
+ }
+
if (pfrom->nVersion == 10300)
pfrom->nVersion = 300;
- if (pfrom->nVersion >= 106 && !vRecv.empty())
+ if (!vRecv.empty())
vRecv >> addrFrom >> nNonce;
- if (pfrom->nVersion >= 106 && !vRecv.empty())
+ if (!vRecv.empty())
vRecv >> pfrom->strSubVer;
- if (pfrom->nVersion >= 209 && !vRecv.empty())
+ if (!vRecv.empty())
vRecv >> pfrom->nStartingHeight;
- if (pfrom->nVersion == 0)
- return false;
-
// Disconnect if we connected to ourself
if (nNonce == nLocalHostNonce && nNonce > 1)
{
@@ -2098,11 +2249,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
AddTimeData(pfrom->addr, nTime);
// Change version
- if (pfrom->nVersion >= 209)
- pfrom->PushMessage("verack");
+ pfrom->PushMessage("verack");
pfrom->vSend.SetVersion(min(pfrom->nVersion, PROTOCOL_VERSION));
- if (pfrom->nVersion < 209)
- pfrom->vRecv.SetVersion(min(pfrom->nVersion, PROTOCOL_VERSION));
if (!pfrom->fInbound)
{
@@ -2116,17 +2264,25 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
}
// Get recent addresses
- if (pfrom->nVersion >= 31402 || mapAddresses.size() < 1000)
+ if (pfrom->nVersion >= CADDR_TIME_VERSION || addrman.size() < 1000)
{
pfrom->PushMessage("getaddr");
pfrom->fGetAddr = true;
}
+ addrman.Good(pfrom->addr);
+ } else {
+ if (((CNetAddr)pfrom->addr) == (CNetAddr)addrFrom)
+ {
+ addrman.Add(addrFrom, addrFrom);
+ addrman.Good(addrFrom);
+ }
}
// Ask the first connected node for block updates
static int nAskedForBlocks = 0;
if (!pfrom->fClient &&
- (pfrom->nVersion < 32000 || pfrom->nVersion >= 32400) &&
+ (pfrom->nVersion < NOBLKS_VERSION_START ||
+ pfrom->nVersion >= NOBLKS_VERSION_END) &&
(nAskedForBlocks < 1 || vNodes.size() <= 1))
{
nAskedForBlocks++;
@@ -2134,9 +2290,11 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
}
// Relay alerts
- CRITICAL_BLOCK(cs_mapAlerts)
+ {
+ LOCK(cs_mapAlerts);
BOOST_FOREACH(PAIRTYPE(const uint256, CAlert)& item, mapAlerts)
item.second.RelayTo(pfrom);
+ }
pfrom->fSuccessfullyConnected = true;
@@ -2166,9 +2324,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
vRecv >> vAddr;
// Don't want addr from older versions unless seeding
- if (pfrom->nVersion < 209)
- return true;
- if (pfrom->nVersion < 31402 && mapAddresses.size() > 1000)
+ if (pfrom->nVersion < CADDR_TIME_VERSION && addrman.size() > 1000)
return true;
if (vAddr.size() > 1000)
{
@@ -2177,8 +2333,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
}
// Store the new addresses
- CAddrDB addrDB;
- addrDB.TxnBegin();
int64 nNow = GetAdjustedTime();
int64 nSince = nNow - 10 * 60;
BOOST_FOREACH(CAddress& addr, vAddr)
@@ -2190,13 +2344,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
continue;
if (addr.nTime <= 100000000 || addr.nTime > nNow + 10 * 60)
addr.nTime = nNow - 5 * 24 * 60 * 60;
- AddAddress(addr, 2 * 60 * 60, &addrDB);
pfrom->AddAddressKnown(addr);
if (addr.nTime > nSince && !pfrom->fGetAddr && vAddr.size() <= 10 && addr.IsRoutable())
{
// Relay to a limited number of other nodes
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
// Use deterministic randomness to send to the same nodes for 24 hours
// at a time so the setAddrKnowns of the chosen nodes prevent repeats
static uint256 hashSalt;
@@ -2208,7 +2361,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
multimap<uint256, CNode*> mapMix;
BOOST_FOREACH(CNode* pnode, vNodes)
{
- if (pnode->nVersion < 31402)
+ if (pnode->nVersion < CADDR_TIME_VERSION)
continue;
unsigned int nPointer;
memcpy(&nPointer, &pnode, sizeof(nPointer));
@@ -2222,7 +2375,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
}
}
}
- addrDB.TxnCommit(); // Save addresses (it's ok if this fails)
+ addrman.Add(vAddr, pfrom->addr, 2 * 60 * 60);
if (vAddr.size() < 1000)
pfrom->fGetAddr = false;
}
@@ -2238,9 +2391,17 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
return error("message inv size() = %d", vInv.size());
}
+ // find last block in inv vector
+ unsigned int nLastBlock = (unsigned int)(-1);
+ for (unsigned int nInv = 0; nInv < vInv.size(); nInv++) {
+ if (vInv[vInv.size() - 1 - nInv].type == MSG_BLOCK)
+ nLastBlock = vInv.size() - 1 - nInv;
+ }
CTxDB txdb("r");
- BOOST_FOREACH(const CInv& inv, vInv)
+ for (unsigned int nInv = 0; nInv < vInv.size(); nInv++)
{
+ const CInv &inv = vInv[nInv];
+
if (fShutdown)
return true;
pfrom->AddInventoryKnown(inv);
@@ -2249,6 +2410,15 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
if (fDebug)
printf(" got inventory: %s %s\n", inv.ToString().c_str(), fAlreadyHave ? "have" : "new");
+ // Always request the last block in an inv bundle (even if we already have it), as it is the
+ // trigger for the other side to send further invs. If we are stuck on a (very long) side chain,
+ // this is necessary to connect earlier received orphan blocks to the chain again.
+ if (fAlreadyHave && nInv == nLastBlock) {
+ // bypass mapAskFor, and send request directly; it must go through.
+ std::vector<CInv> vGetData(1,inv);
+ pfrom->PushMessage("getdata", vGetData);
+ }
+
if (!fAlreadyHave)
pfrom->AskFor(inv);
else if (inv.type == MSG_BLOCK && mapOrphanBlocks.count(inv.hash))
@@ -2302,8 +2472,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
else if (inv.IsKnownType())
{
// Send stream from relay memory
- CRITICAL_BLOCK(cs_mapRelay)
{
+ LOCK(cs_mapRelay);
map<CInv, CDataStream>::iterator mi = mapRelay.find(inv);
if (mi != mapRelay.end())
pfrom->PushMessage(inv.GetCommand(), (*mi).second);
@@ -2341,7 +2511,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
pfrom->PushInventory(CInv(MSG_BLOCK, pindex->GetBlockHash()));
CBlock block;
block.ReadFromDisk(pindex, true);
- nBytes += block.GetSerializeSize(SER_NETWORK);
+ nBytes += block.GetSerializeSize(SER_NETWORK, PROTOCOL_VERSION);
if (--nLimit <= 0 || nBytes >= SendBufferSize()/2)
{
// When this block is requested, we'll send an inv that'll make them
@@ -2378,8 +2548,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
}
vector<CBlock> vHeaders;
- int nLimit = 2000 + locator.GetDistanceBack();
- printf("getheaders %d to %s limit %d\n", (pindex ? pindex->nHeight : -1), hashStop.ToString().substr(0,20).c_str(), nLimit);
+ int nLimit = 2000;
+ printf("getheaders %d to %s\n", (pindex ? pindex->nHeight : -1), hashStop.ToString().substr(0,20).c_str());
for (; pindex; pindex = pindex->pnext)
{
vHeaders.push_back(pindex->GetBlockHeader());
@@ -2394,6 +2564,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
{
vector<uint256> vWorkQueue;
CDataStream vMsg(vRecv);
+ CTxDB txdb("r");
CTransaction tx;
vRecv >> tx;
@@ -2401,7 +2572,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
pfrom->AddInventoryKnown(inv);
bool fMissingInputs = false;
- if (tx.AcceptToMemoryPool(true, &fMissingInputs))
+ if (tx.AcceptToMemoryPool(txdb, true, &fMissingInputs))
{
SyncWithWallets(tx, NULL, true);
RelayMessage(inv, vMsg);
@@ -2409,7 +2580,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
vWorkQueue.push_back(inv.hash);
// Recursively process any orphan transactions that depended on this one
- for (int i = 0; i < vWorkQueue.size(); i++)
+ for (unsigned int i = 0; i < vWorkQueue.size(); i++)
{
uint256 hashPrev = vWorkQueue[i];
for (multimap<uint256, CDataStream*>::iterator mi = mapOrphanTransactionsByPrev.lower_bound(hashPrev);
@@ -2421,7 +2592,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
CDataStream(vMsg) >> tx;
CInv inv(MSG_TX, tx.GetHash());
- if (tx.AcceptToMemoryPool(true))
+ if (tx.AcceptToMemoryPool(txdb, true))
{
printf(" accepted orphan tx %s\n", inv.hash.ToString().substr(0,10).c_str());
SyncWithWallets(tx, NULL, true);
@@ -2439,6 +2610,11 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
{
printf("storing orphan tx %s\n", inv.hash.ToString().substr(0,10).c_str());
AddOrphanTx(vMsg);
+
+ // DoS prevention: do not allow mapOrphanTransactions to grow unbounded
+ unsigned int nEvicted = LimitOrphanTxSize(MAX_ORPHAN_TRANSACTIONS);
+ if (nEvicted > 0)
+ printf("mapOrphan overflow, removed %u tx\n", nEvicted);
}
if (tx.nDoS) pfrom->Misbehaving(tx.nDoS);
}
@@ -2463,25 +2639,10 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
else if (strCommand == "getaddr")
{
- // Nodes rebroadcast an addr every 24 hours
pfrom->vAddrToSend.clear();
- int64 nSince = GetAdjustedTime() - 3 * 60 * 60; // in the last 3 hours
- CRITICAL_BLOCK(cs_mapAddresses)
- {
- unsigned int nCount = 0;
- BOOST_FOREACH(const PAIRTYPE(vector<unsigned char>, CAddress)& item, mapAddresses)
- {
- const CAddress& addr = item.second;
- if (addr.nTime > nSince)
- nCount++;
- }
- BOOST_FOREACH(const PAIRTYPE(vector<unsigned char>, CAddress)& item, mapAddresses)
- {
- const CAddress& addr = item.second;
- if (addr.nTime > nSince && GetRand(nCount) < 2500)
- pfrom->PushAddress(addr);
- }
- }
+ vector<CAddress> vAddr = addrman.GetAddr();
+ BOOST_FOREACH(const CAddress &addr, vAddr)
+ pfrom->PushAddress(addr);
}
@@ -2518,8 +2679,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
vRecv >> hashReply;
CRequestTracker tracker;
- CRITICAL_BLOCK(pfrom->cs_mapRequests)
{
+ LOCK(pfrom->cs_mapRequests);
map<uint256, CRequestTracker>::iterator mi = pfrom->mapRequests.find(hashReply);
if (mi != pfrom->mapRequests.end())
{
@@ -2534,6 +2695,23 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
else if (strCommand == "ping")
{
+ if (pfrom->nVersion > BIP0031_VERSION)
+ {
+ uint64 nonce = 0;
+ vRecv >> nonce;
+ // Echo the message back with the nonce. This allows for two useful features:
+ //
+ // 1) A remote node can quickly check if the connection is operational
+ // 2) Remote nodes can measure the latency of the network thread. If this node
+ // is overloaded it won't respond to pings quickly and the remote node can
+ // avoid sending us more work, like chain download requests.
+ //
+ // The nonce stops the remote getting confused between different pings: without
+ // it, if the remote node sends a ping once per second and this node takes 5
+ // seconds to respond to each, the 5th ping the remote sends would appear to
+ // return very quickly.
+ pfrom->PushMessage("pong", nonce);
+ }
}
@@ -2546,9 +2724,11 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
{
// Relay
pfrom->setKnown.insert(alert.GetHash());
- CRITICAL_BLOCK(cs_vNodes)
+ {
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
alert.RelayTo(pnode);
+ }
}
}
@@ -2592,7 +2772,7 @@ bool ProcessMessages(CNode* pfrom)
int nHeaderSize = vRecv.GetSerializeSize(CMessageHeader());
if (vRecv.end() - pstart < nHeaderSize)
{
- if (vRecv.size() > nHeaderSize)
+ if ((int)vRecv.size() > nHeaderSize)
{
printf("\n\nPROCESSMESSAGE MESSAGESTART NOT FOUND\n\n");
vRecv.erase(vRecv.begin(), vRecv.end() - nHeaderSize);
@@ -2629,17 +2809,14 @@ bool ProcessMessages(CNode* pfrom)
}
// Checksum
- if (vRecv.GetVersion() >= 209)
+ uint256 hash = Hash(vRecv.begin(), vRecv.begin() + nMessageSize);
+ unsigned int nChecksum = 0;
+ memcpy(&nChecksum, &hash, sizeof(nChecksum));
+ if (nChecksum != hdr.nChecksum)
{
- uint256 hash = Hash(vRecv.begin(), vRecv.begin() + nMessageSize);
- unsigned int nChecksum = 0;
- memcpy(&nChecksum, &hash, sizeof(nChecksum));
- if (nChecksum != hdr.nChecksum)
- {
- printf("ProcessMessage(%s, %u bytes) : CHECKSUM ERROR nChecksum=%08x hdr.nChecksum=%08x\n",
- strCommand.c_str(), nMessageSize, nChecksum, hdr.nChecksum);
- continue;
- }
+ printf("ProcessMessage(%s, %u bytes) : CHECKSUM ERROR nChecksum=%08x hdr.nChecksum=%08x\n",
+ strCommand.c_str(), nMessageSize, nChecksum, hdr.nChecksum);
+ continue;
}
// Copy message to its own buffer
@@ -2650,8 +2827,10 @@ bool ProcessMessages(CNode* pfrom)
bool fRet = false;
try
{
- CRITICAL_BLOCK(cs_main)
+ {
+ LOCK(cs_main);
fRet = ProcessMessage(pfrom, strCommand, vMsg);
+ }
if (fShutdown)
return true;
}
@@ -2689,15 +2868,20 @@ bool ProcessMessages(CNode* pfrom)
bool SendMessages(CNode* pto, bool fSendTrickle)
{
- CRITICAL_BLOCK(cs_main)
- {
+ TRY_LOCK(cs_main, lockMain);
+ if (lockMain) {
// Don't send anything until we get their version message
if (pto->nVersion == 0)
return true;
- // Keep-alive ping
- if (pto->nLastSend && GetTime() - pto->nLastSend > 30 * 60 && pto->vSend.empty())
- pto->PushMessage("ping");
+ // Keep-alive ping. We send a nonce of zero because we don't use it anywhere
+ // right now.
+ if (pto->nLastSend && GetTime() - pto->nLastSend > 30 * 60 && pto->vSend.empty()) {
+ if (pto->nVersion > BIP0031_VERSION)
+ pto->PushMessage("ping", 0);
+ else
+ pto->PushMessage("ping");
+ }
// Resend wallet transactions that haven't gotten in a block yet
ResendWalletTransactions();
@@ -2706,8 +2890,8 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
static int64 nLastRebroadcast;
if (!IsInitialBlockDownload() && (GetTime() - nLastRebroadcast > 24 * 60 * 60))
{
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
{
// Periodically clear setAddrKnown to allow refresh broadcasts
@@ -2726,35 +2910,6 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
nLastRebroadcast = GetTime();
}
- // Clear out old addresses periodically so it's not too much work at once
- static int64 nLastClear;
- if (nLastClear == 0)
- nLastClear = GetTime();
- if (GetTime() - nLastClear > 10 * 60 && vNodes.size() >= 3)
- {
- nLastClear = GetTime();
- CRITICAL_BLOCK(cs_mapAddresses)
- {
- CAddrDB addrdb;
- int64 nSince = GetAdjustedTime() - 14 * 24 * 60 * 60;
- for (map<vector<unsigned char>, CAddress>::iterator mi = mapAddresses.begin();
- mi != mapAddresses.end();)
- {
- const CAddress& addr = (*mi).second;
- if (addr.nTime < nSince)
- {
- if (mapAddresses.size() < 1000 || GetTime() > nLastClear + 20)
- break;
- addrdb.EraseAddress(addr);
- mapAddresses.erase(mi++);
- }
- else
- mi++;
- }
- }
- }
-
-
//
// Message: addr
//
@@ -2787,8 +2942,8 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
//
vector<CInv> vInv;
vector<CInv> vInvWait;
- CRITICAL_BLOCK(pto->cs_inventory)
{
+ LOCK(pto->cs_inventory);
vInv.reserve(pto->vInventoryToSend.size());
vInvWait.reserve(pto->vInventoryToSend.size());
BOOST_FOREACH(const CInv& inv, pto->vInventoryToSend)
@@ -2951,7 +3106,7 @@ unsigned int static ScanHash_CryptoPP(char* pmidstate, char* pdata, char* phash1
if ((nNonce & 0xffff) == 0)
{
nHashesDone = 0xffff+1;
- return -1;
+ return (unsigned int) -1;
}
}
}
@@ -3003,16 +3158,15 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
// Collect memory pool transactions into the block
int64 nFees = 0;
- CRITICAL_BLOCK(cs_main)
- CRITICAL_BLOCK(cs_mapTransactions)
{
+ LOCK2(cs_main, mempool.cs);
CTxDB txdb("r");
// Priority order to process transactions
list<COrphan> vOrphan; // list memory doesn't move
map<uint256, vector<COrphan*> > mapDependers;
multimap<double, CTransaction*> mapPriority;
- for (map<uint256, CTransaction>::iterator mi = mapTransactions.begin(); mi != mapTransactions.end(); ++mi)
+ for (map<uint256, CTransaction>::iterator mi = mempool.mapTx.begin(); mi != mempool.mapTx.end(); ++mi)
{
CTransaction& tx = (*mi).second;
if (tx.IsCoinBase() || !tx.IsFinal())
@@ -3046,11 +3200,11 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
dPriority += (double)nValueIn * nConf;
if (fDebug && GetBoolArg("-printpriority"))
- printf("priority nValueIn=%-12I64d nConf=%-5d dPriority=%-20.1f\n", nValueIn, nConf, dPriority);
+ printf("priority nValueIn=%-12"PRI64d" nConf=%-5d dPriority=%-20.1f\n", nValueIn, nConf, dPriority);
}
// Priority is sum(valuein * age) / txsize
- dPriority /= ::GetSerializeSize(tx, SER_NETWORK);
+ dPriority /= ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION);
if (porphan)
porphan->dPriority = dPriority;
@@ -3079,12 +3233,12 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
mapPriority.erase(mapPriority.begin());
// Size limits
- unsigned int nTxSize = ::GetSerializeSize(tx, SER_NETWORK);
+ unsigned int nTxSize = ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION);
if (nBlockSize + nTxSize >= MAX_BLOCK_SIZE_GEN)
continue;
// Legacy limits on sigOps:
- int nTxSigOps = tx.GetLegacySigOpCount();
+ unsigned int nTxSigOps = tx.GetLegacySigOpCount();
if (nBlockSigOps + nTxSigOps >= MAX_BLOCK_SIGOPS)
continue;
@@ -3146,7 +3300,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
// Fill in header
pblock->hashPrevBlock = pindexPrev->GetBlockHash();
pblock->hashMerkleRoot = pblock->BuildMerkleTree();
- pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
+ pblock->UpdateTime(pindexPrev);
pblock->nBits = GetNextWorkRequired(pindexPrev, pblock.get());
pblock->nNonce = 0;
@@ -3206,7 +3360,7 @@ void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash
FormatHashBlocks(&tmp.hash1, sizeof(tmp.hash1));
// Byte swap all the input buffer
- for (int i = 0; i < sizeof(tmp)/4; i++)
+ for (unsigned int i = 0; i < sizeof(tmp)/4; i++)
((unsigned int*)&tmp)[i] = ByteReverse(((unsigned int*)&tmp)[i]);
// Precalc the first half of the first hash, which stays constant
@@ -3233,8 +3387,8 @@ bool CheckWork(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey)
printf("generated %s\n", FormatMoney(pblock->vtx[0].vout[0].nValue).c_str());
// Found a solution
- CRITICAL_BLOCK(cs_main)
{
+ LOCK(cs_main);
if (pblock->hashPrevBlock != hashBestChain)
return error("BitcoinMiner : generated block is stale");
@@ -3242,8 +3396,10 @@ bool CheckWork(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey)
reservekey.KeepKey();
// Track how many getdata requests this block gets
- CRITICAL_BLOCK(wallet.cs_wallet)
+ {
+ LOCK(wallet.cs_wallet);
wallet.mapRequestCount[pblock->GetHash()] = 0;
+ }
// Process this block the same as if we had received it from another node
if (!ProcessBlock(NULL, pblock))
@@ -3255,6 +3411,10 @@ bool CheckWork(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey)
void static ThreadBitcoinMiner(void* parg);
+static bool fGenerateBitcoins = false;
+static bool fLimitProcessors = false;
+static int nLimitProcessors = -1;
+
void static BitcoinMiner(CWallet *pwallet)
{
printf("BitcoinMiner started\n");
@@ -3266,8 +3426,6 @@ void static BitcoinMiner(CWallet *pwallet)
while (fGenerateBitcoins)
{
- if (AffinityBugWorkaround(ThreadBitcoinMiner))
- return;
if (fShutdown)
return;
while (vNodes.empty() || IsInitialBlockDownload())
@@ -3304,6 +3462,7 @@ void static BitcoinMiner(CWallet *pwallet)
FormatHashBuffers(pblock.get(), pmidstate, pdata, phash1);
unsigned int& nBlockTime = *(unsigned int*)(pdata + 64 + 4);
+ unsigned int& nBlockBits = *(unsigned int*)(pdata + 64 + 8);
unsigned int& nBlockNonce = *(unsigned int*)(pdata + 64 + 12);
@@ -3324,9 +3483,9 @@ void static BitcoinMiner(CWallet *pwallet)
(char*)&hash, nHashesDone);
// Check if something found
- if (nNonceFound != -1)
+ if (nNonceFound != (unsigned int) -1)
{
- for (int i = 0; i < sizeof(hash)/4; i++)
+ for (unsigned int i = 0; i < sizeof(hash)/4; i++)
((unsigned int*)&hash)[i] = ByteReverse(((unsigned int*)&hash)[i]);
if (hash <= hashTarget)
@@ -3354,21 +3513,19 @@ void static BitcoinMiner(CWallet *pwallet)
if (GetTimeMillis() - nHPSTimerStart > 4000)
{
static CCriticalSection cs;
- CRITICAL_BLOCK(cs)
{
+ LOCK(cs);
if (GetTimeMillis() - nHPSTimerStart > 4000)
{
dHashesPerSec = 1000.0 * nHashCounter / (GetTimeMillis() - nHPSTimerStart);
nHPSTimerStart = GetTimeMillis();
nHashCounter = 0;
- string strStatus = strprintf(" %.0f khash/s", dHashesPerSec/1000.0);
- UIThreadCall(boost::bind(CalledSetStatusBar, strStatus, 0));
static int64 nLogTime;
if (GetTime() - nLogTime > 30 * 60)
{
nLogTime = GetTime();
printf("%s ", DateTimeStrFormat("%x %H:%M", GetTime()).c_str());
- printf("hashmeter %3d CPUs %6.0f khash/s\n", vnThreadsRunning[3], dHashesPerSec/1000.0);
+ printf("hashmeter %3d CPUs %6.0f khash/s\n", vnThreadsRunning[THREAD_MINER], dHashesPerSec/1000.0);
}
}
}
@@ -3379,7 +3536,7 @@ void static BitcoinMiner(CWallet *pwallet)
return;
if (!fGenerateBitcoins)
return;
- if (fLimitProcessors && vnThreadsRunning[3] > nLimitProcessors)
+ if (fLimitProcessors && vnThreadsRunning[THREAD_MINER] > nLimitProcessors)
return;
if (vNodes.empty())
break;
@@ -3391,8 +3548,14 @@ void static BitcoinMiner(CWallet *pwallet)
break;
// Update nTime every few seconds
- pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
+ pblock->UpdateTime(pindexPrev);
nBlockTime = ByteReverse(pblock->nTime);
+ if (fTestNet)
+ {
+ // Changing pblock->nTime can change work required on testnet:
+ nBlockBits = ByteReverse(pblock->nBits);
+ hashTarget = CBigNum().SetCompact(pblock->nBits).getuint256();
+ }
}
}
}
@@ -3402,34 +3565,33 @@ void static ThreadBitcoinMiner(void* parg)
CWallet* pwallet = (CWallet*)parg;
try
{
- vnThreadsRunning[3]++;
+ vnThreadsRunning[THREAD_MINER]++;
BitcoinMiner(pwallet);
- vnThreadsRunning[3]--;
+ vnThreadsRunning[THREAD_MINER]--;
}
catch (std::exception& e) {
- vnThreadsRunning[3]--;
+ vnThreadsRunning[THREAD_MINER]--;
PrintException(&e, "ThreadBitcoinMiner()");
} catch (...) {
- vnThreadsRunning[3]--;
+ vnThreadsRunning[THREAD_MINER]--;
PrintException(NULL, "ThreadBitcoinMiner()");
}
- UIThreadCall(boost::bind(CalledSetStatusBar, "", 0));
nHPSTimerStart = 0;
- if (vnThreadsRunning[3] == 0)
+ if (vnThreadsRunning[THREAD_MINER] == 0)
dHashesPerSec = 0;
- printf("ThreadBitcoinMiner exiting, %d threads remaining\n", vnThreadsRunning[3]);
+ printf("ThreadBitcoinMiner exiting, %d threads remaining\n", vnThreadsRunning[THREAD_MINER]);
}
void GenerateBitcoins(bool fGenerate, CWallet* pwallet)
{
- if (fGenerateBitcoins != fGenerate)
- {
- fGenerateBitcoins = fGenerate;
- WriteSetting("fGenerateBitcoins", fGenerateBitcoins);
- MainFrameRepaint();
- }
- if (fGenerateBitcoins)
+ fGenerateBitcoins = fGenerate;
+ nLimitProcessors = GetArg("-genproclimit", -1);
+ if (nLimitProcessors == 0)
+ fGenerateBitcoins = false;
+ fLimitProcessors = (nLimitProcessors != -1);
+
+ if (fGenerate)
{
int nProcessors = boost::thread::hardware_concurrency();
printf("%d processors\n", nProcessors);
@@ -3437,7 +3599,7 @@ void GenerateBitcoins(bool fGenerate, CWallet* pwallet)
nProcessors = 1;
if (fLimitProcessors && nProcessors > nLimitProcessors)
nProcessors = nLimitProcessors;
- int nAddThreads = nProcessors - vnThreadsRunning[3];
+ int nAddThreads = nProcessors - vnThreadsRunning[THREAD_MINER];
printf("Starting %d BitcoinMiner threads\n", nAddThreads);
for (int i = 0; i < nAddThreads; i++)
{
diff --git a/src/main.h b/src/main.h
index 825c81e485..262e77e806 100644
--- a/src/main.h
+++ b/src/main.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_MAIN_H
@@ -7,34 +7,29 @@
#include "bignum.h"
#include "net.h"
-#include "key.h"
#include "script.h"
-#include "db.h"
+
+#ifdef WIN32
+#include <io.h> /* for _commit */
+#endif
#include <list>
+class CWallet;
class CBlock;
class CBlockIndex;
-class CWalletTx;
-class CWallet;
class CKeyItem;
class CReserveKey;
-class CWalletDB;
class CAddress;
class CInv;
class CRequestTracker;
class CNode;
-static const int CLIENT_VERSION = 59900;
-static const bool VERSION_IS_BETA = true;
-extern const std::string CLIENT_NAME;
-
static const unsigned int MAX_BLOCK_SIZE = 1000000;
static const unsigned int MAX_BLOCK_SIZE_GEN = MAX_BLOCK_SIZE/2;
-static const int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50;
-static const int64 COIN = 100000000;
-static const int64 CENT = 1000000;
+static const unsigned int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50;
+static const unsigned int MAX_ORPHAN_TRANSACTIONS = MAX_BLOCK_SIZE/100;
static const int64 MIN_TX_FEE = 50000;
static const int64 MIN_RELAY_TX_FEE = 10000;
static const int64 MAX_MONEY = 21000000 * COIN;
@@ -49,10 +44,7 @@ static const int fHaveUPnP = false;
#endif
-// Put "/P2SH/" in the coinbase so everybody can tell when
-// a majority of miners support it
-static const char* pszP2SH = "/P2SH/";
-static const CScript COINBASE_FLAGS = CScript() << std::vector<unsigned char>(pszP2SH, pszP2SH+strlen(pszP2SH));
+extern CScript COINBASE_FLAGS;
@@ -68,7 +60,6 @@ extern CBigNum bnBestChainWork;
extern CBigNum bnBestInvalidWork;
extern uint256 hashBestChain;
extern CBlockIndex* pindexBest;
-extern uint64 nPooledTx;
extern unsigned int nTransactionsUpdated;
extern uint64 nLastBlockTx;
extern uint64 nLastBlockSize;
@@ -80,13 +71,7 @@ extern CCriticalSection cs_setpwalletRegistered;
extern std::set<CWallet*> setpwalletRegistered;
// Settings
-extern int fGenerateBitcoins;
extern int64 nTransactionFee;
-extern int fLimitProcessors;
-extern int nLimitProcessors;
-extern int fMinimizeToTray;
-extern int fMinimizeOnClose;
-extern int fUseUPnP;
@@ -130,21 +115,7 @@ std::string GetWarnings(std::string strFor);
bool GetWalletFile(CWallet* pwallet, std::string &strWalletFileOut);
-template<typename T>
-bool WriteSetting(const std::string& strKey, const T& value)
-{
- bool fOk = false;
- BOOST_FOREACH(CWallet* pwallet, setpwalletRegistered)
- {
- std::string strWalletFile;
- if (!GetWalletFile(pwallet, strWalletFile))
- continue;
- fOk |= CWalletDB(strWalletFile).WriteSetting(strKey, value);
- }
- return fOk;
-}
-
-
+/** Position on disk for a particular transaction. */
class CDiskTxPos
{
public:
@@ -183,7 +154,7 @@ public:
std::string ToString() const
{
if (IsNull())
- return strprintf("null");
+ return "null";
else
return strprintf("(nFile=%d, nBlockPos=%d, nTxPos=%d)", nFile, nBlockPos, nTxPos);
}
@@ -196,7 +167,7 @@ public:
-
+/** An inpoint - a combination of a transaction and an index n into its vin */
class CInPoint
{
public:
@@ -211,7 +182,7 @@ public:
-
+/** An outpoint - a combination of a transaction hash and an index n into its vout */
class COutPoint
{
public:
@@ -253,11 +224,10 @@ public:
-//
-// An input of a transaction. It contains the location of the previous
-// transaction's output that it claims and a signature that matches the
-// output's public key.
-//
+/** An input of a transaction. It contains the location of the previous
+ * transaction's output that it claims and a signature that matches the
+ * output's public key.
+ */
class CTxIn
{
public:
@@ -311,7 +281,7 @@ public:
std::string ToString() const
{
std::string str;
- str += strprintf("CTxIn(");
+ str += "CTxIn(";
str += prevout.ToString();
if (prevout.IsNull())
str += strprintf(", coinbase %s", HexStr(scriptSig).c_str());
@@ -332,10 +302,9 @@ public:
-//
-// An output of a transaction. It contains the public key that the next input
-// must be able to sign with to claim it.
-//
+/** An output of a transaction. It contains the public key that the next input
+ * must be able to sign with to claim it.
+ */
class CTxOut
{
public:
@@ -411,10 +380,9 @@ enum GetMinFee_mode
typedef std::map<uint256, std::pair<CTxIndex, CTransaction> > MapPrevTx;
-//
-// The basic transaction that is broadcasted on the network and contained in
-// blocks. A transaction can contain multiple inputs and outputs.
-//
+/** The basic transaction that is broadcasted on the network and contained in
+ * blocks. A transaction can contain multiple inputs and outputs.
+ */
class CTransaction
{
public:
@@ -469,7 +437,7 @@ public:
nBlockHeight = nBestHeight;
if (nBlockTime == 0)
nBlockTime = GetAdjustedTime();
- if ((int64)nLockTime < (nLockTime < LOCKTIME_THRESHOLD ? (int64)nBlockHeight : nBlockTime))
+ if ((int64)nLockTime < ((int64)nLockTime < LOCKTIME_THRESHOLD ? (int64)nBlockHeight : nBlockTime))
return true;
BOOST_FOREACH(const CTxIn& txin, vin)
if (!txin.IsFinal())
@@ -481,13 +449,13 @@ public:
{
if (vin.size() != old.vin.size())
return false;
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
if (vin[i].prevout != old.vin[i].prevout)
return false;
bool fNewer = false;
unsigned int nLowest = std::numeric_limits<unsigned int>::max();
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
{
if (vin[i].nSequence != old.vin[i].nSequence)
{
@@ -527,7 +495,7 @@ public:
@return number of sigops this transaction's outputs will produce when spent
@see CTransaction::FetchInputs
*/
- int GetLegacySigOpCount() const;
+ unsigned int GetLegacySigOpCount() const;
/** Count ECDSA signature operations in pay-to-script-hash inputs.
@@ -535,7 +503,7 @@ public:
@return maximum number of sigops required to validate this transaction's inputs
@see CTransaction::FetchInputs
*/
- int GetP2SHSigOpCount(const MapPrevTx& mapInputs) const;
+ unsigned int GetP2SHSigOpCount(const MapPrevTx& mapInputs) const;
/** Amount of bitcoins spent by this transaction.
@return sum of all outputs (note: does not include fees)
@@ -574,7 +542,7 @@ public:
// Base fee is either MIN_TX_FEE or MIN_RELAY_TX_FEE
int64 nBaseFee = (mode == GMF_RELAY) ? MIN_RELAY_TX_FEE : MIN_TX_FEE;
- unsigned int nBytes = ::GetSerializeSize(*this, SER_NETWORK);
+ unsigned int nBytes = ::GetSerializeSize(*this, SER_NETWORK, PROTOCOL_VERSION);
unsigned int nNewBlockSize = nBlockSize + nBytes;
int64 nMinFee = (1 + (int64)nBytes / 1000) * nBaseFee;
@@ -597,9 +565,11 @@ public:
// To limit dust spam, require MIN_TX_FEE/MIN_RELAY_TX_FEE if any output is less than 0.01
if (nMinFee < nBaseFee)
+ {
BOOST_FOREACH(const CTxOut& txout, vout)
if (txout.nValue < CENT)
nMinFee = nBaseFee;
+ }
// Raise the price as the block approaches full
if (nBlockSize != 1 && nNewBlockSize >= MAX_BLOCK_SIZE_GEN/2)
@@ -617,7 +587,7 @@ public:
bool ReadFromDisk(CDiskTxPos pos, FILE** pfileRet=NULL)
{
- CAutoFile filein = OpenBlockFile(pos.nFile, 0, pfileRet ? "rb+" : "rb");
+ CAutoFile filein = CAutoFile(OpenBlockFile(pos.nFile, 0, pfileRet ? "rb+" : "rb"), SER_DISK, CLIENT_VERSION);
if (!filein)
return error("CTransaction::ReadFromDisk() : OpenBlockFile failed");
@@ -659,9 +629,9 @@ public:
vin.size(),
vout.size(),
nLockTime);
- for (int i = 0; i < vin.size(); i++)
+ for (unsigned int i = 0; i < vin.size(); i++)
str += " " + vin[i].ToString() + "\n";
- for (int i = 0; i < vout.size(); i++)
+ for (unsigned int i = 0; i < vout.size(); i++)
str += " " + vout[i].ToString() + "\n";
return str;
}
@@ -708,22 +678,16 @@ public:
bool ClientConnectInputs();
bool CheckTransaction() const;
bool AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs=true, bool* pfMissingInputs=NULL);
- bool AcceptToMemoryPool(bool fCheckInputs=true, bool* pfMissingInputs=NULL);
protected:
const CTxOut& GetOutputFor(const CTxIn& input, const MapPrevTx& inputs) const;
- bool AddToMemoryPoolUnchecked();
-public:
- bool RemoveFromMemoryPool();
};
-//
-// A transaction with a merkle branch linking it to the block chain
-//
+/** A transaction with a merkle branch linking it to the block chain. */
class CMerkleTx : public CTransaction
{
public:
@@ -732,7 +696,7 @@ public:
int nIndex;
// memory only
- mutable char fMerkleVerified;
+ mutable bool fMerkleVerified;
CMerkleTx()
@@ -775,11 +739,10 @@ public:
-//
-// A txdb record that contains the disk location of a transaction and the
-// locations of transactions that spend its outputs. vSpent is really only
-// used as a flag, but having the location is very helpful for debugging.
-//
+/** A txdb record that contains the disk location of a transaction and the
+ * locations of transactions that spend its outputs. vSpent is really only
+ * used as a flag, but having the location is very helpful for debugging.
+ */
class CTxIndex
{
public:
@@ -834,17 +797,16 @@ public:
-//
-// Nodes collect new transactions into a block, hash them into a hash tree,
-// and scan through nonce values to make the block's hash satisfy proof-of-work
-// requirements. When they solve the proof-of-work, they broadcast the block
-// to everyone and the block is added to the block chain. The first transaction
-// in the block is a special one that creates a new coin owned by the creator
-// of the block.
-//
-// Blocks are appended to blk0001.dat files on disk. Their location on disk
-// is indexed by CBlockIndex objects in memory.
-//
+/** Nodes collect new transactions into a block, hash them into a hash tree,
+ * and scan through nonce values to make the block's hash satisfy proof-of-work
+ * requirements. When they solve the proof-of-work, they broadcast the block
+ * to everyone and the block is added to the block chain. The first transaction
+ * in the block is a special one that creates a new coin owned by the creator
+ * of the block.
+ *
+ * Blocks are appended to blk0001.dat files on disk. Their location on disk
+ * is indexed by CBlockIndex objects in memory.
+ */
class CBlock
{
public:
@@ -916,6 +878,7 @@ public:
return (int64)nTime;
}
+ void UpdateTime(const CBlockIndex* pindexPrev);
uint256 BuildMerkleTree() const
@@ -972,7 +935,7 @@ public:
bool WriteToDisk(unsigned int& nFileRet, unsigned int& nBlockPosRet)
{
// Open history file to append
- CAutoFile fileout = AppendBlockFile(nFileRet);
+ CAutoFile fileout = CAutoFile(AppendBlockFile(nFileRet), SER_DISK, CLIENT_VERSION);
if (!fileout)
return error("CBlock::WriteToDisk() : AppendBlockFile failed");
@@ -981,9 +944,10 @@ public:
fileout << FLATDATA(pchMessageStart) << nSize;
// Write block
- nBlockPosRet = ftell(fileout);
- if (nBlockPosRet == -1)
+ long fileOutPos = ftell(fileout);
+ if (fileOutPos < 0)
return error("CBlock::WriteToDisk() : ftell failed");
+ nBlockPosRet = fileOutPos;
fileout << *this;
// Flush stdio buffers and commit to disk before returning
@@ -1005,7 +969,7 @@ public:
SetNull();
// Open history file to read
- CAutoFile filein = OpenBlockFile(nFile, nBlockPos, "rb");
+ CAutoFile filein = CAutoFile(OpenBlockFile(nFile, nBlockPos, "rb"), SER_DISK, CLIENT_VERSION);
if (!filein)
return error("CBlock::ReadFromDisk() : OpenBlockFile failed");
if (!fReadTransactions)
@@ -1032,13 +996,13 @@ public:
hashMerkleRoot.ToString().substr(0,10).c_str(),
nTime, nBits, nNonce,
vtx.size());
- for (int i = 0; i < vtx.size(); i++)
+ for (unsigned int i = 0; i < vtx.size(); i++)
{
printf(" ");
vtx[i].print();
}
printf(" vMerkleTree: ");
- for (int i = 0; i < vMerkleTree.size(); i++)
+ for (unsigned int i = 0; i < vMerkleTree.size(); i++)
printf("%s ", vMerkleTree[i].ToString().substr(0,10).c_str());
printf("\n");
}
@@ -1051,6 +1015,9 @@ public:
bool AddToBlockIndex(unsigned int nFile, unsigned int nBlockPos);
bool CheckBlock() const;
bool AcceptBlock();
+
+private:
+ bool SetBestChainInner(CTxDB& txdb, CBlockIndex *pindexNew);
};
@@ -1058,14 +1025,13 @@ public:
-//
-// The block chain is a tree shaped structure starting with the
-// genesis block at the root, with each block potentially having multiple
-// candidates to be the next block. pprev and pnext link a path through the
-// main/longest chain. A blockindex may have multiple pprev pointing back
-// to it, but pnext will only point forward to the longest branch, or will
-// be null if the block is not part of the longest chain.
-//
+/** The block chain is a tree shaped structure starting with the
+ * genesis block at the root, with each block potentially having multiple
+ * candidates to be the next block. pprev and pnext link a path through the
+ * main/longest chain. A blockindex may have multiple pprev pointing back
+ * to it, but pnext will only point forward to the longest branch, or will
+ * be null if the block is not part of the longest chain.
+ */
class CBlockIndex
{
public:
@@ -1164,7 +1130,7 @@ public:
bool EraseBlockFromDisk()
{
// Open history file
- CAutoFile fileout = OpenBlockFile(nFile, nBlockPos, "rb+");
+ CAutoFile fileout = CAutoFile(OpenBlockFile(nFile, nBlockPos, "rb+"), SER_DISK, CLIENT_VERSION);
if (!fileout)
return false;
@@ -1222,9 +1188,7 @@ public:
-//
-// Used to marshal pointers into hashes for db storage.
-//
+/** Used to marshal pointers into hashes for db storage. */
class CDiskBlockIndex : public CBlockIndex
{
public:
@@ -1299,11 +1263,10 @@ public:
-//
-// Describes a place in the block chain to another node such that if the
-// other node doesn't have the same branch, it can find a recent common trunk.
-// The further back it is, the further before the fork it may be.
-//
+/** Describes a place in the block chain to another node such that if the
+ * other node doesn't have the same branch, it can find a recent common trunk.
+ * The further back it is, the further before the fork it may be.
+ */
class CBlockLocator
{
protected:
@@ -1435,13 +1398,12 @@ public:
-//
-// Alerts are for notifying old versions if they become too obsolete and
-// need to upgrade. The message is displayed in the status bar.
-// Alert messages are broadcast as a vector of signed data. Unserializing may
-// not read the entire buffer if the alert is for a newer version, but older
-// versions can still relay the original data.
-//
+/** Alerts are for notifying old versions if they become too obsolete and
+ * need to upgrade. The message is displayed in the status bar.
+ * Alert messages are broadcast as a vector of signed data. Unserializing may
+ * not read the entire buffer if the alert is for a newer version, but older
+ * versions can still relay the original data.
+ */
class CUnsignedAlert
{
public:
@@ -1541,6 +1503,7 @@ public:
}
};
+/** An alert is a combination of a serialized CUnsignedAlert and a signature. */
class CAlert : public CUnsignedAlert
{
public:
@@ -1627,7 +1590,7 @@ public:
return error("CAlert::CheckSignature() : verify signature failed");
// Now unserialize the data
- CDataStream sMsg(vchMsg);
+ CDataStream sMsg(vchMsg, SER_NETWORK, PROTOCOL_VERSION);
sMsg >> *(CUnsignedAlert*)this;
return true;
}
@@ -1635,4 +1598,35 @@ public:
bool ProcessAlert();
};
+class CTxMemPool
+{
+public:
+ mutable CCriticalSection cs;
+ std::map<uint256, CTransaction> mapTx;
+ std::map<COutPoint, CInPoint> mapNextTx;
+
+ bool accept(CTxDB& txdb, CTransaction &tx,
+ bool fCheckInputs, bool* pfMissingInputs);
+ bool addUnchecked(CTransaction &tx);
+ bool remove(CTransaction &tx);
+
+ unsigned long size()
+ {
+ LOCK(cs);
+ return mapTx.size();
+ }
+
+ bool exists(uint256 hash)
+ {
+ return (mapTx.count(hash) != 0);
+ }
+
+ CTransaction& lookup(uint256 hash)
+ {
+ return mapTx[hash];
+ }
+};
+
+extern CTxMemPool mempool;
+
#endif
diff --git a/src/makefile.linux-mingw b/src/makefile.linux-mingw
index 9212698018..81934187e2 100644
--- a/src/makefile.linux-mingw
+++ b/src/makefile.linux-mingw
@@ -9,13 +9,14 @@ USE_UPNP:=0
INCLUDEPATHS= \
-I"$(DEPSDIR)/boost_1_47_0" \
-I"$(DEPSDIR)/db-4.8.30.NC/build_unix" \
- -I"$(DEPSDIR)/openssl-1.0.0e/include" \
- -I"$(DEPSDIR)"
+ -I"$(DEPSDIR)/openssl-1.0.1b/include" \
+ -I"$(DEPSDIR)" \
+ -I"$(CURDIR)"/obj \
LIBPATHS= \
-L"$(DEPSDIR)/boost_1_47_0/stage/lib" \
-L"$(DEPSDIR)/db-4.8.30.NC/build_unix" \
- -L"$(DEPSDIR)/openssl-1.0.0e"
+ -L"$(DEPSDIR)/openssl-1.0.1b"
LIBS= \
-l boost_system-mt-s \
@@ -26,10 +27,11 @@ LIBS= \
-l ssl \
-l crypto
-DEFS=-D_MT -DWIN32 -D_WINDOWS -DNOPCH -DUSE_SSL -DBOOST_THREAD_USE_LIB
+DEFS=-D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB
DEBUGFLAGS=-g
CFLAGS=-O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
+TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifdef USE_UPNP
LIBPATHS += -L"$(DEPSDIR)/miniupnpc"
@@ -43,8 +45,10 @@ LIBS += -l mingwthrd -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l w
HEADERS = $(wildcard *.h)
OBJS= \
+ obj/version.o \
obj/checkpoints.o \
obj/netbase.o \
+ obj/addrman.o \
obj/crypter.o \
obj/key.o \
obj/db.o \
@@ -58,28 +62,37 @@ OBJS= \
obj/rpcdump.o \
obj/script.o \
obj/util.o \
- obj/wallet.o
+ obj/wallet.o \
+ obj/walletdb.o \
+ obj/noui.o
all: bitcoind.exe
+obj/build.h: FORCE
+ ../share/genbuild.sh obj/build.h
+version.cpp: obj/build.h
+DEFS += -DHAVE_BUILD_INFO
+
obj/%.o: %.cpp $(HEADERS)
i586-mingw32msvc-g++ -c $(CFLAGS) -o $@ $<
bitcoind.exe: $(OBJS:obj/%=obj/%)
i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
+TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
-obj/test/%.o: obj/test/%.cpp $(HEADERS)
- i586-mingw32msvc-g++ -c $(CFLAGS) -o $@ $<
+obj-test/%.o: test/%.cpp $(HEADERS)
+ i586-mingw32msvc-g++ -c $(TESTDEFS) $(CFLAGS) -o $@ $<
-test_bitcoin.exe: obj/test/test_bitcoin.o $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
- i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) -lboost_unit_test_framework-mt-s
+test_bitcoin.exe: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
+ i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ -lboost_unit_test_framework $(LIBS)
clean:
-rm -f obj/*.o
- -rm -f obj/test/*.o
- -rm -f test/*.o
- -rm -f headers.h.gch
-rm -f bitcoind.exe
+ -rm -f obj-test/*.o
-rm -f test_bitcoin.exe
+ -rm -f src/build.h
+
+FORCE:
diff --git a/src/makefile.mingw b/src/makefile.mingw
index c55e17a36e..917eb12fcf 100644
--- a/src/makefile.mingw
+++ b/src/makefile.mingw
@@ -23,10 +23,11 @@ LIBS= \
-l ssl \
-l crypto
-DEFS=-DWIN32 -D_WINDOWS -DNOPCH -DUSE_SSL -DBOOST_THREAD_USE_LIB
+DEFS=-DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB
DEBUGFLAGS=-g
CFLAGS=-mthreads -O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
+TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifdef USE_UPNP
INCLUDEPATHS += -I"C:\miniupnpc-1.6-mgw"
@@ -41,8 +42,10 @@ LIBS += -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell
HEADERS = $(wildcard *.h)
OBJS= \
+ obj/version.o \
obj/checkpoints.o \
obj/netbase.o \
+ obj/addrman.o \
obj/crypter.o \
obj/key.o \
obj/db.o \
@@ -56,7 +59,9 @@ OBJS= \
obj/rpcdump.o \
obj/script.o \
obj/util.o \
- obj/wallet.o
+ obj/wallet.o \
+ obj/walletdb.o \
+ obj/noui.o
all: bitcoind.exe
@@ -67,16 +72,16 @@ obj/%.o: %.cpp $(HEADERS)
bitcoind.exe: $(OBJS:obj/%=obj/%)
g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
-obj/test/test_bitcoin.o: $(wildcard test/*.cpp) $(HEADERS)
- g++ -c $(CFLAGS) -o $@ test/test_bitcoin.cpp
+TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp))
-test_bitcoin.exe: obj/test/test_bitcoin.o $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
- g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
+obj-test/%.o: test/%.cpp $(HEADERS)
+ g++ -c $(TESTDEFS) $(CFLAGS) -o $@ $<
+
+test_bitcoin.exe: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%))
+ g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ -lboost_unit_test_framework $(LIBS)
clean:
-del /Q bitcoind test_bitcoin
-del /Q obj\*
- -del /Q obj\nogui\*
- -del /Q obj\test\*
- -del /Q test\*.o
- -del /Q headers.h.gch
+ -del /Q obj-test\*
+ -del /Q build.h
diff --git a/src/makefile.osx b/src/makefile.osx
index 9943271a29..be95aab446 100644
--- a/src/makefile.osx
+++ b/src/makefile.osx
@@ -11,6 +11,7 @@ DEPSDIR=/opt/local
INCLUDEPATHS= \
-I"$(CURDIR)" \
+ -I"$(CURDIR)"/obj \
-I"$(DEPSDIR)/include" \
-I"$(DEPSDIR)/include/db48"
@@ -21,6 +22,9 @@ LIBPATHS= \
USE_UPNP:=1
LIBS= -dead_strip
+
+TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
+
ifdef STATIC
# Build STATIC if you are redistributing the bitcoind binary
TESTLIBS += \
@@ -49,17 +53,26 @@ LIBS += \
TESTDEFS += -DBOOST_TEST_DYN_LINK
endif
-DEFS=-DMAC_OSX -DMSG_NOSIGNAL=0 -DUSE_SSL
+DEFS=-DMAC_OSX -DMSG_NOSIGNAL=0
+
+ifdef RELEASE
+# Compile for maximum compatibility and smallest size.
+# This requires that dependencies are compiled
+# the same way.
+CFLAGS = -mmacosx-version-min=10.5 -arch i386 -O3
+else
+CFLAGS = -g
+endif
-DEBUGFLAGS=-g
# ppc doesn't work because we don't support big-endian
-CFLAGS=-mmacosx-version-min=10.5 -arch i386 -O3 \
- -Wextra -Wno-sign-compare -Wno-char-subscripts -Wno-invalid-offsetof -Wformat-security \
+CFLAGS += -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wformat-security \
$(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
OBJS= \
+ obj/version.o \
obj/checkpoints.o \
obj/netbase.o \
+ obj/addrman.o \
obj/crypter.o \
obj/key.o \
obj/db.o \
@@ -73,7 +86,9 @@ OBJS= \
obj/rpcdump.o \
obj/script.o \
obj/util.o \
- obj/wallet.o
+ obj/wallet.o \
+ obj/walletdb.o \
+ obj/noui.o
ifdef USE_UPNP
DEFS += -DUSE_UPNP=$(USE_UPNP)
@@ -90,6 +105,11 @@ all: bitcoind
-include obj/*.P
-include obj-test/*.P
+obj/build.h: FORCE
+ ../share/genbuild.sh obj/build.h
+version.cpp: obj/build.h
+DEFS += -DHAVE_BUILD_INFO
+
obj/%.o: %.cpp
$(CXX) -c $(CFLAGS) -MMD -o $@ $<
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
@@ -118,3 +138,6 @@ clean:
-rm -f obj-test/*.o
-rm -f obj/*.P
-rm -f obj-test/*.P
+ -rm -f src/build.h
+
+FORCE:
diff --git a/src/makefile.unix b/src/makefile.unix
index 41452dec81..90be398976 100644
--- a/src/makefile.unix
+++ b/src/makefile.unix
@@ -4,10 +4,12 @@
USE_UPNP:=0
-DEFS=-DNOPCH
+DEFS=
-DEFS += $(addprefix -I,$(CURDIR) $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH))
-LIBS += $(addprefix -l,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
+DEFS += $(addprefix -I,$(CURDIR) $(CURDIR)/obj $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH))
+LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
+
+TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
LMODE = dynamic
LMODE2 = dynamic
@@ -21,7 +23,7 @@ else
endif
# for boost 1.37, add -mt to the boost libraries
-LIBS= \
+LIBS += \
-Wl,-B$(LMODE) \
-l boost_system$(BOOST_LIB_SUFFIX) \
-l boost_filesystem$(BOOST_LIB_SUFFIX) \
@@ -39,10 +41,6 @@ ifneq (${USE_UPNP}, -)
DEFS += -DUSE_UPNP=$(USE_UPNP)
endif
-ifneq (${USE_SSL}, 0)
- DEFS += -DUSE_SSL
-endif
-
LIBS+= \
-Wl,-B$(LMODE2) \
-l z \
@@ -85,12 +83,14 @@ LIBS+= \
DEBUGFLAGS=-g
CXXFLAGS=-O2
-xCXXFLAGS=-pthread -Wextra -Wno-sign-compare -Wno-char-subscripts -Wno-invalid-offsetof -Wformat-security \
+xCXXFLAGS=-pthread -Wall -Wextra -Wno-sign-compare -Wno-invalid-offsetof -Wno-unused-parameter -Wformat -Wformat-security \
$(DEBUGFLAGS) $(DEFS) $(HARDENING) $(CXXFLAGS)
OBJS= \
+ obj/version.o \
obj/checkpoints.o \
obj/netbase.o \
+ obj/addrman.o \
obj/crypter.o \
obj/key.o \
obj/db.o \
@@ -104,7 +104,9 @@ OBJS= \
obj/rpcdump.o \
obj/script.o \
obj/util.o \
- obj/wallet.o
+ obj/wallet.o \
+ obj/walletdb.o \
+ obj/noui.o
all: bitcoind
@@ -113,6 +115,11 @@ all: bitcoind
-include obj/*.P
-include obj-test/*.P
+obj/build.h: FORCE
+ ../share/genbuild.sh obj/build.h
+version.cpp: obj/build.h
+DEFS += -DHAVE_BUILD_INFO
+
obj/%.o: %.cpp
$(CXX) -c $(xCXXFLAGS) -MMD -o $@ $<
@cp $(@:%.o=%.d) $(@:%.o=%.P); \
@@ -141,3 +148,6 @@ clean:
-rm -f obj-test/*.o
-rm -f obj/*.P
-rm -f obj-test/*.P
+ -rm -f src/build.h
+
+FORCE:
diff --git a/src/mruset.h b/src/mruset.h
new file mode 100644
index 0000000000..b21f18563c
--- /dev/null
+++ b/src/mruset.h
@@ -0,0 +1,64 @@
+// Copyright (c) 2012 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#ifndef BITCOIN_MRUSET_H
+#define BITCOIN_MRUSET_H
+
+#include <set>
+#include <deque>
+
+/** 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::deque<T> queue;
+ size_type nMaxSize;
+
+public:
+ mruset(size_type nMaxSizeIn = 0) { nMaxSize = nMaxSizeIn; }
+ 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); }
+ 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 (nMaxSize && queue.size() == nMaxSize)
+ {
+ set.erase(queue.front());
+ queue.pop_front();
+ }
+ queue.push_back(x);
+ }
+ return ret;
+ }
+ size_type max_size() const { return nMaxSize; }
+ size_type max_size(size_type s)
+ {
+ if (s)
+ while (queue.size() >= s)
+ {
+ set.erase(queue.front());
+ queue.pop_front();
+ }
+ nMaxSize = s;
+ return nMaxSize;
+ }
+};
+
+#endif
diff --git a/src/net.cpp b/src/net.cpp
index a7eaaaceb6..92b4a3173f 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -1,14 +1,15 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
#include "irc.h"
#include "db.h"
#include "net.h"
#include "init.h"
#include "strlcpy.h"
+#include "addrman.h"
+#include "ui_interface.h"
#ifdef WIN32
#include <string.h>
@@ -38,24 +39,22 @@ bool OpenNetworkConnection(const CAddress& addrConnect);
-
-
//
// Global state variables
//
bool fClient = false;
bool fAllowDNS = false;
+static bool fUseUPnP = false;
uint64 nLocalServices = (fClient ? 0 : NODE_NETWORK);
CAddress addrLocalHost(CService("0.0.0.0", 0), nLocalServices);
static CNode* pnodeLocalHost = NULL;
uint64 nLocalHostNonce = 0;
-array<int, 10> vnThreadsRunning;
+array<int, THREAD_MAX> vnThreadsRunning;
static SOCKET hListenSocket = INVALID_SOCKET;
+CAddrMan addrman;
vector<CNode*> vNodes;
CCriticalSection cs_vNodes;
-map<vector<unsigned char>, CAddress> mapAddresses;
-CCriticalSection cs_mapAddresses;
map<CInv, CDataStream> mapRelay;
deque<pair<int64, CInv> > vRelayExpiration;
CCriticalSection cs_mapRelay;
@@ -65,7 +64,9 @@ map<CInv, int64> mapAlreadyAskedFor;
set<CNetAddr> setservAddNodeAddresses;
CCriticalSection cs_setservAddNodeAddresses;
-
+static CWaitableCriticalSection csOutbound;
+static int nOutbound = 0;
+static CConditionVariable condOutbound;
unsigned short GetListenPort()
@@ -86,6 +87,57 @@ void CNode::PushGetBlocks(CBlockIndex* pindexBegin, uint256 hashEnd)
+bool RecvLine(SOCKET hSocket, string& strLine)
+{
+ strLine = "";
+ loop
+ {
+ char c;
+ int nBytes = recv(hSocket, &c, 1, 0);
+ if (nBytes > 0)
+ {
+ if (c == '\n')
+ continue;
+ if (c == '\r')
+ return true;
+ strLine += c;
+ if (strLine.size() >= 9000)
+ return true;
+ }
+ else if (nBytes <= 0)
+ {
+ if (fShutdown)
+ return false;
+ if (nBytes < 0)
+ {
+ int nErr = WSAGetLastError();
+ if (nErr == WSAEMSGSIZE)
+ continue;
+ if (nErr == WSAEWOULDBLOCK || nErr == WSAEINTR || nErr == WSAEINPROGRESS)
+ {
+ Sleep(10);
+ continue;
+ }
+ }
+ if (!strLine.empty())
+ return true;
+ if (nBytes == 0)
+ {
+ // socket closed
+ printf("socket closed\n");
+ return false;
+ }
+ else
+ {
+ // socket error
+ int nErr = WSAGetLastError();
+ printf("recv failed: %d\n", nErr);
+ return false;
+ }
+ }
+ }
+}
+
bool GetMyExternalIP2(const CService& addrConnect, const char* pszGet, const char* pszKeyword, CNetAddr& ipRet)
@@ -110,14 +162,14 @@ bool GetMyExternalIP2(const CService& addrConnect, const char* pszGet, const cha
}
if (pszKeyword == NULL)
break;
- if (strLine.find(pszKeyword) != -1)
+ if (strLine.find(pszKeyword) != string::npos)
{
strLine = strLine.substr(strLine.find(pszKeyword) + strlen(pszKeyword));
break;
}
}
closesocket(hSocket);
- if (strLine.find("<") != -1)
+ if (strLine.find("<") != string::npos)
strLine = strLine.substr(0, strLine.find("<"));
strLine = strLine.substr(strspn(strLine.c_str(), " \t\n\r"));
while (strLine.size() > 0 && isspace(strLine[strLine.size()-1]))
@@ -200,7 +252,7 @@ bool GetMyExternalIP(CNetAddr& ipRet)
void ThreadGetMyExternalIP(void* parg)
{
// Wait for IRC to get it first
- if (!GetBoolArg("-noirc"))
+ if (GetBoolArg("-irc", false))
{
for (int i = 0; i < 2 * 60; i++)
{
@@ -220,121 +272,10 @@ void ThreadGetMyExternalIP(void* parg)
// setAddrKnown automatically filters any duplicate sends.
CAddress addr(addrLocalHost);
addr.nTime = GetAdjustedTime();
- CRITICAL_BLOCK(cs_vNodes)
+ {
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
pnode->PushAddress(addr);
- }
- }
-}
-
-
-
-
-
-bool AddAddress(CAddress addr, int64 nTimePenalty, CAddrDB *pAddrDB)
-{
- if (!addr.IsRoutable())
- return false;
- if ((CService)addr == (CService)addrLocalHost)
- return false;
- addr.nTime = max((int64)0, (int64)addr.nTime - nTimePenalty);
- bool fUpdated = false;
- bool fNew = false;
- CAddress addrFound = addr;
-
- CRITICAL_BLOCK(cs_mapAddresses)
- {
- map<vector<unsigned char>, CAddress>::iterator it = mapAddresses.find(addr.GetKey());
- if (it == mapAddresses.end())
- {
- // New address
- printf("AddAddress(%s)\n", addr.ToString().c_str());
- mapAddresses.insert(make_pair(addr.GetKey(), addr));
- fUpdated = true;
- fNew = true;
- }
- else
- {
- addrFound = (*it).second;
- if ((addrFound.nServices | addr.nServices) != addrFound.nServices)
- {
- // Services have been added
- addrFound.nServices |= addr.nServices;
- fUpdated = true;
- }
- bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < 24 * 60 * 60);
- int64 nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60);
- if (addrFound.nTime < addr.nTime - nUpdateInterval)
- {
- // Periodically update most recently seen time
- addrFound.nTime = addr.nTime;
- fUpdated = true;
- }
- }
- }
- // There is a nasty deadlock bug if this is done inside the cs_mapAddresses
- // CRITICAL_BLOCK:
- // Thread 1: begin db transaction (locks inside-db-mutex)
- // then AddAddress (locks cs_mapAddresses)
- // Thread 2: AddAddress (locks cs_mapAddresses)
- // ... then db operation hangs waiting for inside-db-mutex
- if (fUpdated)
- {
- if (pAddrDB)
- pAddrDB->WriteAddress(addrFound);
- else
- CAddrDB().WriteAddress(addrFound);
- }
- return fNew;
-}
-
-void AddressCurrentlyConnected(const CService& addr)
-{
- CAddress *paddrFound = NULL;
-
- CRITICAL_BLOCK(cs_mapAddresses)
- {
- // Only if it's been published already
- map<vector<unsigned char>, CAddress>::iterator it = mapAddresses.find(addr.GetKey());
- if (it != mapAddresses.end())
- paddrFound = &(*it).second;
- }
-
- if (paddrFound)
- {
- int64 nUpdateInterval = 20 * 60;
- if (paddrFound->nTime < GetAdjustedTime() - nUpdateInterval)
- {
- // Periodically update most recently seen time
- paddrFound->nTime = GetAdjustedTime();
- CAddrDB addrdb;
- addrdb.WriteAddress(*paddrFound);
- }
- }
-}
-
-
-
-
-
-void AbandonRequests(void (*fn)(void*, CDataStream&), void* param1)
-{
- // If the dialog might get closed before the reply comes back,
- // call this in the destructor so it doesn't get called after it's deleted.
- CRITICAL_BLOCK(cs_vNodes)
- {
- BOOST_FOREACH(CNode* pnode, vNodes)
- {
- CRITICAL_BLOCK(pnode->cs_mapRequests)
- {
- for (map<uint256, CRequestTracker>::iterator mi = pnode->mapRequests.begin(); mi != pnode->mapRequests.end();)
- {
- CRequestTracker& tracker = (*mi).second;
- if (tracker.fn == fn && tracker.param1 == param1)
- pnode->mapRequests.erase(mi++);
- else
- mi++;
- }
}
}
}
@@ -344,74 +285,11 @@ void AbandonRequests(void (*fn)(void*, CDataStream&), void* param1)
-
-
-//
-// Subscription methods for the broadcast and subscription system.
-// Channel numbers are message numbers, i.e. MSG_TABLE and MSG_PRODUCT.
-//
-// The subscription system uses a meet-in-the-middle strategy.
-// With 100,000 nodes, if senders broadcast to 1000 random nodes and receivers
-// subscribe to 1000 random nodes, 99.995% (1 - 0.99^1000) of messages will get through.
-//
-
-bool AnySubscribed(unsigned int nChannel)
-{
- if (pnodeLocalHost->IsSubscribed(nChannel))
- return true;
- CRITICAL_BLOCK(cs_vNodes)
- BOOST_FOREACH(CNode* pnode, vNodes)
- if (pnode->IsSubscribed(nChannel))
- return true;
- return false;
-}
-
-bool CNode::IsSubscribed(unsigned int nChannel)
+void AddressCurrentlyConnected(const CService& addr)
{
- if (nChannel >= vfSubscribe.size())
- return false;
- return vfSubscribe[nChannel];
+ addrman.Connected(addr);
}
-void CNode::Subscribe(unsigned int nChannel, unsigned int nHops)
-{
- if (nChannel >= vfSubscribe.size())
- return;
-
- if (!AnySubscribed(nChannel))
- {
- // Relay subscribe
- CRITICAL_BLOCK(cs_vNodes)
- BOOST_FOREACH(CNode* pnode, vNodes)
- if (pnode != this)
- pnode->PushMessage("subscribe", nChannel, nHops);
- }
-
- vfSubscribe[nChannel] = true;
-}
-
-void CNode::CancelSubscribe(unsigned int nChannel)
-{
- if (nChannel >= vfSubscribe.size())
- return;
-
- // Prevent from relaying cancel if wasn't subscribed
- if (!vfSubscribe[nChannel])
- return;
- vfSubscribe[nChannel] = false;
-
- if (!AnySubscribed(nChannel))
- {
- // Relay subscription cancel
- CRITICAL_BLOCK(cs_vNodes)
- BOOST_FOREACH(CNode* pnode, vNodes)
- if (pnode != this)
- pnode->PushMessage("sub-cancel", nChannel);
- }
-}
-
-
-
@@ -420,8 +298,8 @@ void CNode::CancelSubscribe(unsigned int nChannel)
CNode* FindNode(const CNetAddr& ip)
{
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
if ((CNetAddr)pnode->addr == ip)
return (pnode);
@@ -431,8 +309,8 @@ CNode* FindNode(const CNetAddr& ip)
CNode* FindNode(const CService& addr)
{
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
if ((CService)pnode->addr == addr)
return (pnode);
@@ -457,13 +335,11 @@ CNode* ConnectNode(CAddress addrConnect, int64 nTimeout)
}
/// debug print
- printf("trying connection %s lastseen=%.1fhrs lasttry=%.1fhrs\n",
+ printf("trying connection %s lastseen=%.1fhrs\n",
addrConnect.ToString().c_str(),
- (double)(addrConnect.nTime - GetAdjustedTime())/3600.0,
- (double)(addrConnect.nLastTry - GetAdjustedTime())/3600.0);
+ (double)(addrConnect.nTime - GetAdjustedTime())/3600.0);
- CRITICAL_BLOCK(cs_mapAddresses)
- mapAddresses[addrConnect.GetKey()].nLastTry = GetAdjustedTime();
+ addrman.Attempt(addrConnect);
// Connect
SOCKET hSocket;
@@ -488,8 +364,14 @@ CNode* ConnectNode(CAddress addrConnect, int64 nTimeout)
pnode->AddRef(nTimeout);
else
pnode->AddRef();
- CRITICAL_BLOCK(cs_vNodes)
+ {
+ LOCK(cs_vNodes);
vNodes.push_back(pnode);
+ }
+ {
+ WAITABLE_LOCK(csOutbound);
+ nOutbound++;
+ }
pnode->nTimeConnected = GetTime();
return pnode;
@@ -510,18 +392,12 @@ void CNode::CloseSocketDisconnect()
printf("disconnecting node %s\n", addr.ToString().c_str());
closesocket(hSocket);
hSocket = INVALID_SOCKET;
+ vRecv.clear();
}
}
void CNode::Cleanup()
{
- // All of a nodes broadcasts and subscriptions are automatically torn down
- // when it goes down, so a node has to stay up to keep its broadcast going.
-
- // Cancel subscriptions
- for (unsigned int nChannel = 0; nChannel < vfSubscribe.size(); nChannel++)
- if (vfSubscribe[nChannel])
- CancelSubscribe(nChannel);
}
@@ -530,7 +406,7 @@ void CNode::PushVersion()
/// when NTP implemented, change to just nTime = GetAdjustedTime()
int64 nTime = (fInbound ? GetAdjustedTime() : GetTime());
CAddress addrYou = (fUseProxy ? CAddress(CService("0.0.0.0",0)) : addr);
- CAddress addrMe = (fUseProxy ? CAddress(CService("0.0.0.0",0)) : addrLocalHost);
+ CAddress addrMe = (fUseProxy || !addrLocalHost.IsRoutable() ? CAddress(CService("0.0.0.0",0)) : addrLocalHost);
RAND_bytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce));
PushMessage("version", PROTOCOL_VERSION, nLocalServices, nTime, addrYou, addrMe,
nLocalHostNonce, FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, std::vector<string>()), nBestHeight);
@@ -551,8 +427,8 @@ void CNode::ClearBanned()
bool CNode::IsBanned(CNetAddr ip)
{
bool fResult = false;
- CRITICAL_BLOCK(cs_setBanned)
{
+ LOCK(cs_setBanned);
std::map<CNetAddr, int64>::iterator i = setBanned.find(ip);
if (i != setBanned.end())
{
@@ -576,9 +452,11 @@ bool CNode::Misbehaving(int howmuch)
if (nMisbehavior >= GetArg("-banscore", 100))
{
int64 banTime = GetTime()+GetArg("-bantime", 60*60*24); // Default 24-hour ban
- CRITICAL_BLOCK(cs_setBanned)
+ {
+ LOCK(cs_setBanned);
if (setBanned[addr] < banTime)
setBanned[addr] = banTime;
+ }
CloseSocketDisconnect();
printf("Disconnected %s for misbehavior (score=%d)\n", addr.ToString().c_str(), nMisbehavior);
return true;
@@ -602,15 +480,15 @@ void ThreadSocketHandler(void* parg)
IMPLEMENT_RANDOMIZE_STACK(ThreadSocketHandler(parg));
try
{
- vnThreadsRunning[0]++;
+ vnThreadsRunning[THREAD_SOCKETHANDLER]++;
ThreadSocketHandler2(parg);
- vnThreadsRunning[0]--;
+ vnThreadsRunning[THREAD_SOCKETHANDLER]--;
}
catch (std::exception& e) {
- vnThreadsRunning[0]--;
+ vnThreadsRunning[THREAD_SOCKETHANDLER]--;
PrintException(&e, "ThreadSocketHandler()");
} catch (...) {
- vnThreadsRunning[0]--;
+ vnThreadsRunning[THREAD_SOCKETHANDLER]--;
throw; // support pthread_cancel()
}
printf("ThreadSocketHandler exiting\n");
@@ -620,15 +498,15 @@ void ThreadSocketHandler2(void* parg)
{
printf("ThreadSocketHandler started\n");
list<CNode*> vNodesDisconnected;
- int nPrevNodeCount = 0;
+ unsigned int nPrevNodeCount = 0;
loop
{
//
// Disconnect nodes
//
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
// Disconnect unused nodes
vector<CNode*> vNodesCopy = vNodes;
BOOST_FOREACH(CNode* pnode, vNodesCopy)
@@ -639,6 +517,15 @@ void ThreadSocketHandler2(void* parg)
// remove from vNodes
vNodes.erase(remove(vNodes.begin(), vNodes.end(), pnode), vNodes.end());
+ if (!pnode->fInbound)
+ {
+ WAITABLE_LOCK(csOutbound);
+ nOutbound--;
+
+ // Connection slot(s) were removed, notify connection creator(s)
+ NOTIFY(condOutbound);
+ }
+
// close socket and cleanup
pnode->CloseSocketDisconnect();
pnode->Cleanup();
@@ -659,11 +546,23 @@ void ThreadSocketHandler2(void* parg)
if (pnode->GetRefCount() <= 0)
{
bool fDelete = false;
- TRY_CRITICAL_BLOCK(pnode->cs_vSend)
- TRY_CRITICAL_BLOCK(pnode->cs_vRecv)
- TRY_CRITICAL_BLOCK(pnode->cs_mapRequests)
- TRY_CRITICAL_BLOCK(pnode->cs_inventory)
- fDelete = true;
+ {
+ TRY_LOCK(pnode->cs_vSend, lockSend);
+ if (lockSend)
+ {
+ TRY_LOCK(pnode->cs_vRecv, lockRecv);
+ if (lockRecv)
+ {
+ TRY_LOCK(pnode->cs_mapRequests, lockReq);
+ if (lockReq)
+ {
+ TRY_LOCK(pnode->cs_inventory, lockInv);
+ if (lockInv)
+ fDelete = true;
+ }
+ }
+ }
+ }
if (fDelete)
{
vNodesDisconnected.remove(pnode);
@@ -697,8 +596,8 @@ void ThreadSocketHandler2(void* parg)
if(hListenSocket != INVALID_SOCKET)
FD_SET(hListenSocket, &fdsetRecv);
hSocketMax = max(hSocketMax, hListenSocket);
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
{
if (pnode->hSocket == INVALID_SOCKET)
@@ -706,15 +605,17 @@ void ThreadSocketHandler2(void* parg)
FD_SET(pnode->hSocket, &fdsetRecv);
FD_SET(pnode->hSocket, &fdsetError);
hSocketMax = max(hSocketMax, pnode->hSocket);
- TRY_CRITICAL_BLOCK(pnode->cs_vSend)
- if (!pnode->vSend.empty())
+ {
+ TRY_LOCK(pnode->cs_vSend, lockSend);
+ if (lockSend && !pnode->vSend.empty())
FD_SET(pnode->hSocket, &fdsetSend);
+ }
}
}
- vnThreadsRunning[0]--;
+ vnThreadsRunning[THREAD_SOCKETHANDLER]--;
int nSelect = select(hSocketMax + 1, &fdsetRecv, &fdsetSend, &fdsetError, &timeout);
- vnThreadsRunning[0]++;
+ vnThreadsRunning[THREAD_SOCKETHANDLER]++;
if (fShutdown)
return;
if (nSelect == SOCKET_ERROR)
@@ -723,7 +624,7 @@ void ThreadSocketHandler2(void* parg)
if (hSocketMax > -1)
{
printf("socket select error %d\n", nErr);
- for (int i = 0; i <= hSocketMax; i++)
+ for (unsigned int i = 0; i <= hSocketMax; i++)
FD_SET(i, &fdsetRecv);
}
FD_ZERO(&fdsetSend);
@@ -740,13 +641,19 @@ void ThreadSocketHandler2(void* parg)
struct sockaddr_in sockaddr;
socklen_t len = sizeof(sockaddr);
SOCKET hSocket = accept(hListenSocket, (struct sockaddr*)&sockaddr, &len);
- CAddress addr(sockaddr);
+ CAddress addr;
int nInbound = 0;
- CRITICAL_BLOCK(cs_vNodes)
+ if (hSocket != INVALID_SOCKET)
+ addr = CAddress(sockaddr);
+
+ {
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
- if (pnode->fInbound)
- nInbound++;
+ if (pnode->fInbound)
+ nInbound++;
+ }
+
if (hSocket == INVALID_SOCKET)
{
if (WSAGetLastError() != WSAEWOULDBLOCK)
@@ -754,13 +661,15 @@ void ThreadSocketHandler2(void* parg)
}
else if (nInbound >= GetArg("-maxconnections", 125) - MAX_OUTBOUND_CONNECTIONS)
{
- CRITICAL_BLOCK(cs_setservAddNodeAddresses)
+ {
+ LOCK(cs_setservAddNodeAddresses);
if (!setservAddNodeAddresses.count(addr))
closesocket(hSocket);
+ }
}
else if (CNode::IsBanned(addr))
{
- printf("connetion from %s dropped (banned)\n", addr.ToString().c_str());
+ printf("connection from %s dropped (banned)\n", addr.ToString().c_str());
closesocket(hSocket);
}
else
@@ -768,8 +677,10 @@ void ThreadSocketHandler2(void* parg)
printf("accepted connection %s\n", addr.ToString().c_str());
CNode* pnode = new CNode(hSocket, addr, true);
pnode->AddRef();
- CRITICAL_BLOCK(cs_vNodes)
+ {
+ LOCK(cs_vNodes);
vNodes.push_back(pnode);
+ }
}
}
@@ -778,8 +689,8 @@ void ThreadSocketHandler2(void* parg)
// Service each socket
//
vector<CNode*> vNodesCopy;
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
vNodesCopy = vNodes;
BOOST_FOREACH(CNode* pnode, vNodesCopy)
pnode->AddRef();
@@ -796,7 +707,8 @@ void ThreadSocketHandler2(void* parg)
continue;
if (FD_ISSET(pnode->hSocket, &fdsetRecv) || FD_ISSET(pnode->hSocket, &fdsetError))
{
- TRY_CRITICAL_BLOCK(pnode->cs_vRecv)
+ TRY_LOCK(pnode->cs_vRecv, lockRecv);
+ if (lockRecv)
{
CDataStream& vRecv = pnode->vRecv;
unsigned int nPos = vRecv.size();
@@ -845,7 +757,8 @@ void ThreadSocketHandler2(void* parg)
continue;
if (FD_ISSET(pnode->hSocket, &fdsetSend))
{
- TRY_CRITICAL_BLOCK(pnode->cs_vSend)
+ TRY_LOCK(pnode->cs_vSend, lockSend);
+ if (lockSend)
{
CDataStream& vSend = pnode->vSend;
if (!vSend.empty())
@@ -899,8 +812,8 @@ void ThreadSocketHandler2(void* parg)
}
}
}
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodesCopy)
pnode->Release();
}
@@ -923,15 +836,15 @@ void ThreadMapPort(void* parg)
IMPLEMENT_RANDOMIZE_STACK(ThreadMapPort(parg));
try
{
- vnThreadsRunning[5]++;
+ vnThreadsRunning[THREAD_UPNP]++;
ThreadMapPort2(parg);
- vnThreadsRunning[5]--;
+ vnThreadsRunning[THREAD_UPNP]--;
}
catch (std::exception& e) {
- vnThreadsRunning[5]--;
+ vnThreadsRunning[THREAD_UPNP]--;
PrintException(&e, "ThreadMapPort()");
} catch (...) {
- vnThreadsRunning[5]--;
+ vnThreadsRunning[THREAD_UPNP]--;
PrintException(NULL, "ThreadMapPort()");
}
printf("ThreadMapPort exiting\n");
@@ -965,6 +878,26 @@ void ThreadMapPort2(void* parg)
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
if (r == 1)
{
+ if (!addrLocalHost.IsRoutable())
+ {
+ char externalIPAddress[40];
+ r = UPNP_GetExternalIPAddress(urls.controlURL, data.first.servicetype, externalIPAddress);
+ if(r != UPNPCOMMAND_SUCCESS)
+ printf("UPnP: GetExternalIPAddress() returned %d\n", r);
+ else
+ {
+ if(externalIPAddress[0])
+ {
+ printf("UPnP: ExternalIPAddress = %s\n", externalIPAddress);
+ CAddress addrExternalFromUPnP(CService(externalIPAddress, 0), nLocalServices);
+ if (addrExternalFromUPnP.IsRoutable())
+ addrLocalHost = addrExternalFromUPnP;
+ }
+ else
+ printf("UPnP: GetExternalIPAddress failed.\n");
+ }
+ }
+
string strDesc = "Bitcoin " + FormatFullVersion();
#ifndef UPNPDISCOVER_SUCCESS
/* miniupnpc 1.5 */
@@ -1030,9 +963,8 @@ void MapPort(bool fMapPort)
if (fUseUPnP != fMapPort)
{
fUseUPnP = fMapPort;
- WriteSetting("fUseUPnP", fUseUPnP);
}
- if (fUseUPnP && vnThreadsRunning[5] < 1)
+ if (fUseUPnP && vnThreadsRunning[THREAD_UPNP] < 1)
{
if (!CreateThread(ThreadMapPort, NULL))
printf("Error: ThreadMapPort(ThreadMapPort) failed\n");
@@ -1053,12 +985,15 @@ void MapPort(bool /* unused fMapPort */)
-
-static const char *strDNSSeed[] = {
- "bitseed.xf2.org",
- "dnsseed.bluematt.me",
- "seed.bitcoin.sipa.be",
- "dnsseed.bitcoin.dashjr.org",
+// DNS seeds
+// Each pair gives a source name and a seed name.
+// The first name is used as information source for addrman.
+// The second name should resolve to a list of seed addresses.
+static const char *strDNSSeed[][2] = {
+ {"xf2.org", "bitseed.xf2.org"},
+ {"bluematt.me", "dnsseed.bluematt.me"},
+ {"bitcoin.sipa.be", "seed.bitcoin.sipa.be"},
+ {"dashjr.org", "dnsseed.bitcoin.dashjr.org"},
};
void ThreadDNSAddressSeed(void* parg)
@@ -1066,15 +1001,15 @@ void ThreadDNSAddressSeed(void* parg)
IMPLEMENT_RANDOMIZE_STACK(ThreadDNSAddressSeed(parg));
try
{
- vnThreadsRunning[6]++;
+ vnThreadsRunning[THREAD_DNSSEED]++;
ThreadDNSAddressSeed2(parg);
- vnThreadsRunning[6]--;
+ vnThreadsRunning[THREAD_DNSSEED]--;
}
catch (std::exception& e) {
- vnThreadsRunning[6]--;
+ vnThreadsRunning[THREAD_DNSSEED]--;
PrintException(&e, "ThreadDNSAddressSeed()");
} catch (...) {
- vnThreadsRunning[6]--;
+ vnThreadsRunning[THREAD_DNSSEED]--;
throw; // support pthread_cancel()
}
printf("ThreadDNSAddressSeed exiting\n");
@@ -1089,24 +1024,21 @@ void ThreadDNSAddressSeed2(void* parg)
{
printf("Loading addresses from DNS seeds (could take a while)\n");
- for (int seed_idx = 0; seed_idx < ARRAYLEN(strDNSSeed); seed_idx++) {
+ for (unsigned int seed_idx = 0; seed_idx < ARRAYLEN(strDNSSeed); seed_idx++) {
vector<CNetAddr> vaddr;
- if (LookupHost(strDNSSeed[seed_idx], vaddr))
+ vector<CAddress> vAdd;
+ if (LookupHost(strDNSSeed[seed_idx][1], vaddr))
{
- CAddrDB addrDB;
- addrDB.TxnBegin();
- BOOST_FOREACH (CNetAddr& ip, vaddr)
+ BOOST_FOREACH(CNetAddr& ip, vaddr)
{
- if (ip.IsRoutable())
- {
- CAddress addr(CService(ip, GetDefaultPort()), NODE_NETWORK);
- addr.nTime = 0;
- AddAddress(addr, 0, &addrDB);
- found++;
- }
+ int nOneDay = 24*3600;
+ CAddress addr = CAddress(CService(ip, GetDefaultPort()));
+ addr.nTime = GetTime() - 3*nOneDay - GetRand(4*nOneDay); // use a random age between 3 and 7 days old
+ vAdd.push_back(addr);
+ found++;
}
- addrDB.TxnCommit(); // Save addresses (it's ok if this fails)
}
+ addrman.Add(vAdd, CNetAddr(strDNSSeed[seed_idx][0], true));
}
}
@@ -1205,22 +1137,52 @@ unsigned int pnSeed[] =
0xc461d84a, 0xb2dbe247,
};
+void DumpAddresses()
+{
+ CAddrDB adb;
+ adb.WriteAddrman(addrman);
+}
+void ThreadDumpAddress2(void* parg)
+{
+ vnThreadsRunning[THREAD_DUMPADDRESS]++;
+ while (!fShutdown)
+ {
+ DumpAddresses();
+ vnThreadsRunning[THREAD_DUMPADDRESS]--;
+ Sleep(100000);
+ vnThreadsRunning[THREAD_DUMPADDRESS]++;
+ }
+ vnThreadsRunning[THREAD_DUMPADDRESS]--;
+}
+
+void ThreadDumpAddress(void* parg)
+{
+ IMPLEMENT_RANDOMIZE_STACK(ThreadDumpAddress(parg));
+ try
+ {
+ ThreadDumpAddress2(parg);
+ }
+ catch (std::exception& e) {
+ PrintException(&e, "ThreadDumpAddress()");
+ }
+ printf("ThreadDumpAddress exiting\n");
+}
void ThreadOpenConnections(void* parg)
{
IMPLEMENT_RANDOMIZE_STACK(ThreadOpenConnections(parg));
try
{
- vnThreadsRunning[1]++;
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]++;
ThreadOpenConnections2(parg);
- vnThreadsRunning[1]--;
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]--;
}
catch (std::exception& e) {
- vnThreadsRunning[1]--;
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]--;
PrintException(&e, "ThreadOpenConnections()");
} catch (...) {
- vnThreadsRunning[1]--;
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]--;
PrintException(NULL, "ThreadOpenConnections()");
}
printf("ThreadOpenConnections exiting\n");
@@ -1254,41 +1216,29 @@ void ThreadOpenConnections2(void* parg)
int64 nStart = GetTime();
loop
{
- // Limit outbound connections
- vnThreadsRunning[1]--;
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]--;
Sleep(500);
- loop
- {
- int nOutbound = 0;
- CRITICAL_BLOCK(cs_vNodes)
- BOOST_FOREACH(CNode* pnode, vNodes)
- if (!pnode->fInbound)
- nOutbound++;
- int nMaxOutboundConnections = MAX_OUTBOUND_CONNECTIONS;
- nMaxOutboundConnections = min(nMaxOutboundConnections, (int)GetArg("-maxconnections", 125));
- if (nOutbound < nMaxOutboundConnections)
- break;
- Sleep(2000);
- if (fShutdown)
- return;
- }
- vnThreadsRunning[1]++;
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]++;
if (fShutdown)
return;
- bool fAddSeeds = false;
-
- CRITICAL_BLOCK(cs_mapAddresses)
+ // Limit outbound connections
+ int nMaxOutbound = min(MAX_OUTBOUND_CONNECTIONS, (int)GetArg("-maxconnections", 125));
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]--;
{
- // Add seed nodes if IRC isn't working
- bool fTOR = (fUseProxy && addrProxy.GetPort() == 9050);
- if (mapAddresses.empty() && (GetTime() - nStart > 60 || fTOR) && !fTestNet)
- fAddSeeds = true;
+ WAITABLE_LOCK(csOutbound);
+ WAIT(condOutbound, fShutdown || nOutbound < nMaxOutbound);
}
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]++;
+ if (fShutdown)
+ return;
- if (fAddSeeds)
+ // Add seed nodes if IRC isn't working
+ bool fTOR = (fUseProxy && addrProxy.GetPort() == 9050);
+ if (addrman.size()==0 && (GetTime() - nStart > 60 || fTOR) && !fTestNet)
{
- for (int i = 0; i < ARRAYLEN(pnSeed); i++)
+ std::vector<CAddress> vAdd;
+ for (unsigned int i = 0; i < ARRAYLEN(pnSeed); i++)
{
// It'll only connect to one or two seed nodes because once it connects,
// it'll get a pile of addresses with newer timestamps.
@@ -1299,78 +1249,49 @@ void ThreadOpenConnections2(void* parg)
memcpy(&ip, &pnSeed[i], sizeof(ip));
CAddress addr(CService(ip, GetDefaultPort()));
addr.nTime = GetTime()-GetRand(nOneWeek)-nOneWeek;
- AddAddress(addr);
+ vAdd.push_back(addr);
}
+ addrman.Add(vAdd, CNetAddr("127.0.0.1"));
}
//
// Choose an address to connect to based on most recently seen
//
CAddress addrConnect;
- int64 nBest = std::numeric_limits<int64>::min();
// Only connect to one address per a.b.?.? range.
// Do this here so we don't have to critsect vNodes inside mapAddresses critsect.
set<vector<unsigned char> > setConnected;
- CRITICAL_BLOCK(cs_vNodes)
+ {
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
setConnected.insert(pnode->addr.GetGroup());
+ }
int64 nANow = GetAdjustedTime();
- CRITICAL_BLOCK(cs_mapAddresses)
+ int nTries = 0;
+ loop
{
- BOOST_FOREACH(const PAIRTYPE(vector<unsigned char>, CAddress)& item, mapAddresses)
- {
- const CAddress& addr = item.second;
- if (!addr.IsIPv4() || !addr.IsValid() || setConnected.count(addr.GetGroup()))
- continue;
- int64 nSinceLastSeen = nANow - addr.nTime;
- int64 nSinceLastTry = nANow - addr.nLastTry;
-
- // Randomize the order in a deterministic way, putting the standard port first
- int64 nRandomizer = (uint64)(nStart * 4951 + addr.nLastTry * 9567851 + addr.GetHash()) % (2 * 60 * 60);
- if (addr.GetPort() != GetDefaultPort())
- nRandomizer += 2 * 60 * 60;
-
- // Last seen Base retry frequency
- // <1 hour 10 min
- // 1 hour 1 hour
- // 4 hours 2 hours
- // 24 hours 5 hours
- // 48 hours 7 hours
- // 7 days 13 hours
- // 30 days 27 hours
- // 90 days 46 hours
- // 365 days 93 hours
- int64 nDelay = (int64)(3600.0 * sqrt(fabs((double)nSinceLastSeen) / 3600.0) + nRandomizer);
-
- // Fast reconnect for one hour after last seen
- if (nSinceLastSeen < 60 * 60)
- nDelay = 10 * 60;
-
- // Limit retry frequency
- if (nSinceLastTry < nDelay)
- continue;
+ // use an nUnkBias between 10 (no outgoing connections) and 90 (8 outgoing connections)
+ CAddress addr = addrman.Select(10 + min(nOutbound,8)*10);
- // If we have IRC, we'll be notified when they first come online,
- // and again every 24 hours by the refresh broadcast.
- if (nGotIRCAddresses > 0 && vNodes.size() >= 2 && nSinceLastSeen > 24 * 60 * 60)
- continue;
+ // if we selected an invalid address, restart
+ if (!addr.IsIPv4() || !addr.IsValid() || setConnected.count(addr.GetGroup()) || addr == addrLocalHost)
+ break;
- // Only try the old stuff if we don't have enough connections
- if (vNodes.size() >= 8 && nSinceLastSeen > 24 * 60 * 60)
- continue;
+ nTries++;
- // If multiple addresses are ready, prioritize by time since
- // last seen and time since last tried.
- int64 nScore = min(nSinceLastTry, (int64)24 * 60 * 60) - nSinceLastSeen - nRandomizer;
- if (nScore > nBest)
- {
- nBest = nScore;
- addrConnect = addr;
- }
- }
+ // only consider very recently tried nodes after 30 failed attempts
+ if (nANow - addr.nLastTry < 600 && nTries < 30)
+ continue;
+
+ // do not allow non-default ports, unless after 50 invalid addresses selected already
+ if (addr.GetPort() != GetDefaultPort() && nTries < 50)
+ continue;
+
+ addrConnect = addr;
+ break;
}
if (addrConnect.IsValid())
@@ -1383,15 +1304,15 @@ void ThreadOpenAddedConnections(void* parg)
IMPLEMENT_RANDOMIZE_STACK(ThreadOpenAddedConnections(parg));
try
{
- vnThreadsRunning[7]++;
+ vnThreadsRunning[THREAD_ADDEDCONNECTIONS]++;
ThreadOpenAddedConnections2(parg);
- vnThreadsRunning[7]--;
+ vnThreadsRunning[THREAD_ADDEDCONNECTIONS]--;
}
catch (std::exception& e) {
- vnThreadsRunning[7]--;
+ vnThreadsRunning[THREAD_ADDEDCONNECTIONS]--;
PrintException(&e, "ThreadOpenAddedConnections()");
} catch (...) {
- vnThreadsRunning[7]--;
+ vnThreadsRunning[THREAD_ADDEDCONNECTIONS]--;
PrintException(NULL, "ThreadOpenAddedConnections()");
}
printf("ThreadOpenAddedConnections exiting\n");
@@ -1411,9 +1332,11 @@ void ThreadOpenAddedConnections2(void* parg)
if(Lookup(strAddNode.c_str(), vservNode, GetDefaultPort(), fAllowDNS, 0))
{
vservAddressesToAdd.push_back(vservNode);
- CRITICAL_BLOCK(cs_setservAddNodeAddresses)
+ {
+ LOCK(cs_setservAddNodeAddresses);
BOOST_FOREACH(CService& serv, vservNode)
setservAddNodeAddresses.insert(serv);
+ }
}
}
loop
@@ -1421,7 +1344,8 @@ void ThreadOpenAddedConnections2(void* parg)
vector<vector<CService> > vservConnectAddresses = vservAddressesToAdd;
// Attempt to connect to each IP for each addnode entry until at least one is successful per addnode entry
// (keeping in mind that addnode entries can have many IPs if fAllowDNS)
- CRITICAL_BLOCK(cs_vNodes)
+ {
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
for (vector<vector<CService> >::iterator it = vservConnectAddresses.begin(); it != vservConnectAddresses.end(); it++)
BOOST_FOREACH(CService& addrNode, *(it))
@@ -1431,6 +1355,7 @@ void ThreadOpenAddedConnections2(void* parg)
it--;
break;
}
+ }
BOOST_FOREACH(vector<CService>& vserv, vservConnectAddresses)
{
OpenNetworkConnection(CAddress(*(vserv.begin())));
@@ -1440,9 +1365,9 @@ void ThreadOpenAddedConnections2(void* parg)
}
if (fShutdown)
return;
- vnThreadsRunning[7]--;
+ vnThreadsRunning[THREAD_ADDEDCONNECTIONS]--;
Sleep(120000); // Retry every 2 minutes
- vnThreadsRunning[7]++;
+ vnThreadsRunning[THREAD_ADDEDCONNECTIONS]++;
if (fShutdown)
return;
}
@@ -1459,9 +1384,9 @@ bool OpenNetworkConnection(const CAddress& addrConnect)
FindNode((CNetAddr)addrConnect) || CNode::IsBanned(addrConnect))
return false;
- vnThreadsRunning[1]--;
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]--;
CNode* pnode = ConnectNode(addrConnect);
- vnThreadsRunning[1]++;
+ vnThreadsRunning[THREAD_OPENCONNECTIONS]++;
if (fShutdown)
return false;
if (!pnode)
@@ -1483,15 +1408,15 @@ void ThreadMessageHandler(void* parg)
IMPLEMENT_RANDOMIZE_STACK(ThreadMessageHandler(parg));
try
{
- vnThreadsRunning[2]++;
+ vnThreadsRunning[THREAD_MESSAGEHANDLER]++;
ThreadMessageHandler2(parg);
- vnThreadsRunning[2]--;
+ vnThreadsRunning[THREAD_MESSAGEHANDLER]--;
}
catch (std::exception& e) {
- vnThreadsRunning[2]--;
+ vnThreadsRunning[THREAD_MESSAGEHANDLER]--;
PrintException(&e, "ThreadMessageHandler()");
} catch (...) {
- vnThreadsRunning[2]--;
+ vnThreadsRunning[THREAD_MESSAGEHANDLER]--;
PrintException(NULL, "ThreadMessageHandler()");
}
printf("ThreadMessageHandler exiting\n");
@@ -1504,8 +1429,8 @@ void ThreadMessageHandler2(void* parg)
while (!fShutdown)
{
vector<CNode*> vNodesCopy;
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
vNodesCopy = vNodes;
BOOST_FOREACH(CNode* pnode, vNodesCopy)
pnode->AddRef();
@@ -1518,20 +1443,26 @@ void ThreadMessageHandler2(void* parg)
BOOST_FOREACH(CNode* pnode, vNodesCopy)
{
// Receive messages
- TRY_CRITICAL_BLOCK(pnode->cs_vRecv)
- ProcessMessages(pnode);
+ {
+ TRY_LOCK(pnode->cs_vRecv, lockRecv);
+ if (lockRecv)
+ ProcessMessages(pnode);
+ }
if (fShutdown)
return;
// Send messages
- TRY_CRITICAL_BLOCK(pnode->cs_vSend)
- SendMessages(pnode, pnode == pnodeTrickle);
+ {
+ TRY_LOCK(pnode->cs_vSend, lockSend);
+ if (lockSend)
+ SendMessages(pnode, pnode == pnodeTrickle);
+ }
if (fShutdown)
return;
}
- CRITICAL_BLOCK(cs_vNodes)
{
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodesCopy)
pnode->Release();
}
@@ -1539,11 +1470,11 @@ void ThreadMessageHandler2(void* parg)
// Wait and allow messages to bunch up.
// Reduce vnThreadsRunning so StopNode has permission to exit while
// we're sleeping, but we must always check fShutdown after doing this.
- vnThreadsRunning[2]--;
+ vnThreadsRunning[THREAD_MESSAGEHANDLER]--;
Sleep(100);
if (fRequestShutdown)
Shutdown(NULL);
- vnThreadsRunning[2]++;
+ vnThreadsRunning[THREAD_MESSAGEHANDLER]++;
if (fShutdown)
return;
}
@@ -1636,6 +1567,14 @@ bool BindListenPort(string& strError)
void StartNode(void* parg)
{
+#ifdef USE_UPNP
+#if USE_UPNP
+ fUseUPnP = GetBoolArg("-upnp", true);
+#else
+ fUseUPnP = GetBoolArg("-upnp", false);
+#endif
+#endif
+
if (pnodeLocalHost == NULL)
pnodeLocalHost = new CNode(INVALID_SOCKET, CAddress(CService("127.0.0.1", 0), nLocalServices));
@@ -1646,12 +1585,16 @@ void StartNode(void* parg)
{
vector<CNetAddr> vaddr;
if (LookupHost(pszHostName, vaddr))
+ {
BOOST_FOREACH (const CNetAddr &addr, vaddr)
+ {
if (!addr.IsLocal())
{
addrLocalHost.SetIP(addr);
break;
}
+ }
+ }
}
#else
// Get local host ip
@@ -1706,7 +1649,7 @@ void StartNode(void* parg)
// Start threads
//
- if (GetBoolArg("-nodnsseed"))
+ if (!GetBoolArg("-dnsseed", true))
printf("DNS seeding disabled\n");
else
if (!CreateThread(ThreadDNSAddressSeed, NULL))
@@ -1736,8 +1679,12 @@ void StartNode(void* parg)
if (!CreateThread(ThreadMessageHandler, NULL))
printf("Error: CreateThread(ThreadMessageHandler) failed\n");
+ // Dump network addresses
+ if (!CreateThread(ThreadDumpAddress, NULL))
+ printf("Error; CreateThread(ThreadDumpAddress) failed\n");
+
// Generate coins in the background
- GenerateBitcoins(fGenerateBitcoins, pwalletMain);
+ GenerateBitcoins(GetBoolArg("-gen", false), pwalletMain);
}
bool StopNode()
@@ -1746,26 +1693,31 @@ bool StopNode()
fShutdown = true;
nTransactionsUpdated++;
int64 nStart = GetTime();
- while (vnThreadsRunning[0] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0
- || (fHaveUPnP && vnThreadsRunning[5] > 0) || vnThreadsRunning[6] > 0 || vnThreadsRunning[7] > 0
- )
+ NOTIFY_ALL(condOutbound);
+ do
{
+ int nThreadsRunning = 0;
+ for (int n = 0; n < THREAD_MAX; n++)
+ nThreadsRunning += vnThreadsRunning[n];
+ if (nThreadsRunning == 0)
+ break;
if (GetTime() - nStart > 20)
break;
Sleep(20);
- }
- if (vnThreadsRunning[0] > 0) printf("ThreadSocketHandler still running\n");
- if (vnThreadsRunning[1] > 0) printf("ThreadOpenConnections still running\n");
- if (vnThreadsRunning[2] > 0) printf("ThreadMessageHandler still running\n");
- if (vnThreadsRunning[3] > 0) printf("ThreadBitcoinMiner still running\n");
- if (vnThreadsRunning[4] > 0) printf("ThreadRPCServer still running\n");
- if (fHaveUPnP && vnThreadsRunning[5] > 0) printf("ThreadMapPort still running\n");
- if (vnThreadsRunning[6] > 0) printf("ThreadDNSAddressSeed still running\n");
- if (vnThreadsRunning[7] > 0) printf("ThreadOpenAddedConnections still running\n");
- while (vnThreadsRunning[2] > 0 || vnThreadsRunning[4] > 0)
+ } while(true);
+ if (vnThreadsRunning[THREAD_SOCKETHANDLER] > 0) printf("ThreadSocketHandler still running\n");
+ if (vnThreadsRunning[THREAD_OPENCONNECTIONS] > 0) printf("ThreadOpenConnections still running\n");
+ if (vnThreadsRunning[THREAD_MESSAGEHANDLER] > 0) printf("ThreadMessageHandler still running\n");
+ if (vnThreadsRunning[THREAD_MINER] > 0) printf("ThreadBitcoinMiner still running\n");
+ if (vnThreadsRunning[THREAD_RPCSERVER] > 0) printf("ThreadRPCServer still running\n");
+ if (fHaveUPnP && vnThreadsRunning[THREAD_UPNP] > 0) printf("ThreadMapPort still running\n");
+ if (vnThreadsRunning[THREAD_DNSSEED] > 0) printf("ThreadDNSAddressSeed still running\n");
+ if (vnThreadsRunning[THREAD_ADDEDCONNECTIONS] > 0) printf("ThreadOpenAddedConnections still running\n");
+ if (vnThreadsRunning[THREAD_DUMPADDRESS] > 0) printf("ThreadDumpAddresses still running\n");
+ while (vnThreadsRunning[THREAD_MESSAGEHANDLER] > 0 || vnThreadsRunning[THREAD_RPCSERVER] > 0)
Sleep(20);
Sleep(50);
-
+ DumpAddresses();
return true;
}
diff --git a/src/net.h b/src/net.h
index 9f58d1e5d3..bad49a9f8f 100644
--- a/src/net.h
+++ b/src/net.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_NET_H
@@ -14,8 +14,10 @@
#include <arpa/inet.h>
#endif
+#include "mruset.h"
#include "netbase.h"
#include "protocol.h"
+#include "addrman.h"
class CAddrDB;
class CRequestTracker;
@@ -27,16 +29,13 @@ extern int nBestHeight;
inline unsigned int ReceiveBufferSize() { return 1000*GetArg("-maxreceivebuffer", 10*1000); }
inline unsigned int SendBufferSize() { return 1000*GetArg("-maxsendbuffer", 10*1000); }
-static const unsigned int PUBLISH_HOPS = 5;
+bool RecvLine(SOCKET hSocket, std::string& strLine);
bool GetMyExternalIP(CNetAddr& ipRet);
-bool AddAddress(CAddress addr, int64 nTimePenalty=0, CAddrDB *pAddrDB=NULL);
void AddressCurrentlyConnected(const CService& addr);
CNode* FindNode(const CNetAddr& ip);
CNode* FindNode(const CService& ip);
CNode* ConnectNode(CAddress addrConnect, int64 nTimeout=0);
-void AbandonRequests(void (*fn)(void*, CDataStream&), void* param1);
-bool AnySubscribed(unsigned int nChannel);
void MapPort(bool fMapPort);
bool BindListenPort(std::string& strError=REF(std::string()));
void StartNode(void* parg);
@@ -67,20 +66,32 @@ public:
};
-
-
+/** Thread types */
+enum threadId
+{
+ THREAD_SOCKETHANDLER,
+ THREAD_OPENCONNECTIONS,
+ THREAD_MESSAGEHANDLER,
+ THREAD_MINER,
+ THREAD_RPCSERVER,
+ THREAD_UPNP,
+ THREAD_DNSSEED,
+ THREAD_ADDEDCONNECTIONS,
+ THREAD_DUMPADDRESS,
+
+ THREAD_MAX
+};
extern bool fClient;
extern bool fAllowDNS;
extern uint64 nLocalServices;
extern CAddress addrLocalHost;
extern uint64 nLocalHostNonce;
-extern boost::array<int, 10> vnThreadsRunning;
+extern boost::array<int, THREAD_MAX> vnThreadsRunning;
+extern CAddrMan addrman;
extern std::vector<CNode*> vNodes;
extern CCriticalSection cs_vNodes;
-extern std::map<std::vector<unsigned char>, CAddress> mapAddresses;
-extern CCriticalSection cs_mapAddresses;
extern std::map<CInv, CDataStream> mapRelay;
extern std::deque<std::pair<int64, CInv> > vRelayExpiration;
extern CCriticalSection cs_mapRelay;
@@ -91,7 +102,7 @@ extern std::map<CInv, int64> mapAlreadyAskedFor;
-
+/** Information about a peer */
class CNode
{
public:
@@ -106,7 +117,7 @@ public:
int64 nLastRecv;
int64 nLastSendEmpty;
int64 nTimeConnected;
- unsigned int nHeaderStart;
+ int nHeaderStart;
unsigned int nMessageStart;
CAddress addr;
int nVersion;
@@ -141,28 +152,15 @@ public:
std::set<uint256> setKnown;
// inventory based relay
- std::set<CInv> setInventoryKnown;
+ mruset<CInv> setInventoryKnown;
std::vector<CInv> vInventoryToSend;
CCriticalSection cs_inventory;
std::multimap<int64, CInv> mapAskFor;
- // publish and subscription
- std::vector<char> vfSubscribe;
-
- CNode(SOCKET hSocketIn, CAddress addrIn, bool fInboundIn=false)
+ CNode(SOCKET hSocketIn, CAddress addrIn, bool fInboundIn=false) : vSend(SER_NETWORK, MIN_PROTO_VERSION), vRecv(SER_NETWORK, MIN_PROTO_VERSION)
{
nServices = 0;
hSocket = hSocketIn;
- vSend.SetType(SER_NETWORK);
- vSend.SetVersion(0);
- vRecv.SetType(SER_NETWORK);
- vRecv.SetVersion(0);
- // Version 0.2 obsoletes 20 Feb 2012
- if (GetTime() > 1329696000)
- {
- vSend.SetVersion(209);
- vRecv.SetVersion(209);
- }
nLastSend = 0;
nLastRecv = 0;
nLastSendEmpty = GetTime();
@@ -184,8 +182,8 @@ public:
hashLastGetBlocksEnd = 0;
nStartingHeight = -1;
fGetAddr = false;
- vfSubscribe.assign(256, false);
nMisbehavior = 0;
+ setInventoryKnown.max_size(SendBufferSize() / 1000);
// Be shy and don't send version until we hear
if (!fInbound)
@@ -245,15 +243,19 @@ public:
void AddInventoryKnown(const CInv& inv)
{
- CRITICAL_BLOCK(cs_inventory)
+ {
+ LOCK(cs_inventory);
setInventoryKnown.insert(inv);
+ }
}
void PushInventory(const CInv& inv)
{
- CRITICAL_BLOCK(cs_inventory)
+ {
+ LOCK(cs_inventory);
if (!setInventoryKnown.count(inv))
vInventoryToSend.push_back(inv);
+ }
}
void AskFor(const CInv& inv)
@@ -279,7 +281,7 @@ public:
void BeginMessage(const char* pszCommand)
{
- cs_vSend.Enter("cs_vSend", __FILE__, __LINE__);
+ ENTER_CRITICAL_SECTION(cs_vSend);
if (nHeaderStart != -1)
AbortMessage();
nHeaderStart = vSend.size();
@@ -293,12 +295,12 @@ public:
void AbortMessage()
{
- if (nHeaderStart == -1)
+ if (nHeaderStart < 0)
return;
vSend.resize(nHeaderStart);
nHeaderStart = -1;
nMessageStart = -1;
- cs_vSend.Leave();
+ LEAVE_CRITICAL_SECTION(cs_vSend);
if (fDebug)
printf("(aborted)\n");
@@ -313,7 +315,7 @@ public:
return;
}
- if (nHeaderStart == -1)
+ if (nHeaderStart < 0)
return;
// Set the size
@@ -321,14 +323,11 @@ public:
memcpy((char*)&vSend[nHeaderStart] + offsetof(CMessageHeader, nMessageSize), &nSize, sizeof(nSize));
// Set the checksum
- if (vSend.GetVersion() >= 209)
- {
- uint256 hash = Hash(vSend.begin() + nMessageStart, vSend.end());
- unsigned int nChecksum = 0;
- memcpy(&nChecksum, &hash, sizeof(nChecksum));
- assert(nMessageStart - nHeaderStart >= offsetof(CMessageHeader, nChecksum) + sizeof(nChecksum));
- memcpy((char*)&vSend[nHeaderStart] + offsetof(CMessageHeader, nChecksum), &nChecksum, sizeof(nChecksum));
- }
+ uint256 hash = Hash(vSend.begin() + nMessageStart, vSend.end());
+ unsigned int nChecksum = 0;
+ memcpy(&nChecksum, &hash, sizeof(nChecksum));
+ assert(nMessageStart - nHeaderStart >= offsetof(CMessageHeader, nChecksum) + sizeof(nChecksum));
+ memcpy((char*)&vSend[nHeaderStart] + offsetof(CMessageHeader, nChecksum), &nChecksum, sizeof(nChecksum));
if (fDebug) {
printf("(%d bytes)\n", nSize);
@@ -336,12 +335,12 @@ public:
nHeaderStart = -1;
nMessageStart = -1;
- cs_vSend.Leave();
+ LEAVE_CRITICAL_SECTION(cs_vSend);
}
void EndMessageAbortIfEmpty()
{
- if (nHeaderStart == -1)
+ if (nHeaderStart < 0)
return;
int nSize = vSend.size() - nMessageStart;
if (nSize > 0)
@@ -520,8 +519,10 @@ public:
uint256 hashReply;
RAND_bytes((unsigned char*)&hashReply, sizeof(hashReply));
- CRITICAL_BLOCK(cs_mapRequests)
+ {
+ LOCK(cs_mapRequests);
mapRequests[hashReply] = CRequestTracker(fn, param1);
+ }
PushMessage(pszCommand, hashReply);
}
@@ -533,8 +534,10 @@ public:
uint256 hashReply;
RAND_bytes((unsigned char*)&hashReply, sizeof(hashReply));
- CRITICAL_BLOCK(cs_mapRequests)
+ {
+ LOCK(cs_mapRequests);
mapRequests[hashReply] = CRequestTracker(fn, param1);
+ }
PushMessage(pszCommand, hashReply, a1);
}
@@ -546,8 +549,10 @@ public:
uint256 hashReply;
RAND_bytes((unsigned char*)&hashReply, sizeof(hashReply));
- CRITICAL_BLOCK(cs_mapRequests)
+ {
+ LOCK(cs_mapRequests);
mapRequests[hashReply] = CRequestTracker(fn, param1);
+ }
PushMessage(pszCommand, hashReply, a1, a2);
}
@@ -593,15 +598,17 @@ public:
inline void RelayInventory(const CInv& inv)
{
// Put on lists to offer to the other nodes
- CRITICAL_BLOCK(cs_vNodes)
+ {
+ LOCK(cs_vNodes);
BOOST_FOREACH(CNode* pnode, vNodes)
pnode->PushInventory(inv);
+ }
}
template<typename T>
void RelayMessage(const CInv& inv, const T& a)
{
- CDataStream ss(SER_NETWORK);
+ CDataStream ss(SER_NETWORK, PROTOCOL_VERSION);
ss.reserve(10000);
ss << a;
RelayMessage(inv, ss);
@@ -610,8 +617,8 @@ void RelayMessage(const CInv& inv, const T& a)
template<>
inline void RelayMessage<>(const CInv& inv, const CDataStream& ss)
{
- CRITICAL_BLOCK(cs_mapRelay)
{
+ LOCK(cs_mapRelay);
// Expire old relay messages
while (!vRelayExpiration.empty() && vRelayExpiration.front().first < GetTime())
{
@@ -620,7 +627,7 @@ inline void RelayMessage<>(const CInv& inv, const CDataStream& ss)
}
// Save original serialized message so newer versions are preserved
- mapRelay[inv] = ss;
+ mapRelay.insert(std::make_pair(inv, ss));
vRelayExpiration.push_back(std::make_pair(GetTime() + 15 * 60, inv));
}
@@ -628,58 +635,4 @@ inline void RelayMessage<>(const CInv& inv, const CDataStream& ss)
}
-
-
-
-
-
-
-//
-// Templates for the publish and subscription system.
-// The object being published as T& obj needs to have:
-// a set<unsigned int> setSources member
-// specializations of AdvertInsert and AdvertErase
-// Currently implemented for CTable and CProduct.
-//
-
-template<typename T>
-void AdvertStartPublish(CNode* pfrom, unsigned int nChannel, unsigned int nHops, T& obj)
-{
- // Add to sources
- obj.setSources.insert(pfrom->addr.ip);
-
- if (!AdvertInsert(obj))
- return;
-
- // Relay
- CRITICAL_BLOCK(cs_vNodes)
- BOOST_FOREACH(CNode* pnode, vNodes)
- if (pnode != pfrom && (nHops < PUBLISH_HOPS || pnode->IsSubscribed(nChannel)))
- pnode->PushMessage("publish", nChannel, nHops, obj);
-}
-
-template<typename T>
-void AdvertStopPublish(CNode* pfrom, unsigned int nChannel, unsigned int nHops, T& obj)
-{
- uint256 hash = obj.GetHash();
-
- CRITICAL_BLOCK(cs_vNodes)
- BOOST_FOREACH(CNode* pnode, vNodes)
- if (pnode != pfrom && (nHops < PUBLISH_HOPS || pnode->IsSubscribed(nChannel)))
- pnode->PushMessage("pub-cancel", nChannel, nHops, hash);
-
- AdvertErase(obj);
-}
-
-template<typename T>
-void AdvertRemoveSource(CNode* pfrom, unsigned int nChannel, unsigned int nHops, T& obj)
-{
- // Remove a source
- obj.setSources.erase(pfrom->addr.ip);
-
- // If no longer supported by any sources, cancel it
- if (obj.setSources.empty())
- AdvertStopPublish(pfrom, nChannel, nHops, obj);
-}
-
#endif
diff --git a/src/netbase.cpp b/src/netbase.cpp
index 54e3119153..8b30ffc140 100644
--- a/src/netbase.cpp
+++ b/src/netbase.cpp
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -22,7 +22,7 @@ int nConnectTimeout = 5000;
static const unsigned char pchIPv4[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff };
-bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, int nMaxSolutions, bool fAllowLookup)
+bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions, bool fAllowLookup)
{
vIP.clear();
struct addrinfo aiHint;
@@ -77,7 +77,7 @@ bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, int nM
return (vIP.size() > 0);
}
-bool LookupHost(const char *pszName, std::vector<CNetAddr>& vIP, int nMaxSolutions, bool fAllowLookup)
+bool LookupHost(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions, bool fAllowLookup)
{
if (pszName[0] == 0)
return false;
@@ -93,12 +93,12 @@ bool LookupHost(const char *pszName, std::vector<CNetAddr>& vIP, int nMaxSolutio
return LookupIntern(pszHost, vIP, nMaxSolutions, fAllowLookup);
}
-bool LookupHostNumeric(const char *pszName, std::vector<CNetAddr>& vIP, int nMaxSolutions)
+bool LookupHostNumeric(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions)
{
return LookupHost(pszName, vIP, nMaxSolutions, false);
}
-bool Lookup(const char *pszName, std::vector<CService>& vAddr, int portDefault, bool fAllowLookup, int nMaxSolutions)
+bool Lookup(const char *pszName, std::vector<CService>& vAddr, int portDefault, bool fAllowLookup, unsigned int nMaxSolutions)
{
if (pszName[0] == 0)
return false;
@@ -136,7 +136,7 @@ bool Lookup(const char *pszName, std::vector<CService>& vAddr, int portDefault,
if (!fRet)
return false;
vAddr.resize(vIP.size());
- for (int i = 0; i < vIP.size(); i++)
+ for (unsigned int i = 0; i < vIP.size(); i++)
vAddr[i] = CService(vIP[i], port);
return true;
}
@@ -402,7 +402,7 @@ bool CNetAddr::IsRFC6145() const
bool CNetAddr::IsRFC4843() const
{
- return (GetByte(15) == 0x20 && GetByte(14) == 0x01 && GetByte(13) == 0x00 && GetByte(12) & 0xF0 == 0x10);
+ return (GetByte(15) == 0x20 && GetByte(14) == 0x01 && GetByte(13) == 0x00 && (GetByte(12) & 0xF0) == 0x10);
}
bool CNetAddr::IsLocal() const
@@ -519,15 +519,22 @@ bool CNetAddr::GetIn6Addr(struct in6_addr* pipv6Addr) const
std::vector<unsigned char> CNetAddr::GetGroup() const
{
std::vector<unsigned char> vchRet;
- int nClass = 0; // 0=IPv6, 1=IPv4, 255=unroutable
+ int nClass = 0; // 0=IPv6, 1=IPv4, 254=local, 255=unroutable
int nStartByte = 0;
int nBits = 16;
- // for unroutable addresses, each address is considered different
+ // all local addresses belong to the same group
+ if (IsLocal())
+ {
+ nClass = 254;
+ nBits = 0;
+ }
+
+ // all unroutable addresses belong to the same group
if (!IsRoutable())
{
nClass = 255;
- nBits = 128;
+ nBits = 0;
}
// for IPv4 addresses, '1' + the 16 higher-order bits of the IP
// includes mapped IPv4, SIIT translated IPv4, and the well-known prefix
diff --git a/src/netbase.h b/src/netbase.h
index 04ced18260..00b6850b2a 100644
--- a/src/netbase.h
+++ b/src/netbase.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_NETBASE_H
@@ -7,30 +7,17 @@
#include <string>
#include <vector>
-#ifdef WIN32
-#define _WIN32_WINNT 0x0501
-#include <winsock2.h>
-#include <mswsock.h>
-#include <ws2tcpip.h>
-#else
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <net/if.h>
-#include <ifaddrs.h>
-#endif
-#ifdef BSD
-#include <netinet/in.h>
-#endif
-
#include "serialize.h"
#include "compat.h"
extern int nConnectTimeout;
+#ifdef WIN32
+// In MSVC, this is defined as a macro, undefine it to prevent a compile and link error
+#undef SetPort
+#endif
-// IP address (IPv6, or IPv4 using mapped IPv6 range (::FFFF:0:0/96))
+/** IP address (IPv6, or IPv4 using mapped IPv6 range (::FFFF:0:0/96)) */
class CNetAddr
{
protected:
@@ -81,6 +68,7 @@ class CNetAddr
)
};
+/** A combination of a network address (CNetAddr) and a (TCP) port */
class CService : public CNetAddr
{
protected:
@@ -125,10 +113,10 @@ class CService : public CNetAddr
)
};
-bool LookupHost(const char *pszName, std::vector<CNetAddr>& vIP, int nMaxSolutions = 0, bool fAllowLookup = true);
-bool LookupHostNumeric(const char *pszName, std::vector<CNetAddr>& vIP, int nMaxSolutions = 0);
+bool LookupHost(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions = 0, bool fAllowLookup = true);
+bool LookupHostNumeric(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions = 0);
bool Lookup(const char *pszName, CService& addr, int portDefault = 0, bool fAllowLookup = true);
-bool Lookup(const char *pszName, std::vector<CService>& vAddr, int portDefault = 0, bool fAllowLookup = true, int nMaxSolutions = 0);
+bool Lookup(const char *pszName, std::vector<CService>& vAddr, int portDefault = 0, bool fAllowLookup = true, unsigned int nMaxSolutions = 0);
bool LookupNumeric(const char *pszName, CService& addr, int portDefault = 0);
bool ConnectSocket(const CService &addr, SOCKET& hSocketRet, int nTimeout = nConnectTimeout);
diff --git a/src/noui.cpp b/src/noui.cpp
new file mode 100644
index 0000000000..08a08b439a
--- /dev/null
+++ b/src/noui.cpp
@@ -0,0 +1,44 @@
+// Copyright (c) 2010 Satoshi Nakamoto
+// Copyright (c) 2009-2012 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#include "ui_interface.h"
+
+#include <string>
+#include "init.h"
+
+int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style)
+{
+ printf("%s: %s\n", caption.c_str(), message.c_str());
+ fprintf(stderr, "%s: %s\n", caption.c_str(), message.c_str());
+ return 4;
+}
+
+bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption)
+{
+ return true;
+}
+
+void MainFrameRepaint()
+{
+}
+
+void AddressBookRepaint()
+{
+}
+
+void InitMessage(const std::string &message)
+{
+}
+
+std::string _(const char* psz)
+{
+ return psz;
+}
+
+void QueueShutdown()
+{
+ // Without UI, Shutdown can simply be started in a new thread
+ CreateThread(Shutdown, NULL);
+}
+
diff --git a/src/noui.h b/src/noui.h
deleted file mode 100644
index 754c2225fc..0000000000
--- a/src/noui.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (c) 2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
-// Distributed under the MIT/X11 software license, see the accompanying
-// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#ifndef BITCOIN_NOUI_H
-#define BITCOIN_NOUI_H
-
-#include <string>
-#include <boost/function.hpp>
-#include "wallet.h"
-
-typedef void wxWindow;
-#define wxYES 0x00000002
-#define wxOK 0x00000004
-#define wxNO 0x00000008
-#define wxYES_NO (wxYES|wxNO)
-#define wxCANCEL 0x00000010
-#define wxAPPLY 0x00000020
-#define wxCLOSE 0x00000040
-#define wxOK_DEFAULT 0x00000000
-#define wxYES_DEFAULT 0x00000000
-#define wxNO_DEFAULT 0x00000080
-#define wxCANCEL_DEFAULT 0x80000000
-#define wxICON_EXCLAMATION 0x00000100
-#define wxICON_HAND 0x00000200
-#define wxICON_WARNING wxICON_EXCLAMATION
-#define wxICON_ERROR wxICON_HAND
-#define wxICON_QUESTION 0x00000400
-#define wxICON_INFORMATION 0x00000800
-#define wxICON_STOP wxICON_HAND
-#define wxICON_ASTERISK wxICON_INFORMATION
-#define wxICON_MASK (0x00000100|0x00000200|0x00000400|0x00000800)
-#define wxFORWARD 0x00001000
-#define wxBACKWARD 0x00002000
-#define wxRESET 0x00004000
-#define wxHELP 0x00008000
-#define wxMORE 0x00010000
-#define wxSETUP 0x00020000
-
-inline int MyMessageBox(const std::string& message, const std::string& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1)
-{
- printf("%s: %s\n", caption.c_str(), message.c_str());
- fprintf(stderr, "%s: %s\n", caption.c_str(), message.c_str());
- return 4;
-}
-#define wxMessageBox MyMessageBox
-
-inline int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1)
-{
- return MyMessageBox(message, caption, style, parent, x, y);
-}
-
-inline bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent)
-{
- return true;
-}
-
-inline void CalledSetStatusBar(const std::string& strText, int nField)
-{
-}
-
-inline void UIThreadCall(boost::function0<void> fn)
-{
-}
-
-inline void MainFrameRepaint()
-{
-}
-
-inline void InitMessage(const std::string &message)
-{
-}
-
-#endif
diff --git a/src/obj/nogui/.gitignore b/src/obj/nogui/.gitignore
deleted file mode 100644
index d6b7ef32c8..0000000000
--- a/src/obj/nogui/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/src/obj/test/.gitignore b/src/obj/test/.gitignore
deleted file mode 100644
index d6b7ef32c8..0000000000
--- a/src/obj/test/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/src/protocol.cpp b/src/protocol.cpp
index 45f08082e9..fda31966f2 100644
--- a/src/protocol.cpp
+++ b/src/protocol.cpp
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -107,7 +107,7 @@ CInv::CInv(int typeIn, const uint256& hashIn)
CInv::CInv(const std::string& strType, const uint256& hashIn)
{
- int i;
+ unsigned int i;
for (i = 1; i < ARRAYLEN(ppszTypeName); i++)
{
if (strType == ppszTypeName[i])
@@ -128,7 +128,7 @@ bool operator<(const CInv& a, const CInv& b)
bool CInv::IsKnownType() const
{
- return (type >= 1 && type < ARRAYLEN(ppszTypeName));
+ return (type >= 1 && type < (int)ARRAYLEN(ppszTypeName));
}
const char* CInv::GetCommand() const
diff --git a/src/protocol.h b/src/protocol.h
index a0bf677aac..f7331c1923 100644
--- a/src/protocol.h
+++ b/src/protocol.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -12,7 +12,6 @@
#include "serialize.h"
#include "netbase.h"
-#include "util.h"
#include <string>
#include "uint256.h"
@@ -22,15 +21,15 @@ static inline unsigned short GetDefaultPort(const bool testnet = fTestNet)
return testnet ? 18333 : 8333;
}
-//
-// Message header
-// (4) message start
-// (12) command
-// (4) size
-// (4) checksum
extern unsigned char pchMessageStart[4];
+/** Message header.
+ * (4) message start.
+ * (12) command.
+ * (4) size.
+ * (4) checksum.
+ */
class CMessageHeader
{
public:
@@ -45,7 +44,6 @@ class CMessageHeader
READWRITE(FLATDATA(pchMessageStart));
READWRITE(FLATDATA(pchCommand));
READWRITE(nMessageSize);
- if (nVersion >= 209)
READWRITE(nChecksum);
)
@@ -58,11 +56,13 @@ class CMessageHeader
unsigned int nChecksum;
};
+/** nServices flags */
enum
{
NODE_NETWORK = (1 << 0),
};
+/** A CService with information about it as peer */
class CAddress : public CService
{
public:
@@ -78,9 +78,10 @@ class CAddress : public CService
if (fRead)
pthis->Init();
if (nType & SER_DISK)
- READWRITE(nVersion);
- if ((nType & SER_DISK) || (nVersion >= 31402 && !(nType & SER_GETHASH)))
- READWRITE(nTime);
+ READWRITE(nVersion);
+ if ((nType & SER_DISK) ||
+ (nVersion >= CADDR_TIME_VERSION && !(nType & SER_GETHASH)))
+ READWRITE(nTime);
READWRITE(nServices);
READWRITE(*pip);
)
@@ -95,9 +96,10 @@ class CAddress : public CService
unsigned int nTime;
// memory only
- unsigned int nLastTry;
+ int64 nLastTry;
};
+/** inv message data */
class CInv
{
public:
diff --git a/src/qt/aboutdialog.cpp b/src/qt/aboutdialog.cpp
index 08d7774067..0b98befe8d 100644
--- a/src/qt/aboutdialog.cpp
+++ b/src/qt/aboutdialog.cpp
@@ -2,6 +2,8 @@
#include "ui_aboutdialog.h"
#include "clientmodel.h"
+#include "version.h"
+
AboutDialog::AboutDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::AboutDialog)
diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp
index b5a798ca31..3e55c39e04 100644
--- a/src/qt/addressbookpage.cpp
+++ b/src/qt/addressbookpage.cpp
@@ -9,7 +9,6 @@
#include <QSortFilterProxyModel>
#include <QClipboard>
-#include <QFileDialog>
#include <QMessageBox>
#include <QMenu>
@@ -44,15 +43,19 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
ui->tableView->setFocus();
break;
case ForEditing:
- ui->buttonBox->hide();
+ ui->buttonBox->setVisible(false);
break;
}
switch(tab)
{
case SendingTab:
- ui->labelExplanation->hide();
+ ui->labelExplanation->setVisible(false);
+ ui->deleteButton->setVisible(true);
+ ui->signMessage->setVisible(false);
break;
case ReceivingTab:
+ ui->deleteButton->setVisible(false);
+ ui->signMessage->setVisible(true);
break;
}
ui->tableView->setTabKeyNavigation(false);
@@ -91,8 +94,6 @@ void AddressBookPage::setModel(AddressTableModel *model)
this->model = model;
if(!model)
return;
- // Refresh list from core
- model->updateList();
proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(model);
@@ -134,6 +135,7 @@ void AddressBookPage::on_copyToClipboard_clicked()
{
GUIUtil::copyEntryData(ui->tableView, AddressTableModel::Address);
}
+
void AddressBookPage::onCopyLabelAction()
{
GUIUtil::copyEntryData(ui->tableView, AddressTableModel::Label);
@@ -225,14 +227,18 @@ void AddressBookPage::selectionChanged()
case SendingTab:
// In sending tab, allow deletion of selection
ui->deleteButton->setEnabled(true);
+ ui->deleteButton->setVisible(true);
deleteAction->setEnabled(true);
ui->signMessage->setEnabled(false);
+ ui->signMessage->setVisible(false);
break;
case ReceivingTab:
// Deleting receiving addresses, however, is not allowed
ui->deleteButton->setEnabled(false);
+ ui->deleteButton->setVisible(false);
deleteAction->setEnabled(false);
ui->signMessage->setEnabled(true);
+ ui->signMessage->setVisible(true);
break;
}
ui->copyToClipboard->setEnabled(true);
@@ -277,10 +283,9 @@ void AddressBookPage::done(int retval)
void AddressBookPage::exportClicked()
{
// CSV is currently the only supported format
- QString filename = QFileDialog::getSaveFileName(
+ QString filename = GUIUtil::getSaveFileName(
this,
- tr("Export Address Book Data"),
- QDir::currentPath(),
+ tr("Export Address Book Data"), QString(),
tr("Comma separated file (*.csv)"));
if (filename.isNull()) return;
@@ -305,16 +310,12 @@ void AddressBookPage::on_showQRCode_clicked()
QTableView *table = ui->tableView;
QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
-
- QRCodeDialog *d;
foreach (QModelIndex index, indexes)
{
- QString address = index.data().toString(),
- label = index.sibling(index.row(), 0).data().toString(),
- title = QString("%1 << %2 >>").arg(label).arg(address);
+ QString address = index.data().toString(), label = index.sibling(index.row(), 0).data(Qt::EditRole).toString();
- QRCodeDialog *d = new QRCodeDialog(title, address, label, tab == ReceivingTab, this);
- d->show();
+ QRCodeDialog *dialog = new QRCodeDialog(address, label, tab == ReceivingTab, this);
+ dialog->show();
}
#endif
}
diff --git a/src/qt/addresstablemodel.cpp b/src/qt/addresstablemodel.cpp
index 8fd6d52b7e..7b95f51c04 100644
--- a/src/qt/addresstablemodel.cpp
+++ b/src/qt/addresstablemodel.cpp
@@ -2,7 +2,7 @@
#include "guiutil.h"
#include "walletmodel.h"
-#include "headers.h"
+#include "wallet.h"
#include <QFont>
#include <QColor>
@@ -27,8 +27,9 @@ struct AddressTableEntry
};
// Private implementation
-struct AddressTablePriv
+class AddressTablePriv
{
+public:
CWallet *wallet;
QList<AddressTableEntry> cachedAddressTable;
@@ -39,8 +40,8 @@ struct AddressTablePriv
{
cachedAddressTable.clear();
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, std::string)& item, wallet->mapAddressBook)
{
const CBitcoinAddress& address = item.first;
@@ -169,8 +170,8 @@ bool AddressTableModel::setData(const QModelIndex & index, const QVariant & valu
// Double-check that we're not overwriting a receiving address
if(rec->type == AddressTableEntry::Sending)
{
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
// Remove old entry
wallet->DelAddressBookName(rec->address.toStdString());
// Add new entry with new address
@@ -231,7 +232,7 @@ QModelIndex AddressTableModel::index(int row, int column, const QModelIndex & pa
}
}
-void AddressTableModel::updateList()
+void AddressTableModel::update()
{
// Update address book model from Bitcoin core
beginResetModel();
@@ -254,8 +255,8 @@ QString AddressTableModel::addRow(const QString &type, const QString &label, con
return QString();
}
// Check for duplicate addresses
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
if(wallet->mapAddressBook.count(strAddress))
{
editStatus = DUPLICATE_ADDRESS;
@@ -285,10 +286,11 @@ QString AddressTableModel::addRow(const QString &type, const QString &label, con
{
return QString();
}
- // Add entry and update list
- CRITICAL_BLOCK(wallet->cs_wallet)
+ // Add entry
+ {
+ LOCK(wallet->cs_wallet);
wallet->SetAddressBookName(strAddress, strLabel);
- updateList();
+ }
return QString::fromStdString(strAddress);
}
@@ -302,25 +304,19 @@ bool AddressTableModel::removeRows(int row, int count, const QModelIndex & paren
// Also refuse to remove receiving addresses.
return false;
}
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
wallet->DelAddressBookName(rec->address.toStdString());
}
- updateList();
return true;
}
-void AddressTableModel::update()
-{
-
-}
-
/* Look up label for address in address book, if not found return empty string.
*/
QString AddressTableModel::labelForAddress(const QString &address) const
{
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
CBitcoinAddress address_parsed(address.toStdString());
std::map<CBitcoinAddress, std::string>::iterator mi = wallet->mapAddressBook.find(address_parsed);
if (mi != wallet->mapAddressBook.end())
diff --git a/src/qt/addresstablemodel.h b/src/qt/addresstablemodel.h
index 0743300137..7fd07cfb81 100644
--- a/src/qt/addresstablemodel.h
+++ b/src/qt/addresstablemodel.h
@@ -56,10 +56,6 @@ public:
*/
QString addRow(const QString &type, const QString &label, const QString &address);
- /* Update address list from core. Invalidates any indices.
- */
- void updateList();
-
/* Look up label for address in address book, if not found return empty string.
*/
QString labelForAddress(const QString &address) const;
@@ -82,6 +78,8 @@ signals:
void defaultAddressChanged(const QString &address);
public slots:
+ /* Update address list from core. Invalidates any indices.
+ */
void update();
};
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index 85ece9e2ce..4a77bf9b70 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -1,18 +1,18 @@
/*
- * W.J. van der Laan 2011
+ * W.J. van der Laan 2011-2012
*/
#include "bitcoingui.h"
#include "clientmodel.h"
#include "walletmodel.h"
#include "optionsmodel.h"
+#include "guiutil.h"
-#include "headers.h"
#include "init.h"
+#include "ui_interface.h"
#include "qtipcserver.h"
#include <QApplication>
#include <QMessageBox>
-#include <QThread>
#include <QTextCodec>
#include <QLocale>
#include <QTranslator>
@@ -21,35 +21,35 @@
#include <boost/interprocess/ipc/message_queue.hpp>
-// Need a global reference for the notifications to find the GUI
-BitcoinGUI *guiref;
-QSplashScreen *splashref;
+#if defined(BITCOIN_NEED_QT_PLUGINS) && !defined(_BITCOIN_QT_PLUGINS_INCLUDED)
+#define _BITCOIN_QT_PLUGINS_INCLUDED
+#define __INSURE__
+#include <QtPlugin>
+Q_IMPORT_PLUGIN(qcncodecs)
+Q_IMPORT_PLUGIN(qjpcodecs)
+Q_IMPORT_PLUGIN(qtwcodecs)
+Q_IMPORT_PLUGIN(qkrcodecs)
+Q_IMPORT_PLUGIN(qtaccessiblewidgets)
+#endif
-int MyMessageBox(const std::string& message, const std::string& caption, int style, wxWindow* parent, int x, int y)
-{
- // Message from main thread
- if(guiref)
- {
- guiref->error(QString::fromStdString(caption),
- QString::fromStdString(message));
- }
- else
- {
- QMessageBox::critical(0, QString::fromStdString(caption),
- QString::fromStdString(message),
- QMessageBox::Ok, QMessageBox::Ok);
- }
- return 4;
-}
+// Need a global reference for the notifications to find the GUI
+static BitcoinGUI *guiref;
+static QSplashScreen *splashref;
+static WalletModel *walletmodel;
+static ClientModel *clientmodel;
-int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style, wxWindow* parent, int x, int y)
+int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style)
{
// Message from network thread
if(guiref)
{
- QMetaObject::invokeMethod(guiref, "error", Qt::QueuedConnection,
+ bool modal = (style & wxMODAL);
+ // in case of modal message, use blocking connection to wait for user to click OK
+ QMetaObject::invokeMethod(guiref, "error",
+ modal ? GUIUtil::blockingGUIThreadConnection() : Qt::QueuedConnection,
Q_ARG(QString, QString::fromStdString(caption)),
- Q_ARG(QString, QString::fromStdString(message)));
+ Q_ARG(QString, QString::fromStdString(message)),
+ Q_ARG(bool, modal));
}
else
{
@@ -59,7 +59,7 @@ int ThreadSafeMessageBox(const std::string& message, const std::string& caption,
return 4;
}
-bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent)
+bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption)
{
if(!guiref)
return false;
@@ -67,51 +67,34 @@ bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindo
return true;
bool payFee = false;
- // Call slot on GUI thread.
- // If called from another thread, use a blocking QueuedConnection.
- Qt::ConnectionType connectionType = Qt::DirectConnection;
- if(QThread::currentThread() != QCoreApplication::instance()->thread())
- {
- connectionType = Qt::BlockingQueuedConnection;
- }
-
- QMetaObject::invokeMethod(guiref, "askFee", connectionType,
+ QMetaObject::invokeMethod(guiref, "askFee", GUIUtil::blockingGUIThreadConnection(),
Q_ARG(qint64, nFeeRequired),
Q_ARG(bool*, &payFee));
return payFee;
}
-void ThreadSafeHandleURL(const std::string& strURL)
+void ThreadSafeHandleURI(const std::string& strURI)
{
if(!guiref)
return;
- // Call slot on GUI thread.
- // If called from another thread, use a blocking QueuedConnection.
- Qt::ConnectionType connectionType = Qt::DirectConnection;
- if(QThread::currentThread() != QCoreApplication::instance()->thread())
- {
- connectionType = Qt::BlockingQueuedConnection;
- }
- QMetaObject::invokeMethod(guiref, "handleURL", connectionType,
- Q_ARG(QString, QString::fromStdString(strURL)));
-}
-
-void CalledSetStatusBar(const std::string& strText, int nField)
-{
- // Only used for built-in mining, which is disabled, simple ignore
+ QMetaObject::invokeMethod(guiref, "handleURI", GUIUtil::blockingGUIThreadConnection(),
+ Q_ARG(QString, QString::fromStdString(strURI)));
}
-void UIThreadCall(boost::function0<void> fn)
+void MainFrameRepaint()
{
- // Only used for built-in mining, which is disabled, simple ignore
+ if(clientmodel)
+ QMetaObject::invokeMethod(clientmodel, "update", Qt::QueuedConnection);
+ if(walletmodel)
+ QMetaObject::invokeMethod(walletmodel, "update", Qt::QueuedConnection);
}
-void MainFrameRepaint()
+void AddressBookRepaint()
{
- if(guiref)
- QMetaObject::invokeMethod(guiref, "refreshStatusBar", Qt::QueuedConnection);
+ if(walletmodel)
+ QMetaObject::invokeMethod(walletmodel, "updateAddressList", Qt::QueuedConnection);
}
void InitMessage(const std::string &message)
@@ -123,6 +106,11 @@ void InitMessage(const std::string &message)
}
}
+void QueueShutdown()
+{
+ QMetaObject::invokeMethod(QCoreApplication::instance(), "quit", Qt::QueuedConnection);
+}
+
/*
Translate string to current locale using Qt.
*/
@@ -131,17 +119,33 @@ std::string _(const char* psz)
return QCoreApplication::translate("bitcoin-core", psz).toStdString();
}
+/* Handle runaway exceptions. Shows a message box with the problem and quits the program.
+ */
+static void handleRunawayException(std::exception *e)
+{
+ PrintExceptionContinue(e, "Runaway exception");
+ QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occured. Bitcoin can no longer continue safely and will quit.") + QString("\n\n") + QString::fromStdString(strMiscWarning));
+ exit(1);
+}
+
+#ifdef WIN32
+#define strncasecmp strnicmp
+#endif
+#ifndef BITCOIN_QT_TEST
int main(int argc, char *argv[])
{
+#if !defined(MAC_OSX) && !defined(WIN32)
+// TODO: implement qtipcserver.cpp for Mac and Windows
+
// Do this early as we don't want to bother initializing if we are just calling IPC
for (int i = 1; i < argc; i++)
{
if (strlen(argv[i]) > 7 && strncasecmp(argv[i], "bitcoin:", 8) == 0)
{
- const char *strURL = argv[i];
+ const char *strURI = argv[i];
try {
- boost::interprocess::message_queue mq(boost::interprocess::open_only, "BitcoinURL");
- if(mq.try_send(strURL, strlen(strURL), 0))
+ boost::interprocess::message_queue mq(boost::interprocess::open_only, BITCOINURI_QUEUE_NAME);
+ if(mq.try_send(strURI, strlen(strURI), 0))
exit(0);
else
break;
@@ -151,6 +155,7 @@ int main(int argc, char *argv[])
}
}
}
+#endif
// Internal string conversion is all UTF-8
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
@@ -159,38 +164,63 @@ int main(int argc, char *argv[])
Q_INIT_RESOURCE(bitcoin);
QApplication app(argc, argv);
+ // Command-line options take precedence:
ParseParameters(argc, argv);
- // Load language files for system locale:
- // - First load the translator for the base language, without territory
- // - Then load the more specific locale translator
- QString lang_territory = QLocale::system().name(); // "en_US"
+ // ... then bitcoin.conf:
+ if (!boost::filesystem::is_directory(GetDataDir(false)))
+ {
+ fprintf(stderr, "Error: Specified directory does not exist\n");
+ return 1;
+ }
+ ReadConfigFile(mapArgs, mapMultiArgs);
+
+ // Application identification (must be set before OptionsModel is initialized,
+ // as it is used to locate QSettings)
+ app.setOrganizationName("Bitcoin");
+ app.setOrganizationDomain("bitcoin.org");
+ if(GetBoolArg("-testnet")) // Separate UI settings for testnet
+ app.setApplicationName("Bitcoin-Qt-testnet");
+ else
+ app.setApplicationName("Bitcoin-Qt");
+
+ // ... then GUI settings:
+ OptionsModel optionsModel;
+
+ // Get desired locale (e.g. "de_DE") from command line or use system locale
+ QString lang_territory = QString::fromStdString(GetArg("-lang", QLocale::system().name().toStdString()));
QString lang = lang_territory;
- lang.truncate(lang_territory.lastIndexOf('_')); // "en"
+ // Convert to "de" only by truncating "_DE"
+ lang.truncate(lang_territory.lastIndexOf('_'));
+
QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator;
+ // Load language files for configured locale:
+ // - First load the translator for the base language, without territory
+ // - Then load the more specific locale translator
- qtTranslatorBase.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang);
- if (!qtTranslatorBase.isEmpty())
+ // Load e.g. qt_de.qm
+ if (qtTranslatorBase.load("qt_" + lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
app.installTranslator(&qtTranslatorBase);
- qtTranslator.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang_territory);
- if (!qtTranslator.isEmpty())
+ // Load e.g. qt_de_DE.qm
+ if (qtTranslator.load("qt_" + lang_territory, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
app.installTranslator(&qtTranslator);
- translatorBase.load(":/translations/"+lang);
- if (!translatorBase.isEmpty())
+ // Load e.g. bitcoin_de.qm (shortcut "de" needs to be defined in bitcoin.qrc)
+ if (translatorBase.load(lang, ":/translations/"))
app.installTranslator(&translatorBase);
- translator.load(":/translations/"+lang_territory);
- if (!translator.isEmpty())
+ // Load e.g. bitcoin_de_DE.qm (shortcut "de_DE" needs to be defined in bitcoin.qrc)
+ if (translator.load(lang_territory, ":/translations/"))
app.installTranslator(&translator);
- app.setApplicationName(QApplication::translate("main", "Bitcoin-Qt"));
-
QSplashScreen splash(QPixmap(":/images/splash"), 0);
- splash.show();
- splash.setAutoFillBackground(true);
- splashref = &splash;
+ if (GetBoolArg("-splash", true) && !GetBoolArg("-min"))
+ {
+ splash.show();
+ splash.setAutoFillBackground(true);
+ splashref = &splash;
+ }
app.processEvents();
@@ -198,18 +228,24 @@ int main(int argc, char *argv[])
try
{
+ BitcoinGUI window;
+ guiref = &window;
if(AppInit2(argc, argv))
{
{
- // Put this in a block, so that BitcoinGUI is cleaned up properly before
- // calling Shutdown() in case of exceptions.
- BitcoinGUI window;
- splash.finish(&window);
- OptionsModel optionsModel(pwalletMain);
+ // Put this in a block, so that the Model objects are cleaned up before
+ // calling Shutdown().
+
+ optionsModel.Upgrade(); // Must be done after AppInit2
+
+ if (splashref)
+ splash.finish(&window);
+
ClientModel clientModel(&optionsModel);
+ clientmodel = &clientModel;
WalletModel walletModel(pwalletMain, &optionsModel);
+ walletmodel = &walletModel;
- guiref = &window;
window.setClientModel(&clientModel);
window.setWalletModel(&walletModel);
@@ -223,26 +259,35 @@ int main(int argc, char *argv[])
window.show();
}
- // Place this here as guiref has to be defined if we dont want to lose URLs
+ // Place this here as guiref has to be defined if we dont want to lose URIs
ipcInit();
- // Check for URL in argv
+
+#if !defined(MAC_OSX) && !defined(WIN32)
+// TODO: implement qtipcserver.cpp for Mac and Windows
+
+ // Check for URI in argv
for (int i = 1; i < argc; i++)
{
if (strlen(argv[i]) > 7 && strncasecmp(argv[i], "bitcoin:", 8) == 0)
{
- const char *strURL = argv[i];
+ const char *strURI = argv[i];
try {
- boost::interprocess::message_queue mq(boost::interprocess::open_only, "BitcoinURL");
- mq.try_send(strURL, strlen(strURL), 0);
+ boost::interprocess::message_queue mq(boost::interprocess::open_only, BITCOINURI_QUEUE_NAME);
+ mq.try_send(strURI, strlen(strURI), 0);
}
catch (boost::interprocess::interprocess_exception &ex) {
}
}
}
-
+#endif
app.exec();
+ window.hide();
+ window.setClientModel(0);
+ window.setWalletModel(0);
guiref = 0;
+ clientmodel = 0;
+ walletmodel = 0;
}
Shutdown(NULL);
}
@@ -251,9 +296,10 @@ int main(int argc, char *argv[])
return 1;
}
} catch (std::exception& e) {
- PrintException(&e, "Runaway exception");
+ handleRunawayException(&e);
} catch (...) {
- PrintException(NULL, "Runaway exception");
+ handleRunawayException(NULL);
}
return 0;
}
+#endif // BITCOIN_QT_TEST
diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc
index 5693ae187e..e696170312 100644
--- a/src/qt/bitcoin.qrc
+++ b/src/qt/bitcoin.qrc
@@ -1,5 +1,5 @@
<RCC>
- <qresource prefix="/icons" lang="edit">
+ <qresource prefix="/icons">
<file alias="bitcoin">res/icons/bitcoin.png</file>
<file alias="address-book">res/icons/address-book.png</file>
<file alias="quit">res/icons/quit.png</file>
@@ -37,27 +37,46 @@
<file alias="lock_closed">res/icons/lock_closed.png</file>
<file alias="lock_open">res/icons/lock_open.png</file>
<file alias="key">res/icons/key.png</file>
+ <file alias="filesave">res/icons/filesave.png</file>
+ <file alias="qrcode">res/icons/qrcode.png</file>
</qresource>
<qresource prefix="/images">
<file alias="about">res/images/about.png</file>
<file alias="splash">res/images/splash2.jpg</file>
- <file alias="qrcode">res/images/qrcode.png</file>
</qresource>
<qresource prefix="/movies">
<file alias="update_spinner">res/movies/update_spinner.mng</file>
</qresource>
<qresource prefix="/translations">
+ <file alias="ca_ES">locale/bitcoin_ca_ES.qm</file>
+ <file alias="cs">locale/bitcoin_cs.qm</file>
<file alias="da">locale/bitcoin_da.qm</file>
<file alias="de">locale/bitcoin_de.qm</file>
<file alias="en">locale/bitcoin_en.qm</file>
- <file alias="es">locale/bitcoin_es.qm</file>
<file alias="es_CL">locale/bitcoin_es_CL.qm</file>
+ <file alias="es">locale/bitcoin_es.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="he">locale/bitcoin_he.qm</file>
+ <file alias="hr">locale/bitcoin_hr.qm</file>
<file alias="hu">locale/bitcoin_hu.qm</file>
<file alias="it">locale/bitcoin_it.qm</file>
+ <file alias="lt">locale/bitcoin_lt.qm</file>
<file alias="nb">locale/bitcoin_nb.qm</file>
<file alias="nl">locale/bitcoin_nl.qm</file>
+ <file alias="pl">locale/bitcoin_pl.qm</file>
<file alias="pt_BR">locale/bitcoin_pt_BR.qm</file>
+ <file alias="ro_RO">locale/bitcoin_ro_RO.qm</file>
<file alias="ru">locale/bitcoin_ru.qm</file>
+ <file alias="sk">locale/bitcoin_sk.qm</file>
+ <file alias="sr">locale/bitcoin_sr.qm</file>
+ <file alias="sv">locale/bitcoin_sv.qm</file>
+ <file alias="tr">locale/bitcoin_tr.qm</file>
<file alias="uk">locale/bitcoin_uk.qm</file>
<file alias="zh_CN">locale/bitcoin_zh_CN.qm</file>
<file alias="zh_TW">locale/bitcoin_zh_TW.qm</file>
diff --git a/src/qt/bitcoinaddressvalidator.h b/src/qt/bitcoinaddressvalidator.h
index 6ca3bd6a05..9710d122b6 100644
--- a/src/qt/bitcoinaddressvalidator.h
+++ b/src/qt/bitcoinaddressvalidator.h
@@ -14,7 +14,7 @@ public:
State validate(QString &input, int &pos) const;
- static const int MaxAddressLength = 34;
+ static const int MaxAddressLength = 35;
signals:
public slots:
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 3e0a12b9cf..bcf90917ed 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -1,8 +1,8 @@
/*
* Qt4 bitcoin GUI.
*
- * W.J. van der Laan 2011
- * The Bitcoin Developers 2011
+ * W.J. van der Laan 20011-2012
+ * The Bitcoin Developers 20011-2012
*/
#include "bitcoingui.h"
#include "transactiontablemodel.h"
@@ -23,6 +23,7 @@
#include "guiconstants.h"
#include "askpassphrasedialog.h"
#include "notificator.h"
+#include "guiutil.h"
#ifdef Q_WS_MAC
#include "macdockiconhandler.h"
@@ -46,6 +47,9 @@
#include <QStackedWidget>
#include <QDateTime>
#include <QMovie>
+#include <QFileDialog>
+#include <QDesktopServices>
+#include <QTimer>
#include <QDragEnterEvent>
#include <QUrl>
@@ -135,11 +139,11 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
frameBlocksLayout->addWidget(labelBlocksIcon);
frameBlocksLayout->addStretch();
- // Progress bar for blocks download
- progressBarLabel = new QLabel(tr("Synchronizing with network..."));
+ // Progress bar and label for blocks download
+ progressBarLabel = new QLabel();
progressBarLabel->setVisible(false);
progressBar = new QProgressBar();
- progressBar->setToolTip(tr("Block chain synchronization in progress"));
+ progressBar->setAlignment(Qt::AlignCenter);
progressBar->setVisible(false);
statusBar()->addWidget(progressBarLabel);
@@ -159,6 +163,8 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
BitcoinGUI::~BitcoinGUI()
{
+ if(trayIcon) // Hide tray icon, as deleting will let it linger until quit (on Ubuntu)
+ trayIcon->hide();
#ifdef Q_WS_MAC
delete appMenuBar;
#endif
@@ -205,17 +211,17 @@ void BitcoinGUI::createActions()
#endif
tabGroup->addAction(messageAction);
- connect(overviewAction, SIGNAL(triggered()), this, SLOT(show()));
+ connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage()));
- connect(historyAction, SIGNAL(triggered()), this, SLOT(show()));
+ connect(historyAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
- connect(addressBookAction, SIGNAL(triggered()), this, SLOT(show()));
+ connect(addressBookAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage()));
- connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(show()));
+ connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage()));
- connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(show()));
+ connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage()));
- connect(messageAction, SIGNAL(triggered()), this, SLOT(show()));
+ connect(messageAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized()));
connect(messageAction, SIGNAL(triggered()), this, SLOT(gotoMessagePage()));
quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this);
@@ -231,13 +237,15 @@ void BitcoinGUI::createActions()
optionsAction = new QAction(QIcon(":/icons/options"), tr("&Options..."), this);
optionsAction->setToolTip(tr("Modify configuration options for bitcoin"));
optionsAction->setMenuRole(QAction::PreferencesRole);
- openBitcoinAction = new QAction(QIcon(":/icons/bitcoin"), tr("Open &Bitcoin"), this);
- openBitcoinAction->setToolTip(tr("Show the Bitcoin window"));
+ toggleHideAction = new QAction(QIcon(":/icons/bitcoin"), tr("Show/Hide &Bitcoin"), this);
+ toggleHideAction->setToolTip(tr("Show or hide the Bitcoin window"));
exportAction = new QAction(QIcon(":/icons/export"), tr("&Export..."), this);
- exportAction->setToolTip(tr("Export the current view to a file"));
+ exportAction->setToolTip(tr("Export the data in the current tab to a file"));
encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet"), this);
encryptWalletAction->setToolTip(tr("Encrypt or decrypt wallet"));
encryptWalletAction->setCheckable(true);
+ backupWalletAction = new QAction(QIcon(":/icons/filesave"), tr("&Backup Wallet"), this);
+ backupWalletAction->setToolTip(tr("Backup wallet to another location"));
changePassphraseAction = new QAction(QIcon(":/icons/key"), tr("&Change Passphrase"), this);
changePassphraseAction->setToolTip(tr("Change the passphrase used for wallet encryption"));
@@ -245,8 +253,9 @@ void BitcoinGUI::createActions()
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
- connect(openBitcoinAction, SIGNAL(triggered()), this, SLOT(showNormal()));
+ connect(toggleHideAction, SIGNAL(triggered()), this, SLOT(toggleHidden()));
connect(encryptWalletAction, SIGNAL(triggered(bool)), this, SLOT(encryptWallet(bool)));
+ connect(backupWalletAction, SIGNAL(triggered()), this, SLOT(backupWallet()));
connect(changePassphraseAction, SIGNAL(triggered()), this, SLOT(changePassphrase()));
}
@@ -262,10 +271,12 @@ void BitcoinGUI::createMenuBar()
// Configure the menus
QMenu *file = appMenuBar->addMenu(tr("&File"));
+ file->addAction(backupWalletAction);
+ file->addAction(exportAction);
#ifndef FIRST_CLASS_MESSAGING
file->addAction(messageAction);
- file->addSeparator();
#endif
+ file->addSeparator();
file->addAction(quitAction);
QMenu *settings = appMenuBar->addMenu(tr("&Settings"));
@@ -326,7 +337,7 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
connect(clientModel, SIGNAL(numBlocksChanged(int)), this, SLOT(setNumBlocks(int)));
// Report errors from network/worker thread
- connect(clientModel, SIGNAL(error(QString,QString)), this, SLOT(error(QString,QString)));
+ connect(clientModel, SIGNAL(error(QString,QString, bool)), this, SLOT(error(QString,QString,bool)));
}
}
@@ -336,7 +347,7 @@ void BitcoinGUI::setWalletModel(WalletModel *walletModel)
if(walletModel)
{
// Report errors from wallet thread
- connect(walletModel, SIGNAL(error(QString,QString)), this, SLOT(error(QString,QString)));
+ connect(walletModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool)));
// Put transaction list in tabs
transactionView->setModel(walletModel);
@@ -366,7 +377,7 @@ void BitcoinGUI::createTrayIcon()
trayIcon = new QSystemTrayIcon(this);
trayIconMenu = new QMenu(this);
trayIcon->setContextMenu(trayIconMenu);
- trayIcon->setToolTip("Bitcoin client");
+ trayIcon->setToolTip(tr("Bitcoin client"));
trayIcon->setIcon(QIcon(":/icons/toolbar"));
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason)));
@@ -374,12 +385,12 @@ void BitcoinGUI::createTrayIcon()
#else
// Note: On Mac, the dock icon is used to provide the tray's functionality.
MacDockIconHandler *dockIconHandler = MacDockIconHandler::instance();
- connect(dockIconHandler, SIGNAL(dockIconClicked()), openBitcoinAction, SLOT(trigger()));
+ connect(dockIconHandler, SIGNAL(dockIconClicked()), toggleHideAction, SLOT(trigger()));
trayIconMenu = dockIconHandler->dockMenu();
#endif
// Configuration of the tray icon (or dock icon) icon menu
- trayIconMenu->addAction(openBitcoinAction);
+ trayIconMenu->addAction(toggleHideAction);
trayIconMenu->addSeparator();
trayIconMenu->addAction(messageAction);
#ifndef FIRST_CLASS_MESSAGING
@@ -402,13 +413,34 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
{
if(reason == QSystemTrayIcon::Trigger)
{
- // Click on system tray icon triggers "open bitcoin"
- openBitcoinAction->trigger();
+ // Click on system tray icon triggers "show/hide bitcoin"
+ toggleHideAction->trigger();
}
-
}
#endif
+void BitcoinGUI::toggleHidden()
+{
+ // activateWindow() (sometimes) helps with keyboard focus on Windows
+ if (isHidden())
+ {
+ show();
+ activateWindow();
+ }
+ else if (isMinimized())
+ {
+ showNormal();
+ activateWindow();
+ }
+ else if (GUIUtil::isObscured(this))
+ {
+ raise();
+ activateWindow();
+ }
+ else
+ hide();
+}
+
void BitcoinGUI::optionsClicked()
{
if(!clientModel || !clientModel->getOptionsModel())
@@ -442,20 +474,31 @@ void BitcoinGUI::setNumConnections(int count)
void BitcoinGUI::setNumBlocks(int count)
{
- if(!clientModel)
+ // don't show / hide progressBar and it's label if we have no connection(s) to the network
+ if (!clientModel || clientModel->getNumConnections() == 0)
+ {
+ progressBarLabel->setVisible(false);
+ progressBar->setVisible(false);
+
return;
- int total = clientModel->getNumBlocksOfPeers();
+ }
+
+ int nTotalBlocks = clientModel->getNumBlocksOfPeers();
QString tooltip;
- if(count < total)
+ if(count < nTotalBlocks)
{
+ int nRemainingBlocks = nTotalBlocks - count;
+ float nPercentageDone = count / (nTotalBlocks * 0.01f);
+
if (clientModel->getStatusBarWarnings() == "")
{
- progressBarLabel->setVisible(true);
progressBarLabel->setText(tr("Synchronizing with network..."));
- progressBar->setVisible(true);
- progressBar->setMaximum(total);
+ progressBarLabel->setVisible(true);
+ progressBar->setFormat(tr("~%n block(s) remaining", "", nRemainingBlocks));
+ progressBar->setMaximum(nTotalBlocks);
progressBar->setValue(count);
+ progressBar->setVisible(true);
}
else
{
@@ -463,7 +506,7 @@ void BitcoinGUI::setNumBlocks(int count)
progressBarLabel->setVisible(true);
progressBar->setVisible(false);
}
- tooltip = tr("Downloaded %1 of %2 blocks of transaction history.").arg(count).arg(total);
+ tooltip = tr("Downloaded %1 of %2 blocks of transaction history (%3% done).").arg(count).arg(nTotalBlocks).arg(nPercentageDone, 0, 'f', 2);
}
else
{
@@ -484,7 +527,11 @@ void BitcoinGUI::setNumBlocks(int count)
QString text;
// Represent time from last generated block in human readable text
- if(secs < 60)
+ if(secs <= 0)
+ {
+ // Fully up to date. Leave text empty.
+ }
+ else if(secs < 60)
{
text = tr("%n second(s) ago","",secs);
}
@@ -502,10 +549,10 @@ void BitcoinGUI::setNumBlocks(int count)
}
// Set icon state: spinning if catching up, tick otherwise
- if(secs < 30*60)
+ if(secs < 90*60 && count >= nTotalBlocks)
{
- tooltip = tr("Up to date") + QString("\n") + tooltip;
- labelBlocksIcon->setPixmap(QIcon(":/icons/synced").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
+ tooltip = tr("Up to date") + QString(".\n") + tooltip;
+ labelBlocksIcon->setPixmap(QIcon(":/icons/synced").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
}
else
{
@@ -514,54 +561,45 @@ void BitcoinGUI::setNumBlocks(int count)
syncIconMovie->start();
}
- tooltip += QString("\n");
- tooltip += tr("Last received block was generated %1.").arg(text);
+ if(!text.isEmpty())
+ {
+ tooltip += QString("\n");
+ tooltip += tr("Last received block was generated %1.").arg(text);
+ }
labelBlocksIcon->setToolTip(tooltip);
progressBarLabel->setToolTip(tooltip);
progressBar->setToolTip(tooltip);
}
-void BitcoinGUI::refreshStatusBar()
-{
- /* Might display multiple times in the case of multiple alerts
- static QString prevStatusBar;
- QString newStatusBar = clientModel->getStatusBarWarnings();
- if (prevStatusBar != newStatusBar)
- {
- prevStatusBar = newStatusBar;
- error(tr("Network Alert"), newStatusBar);
- }*/
- setNumBlocks(clientModel->getNumBlocks());
-}
-
-void BitcoinGUI::error(const QString &title, const QString &message)
+void BitcoinGUI::error(const QString &title, const QString &message, bool modal)
{
// Report errors from network/worker thread
- notificator->notify(Notificator::Critical, title, message);
+ if(modal)
+ {
+ QMessageBox::critical(this, title, message, QMessageBox::Ok, QMessageBox::Ok);
+ } else {
+ notificator->notify(Notificator::Critical, title, message);
+ }
}
void BitcoinGUI::changeEvent(QEvent *e)
{
+ QMainWindow::changeEvent(e);
#ifndef Q_WS_MAC // Ignored on Mac
if(e->type() == QEvent::WindowStateChange)
{
if(clientModel && clientModel->getOptionsModel()->getMinimizeToTray())
{
- if(isMinimized())
+ QWindowStateChangeEvent *wsevt = static_cast<QWindowStateChangeEvent*>(e);
+ if(!(wsevt->oldState() & Qt::WindowMinimized) && isMinimized())
{
- hide();
+ QTimer::singleShot(0, this, SLOT(hide()));
e->ignore();
}
- else
- {
- show();
- e->accept();
- }
}
}
#endif
- QMainWindow::changeEvent(e);
}
void BitcoinGUI::closeEvent(QCloseEvent *event)
@@ -697,7 +735,7 @@ void BitcoinGUI::gotoMessagePage(QString addr)
void BitcoinGUI::dragEnterEvent(QDragEnterEvent *event)
{
- // Accept only URLs
+ // Accept only URIs
if(event->mimeData()->hasUrls())
event->acceptProposedAction();
}
@@ -707,21 +745,25 @@ void BitcoinGUI::dropEvent(QDropEvent *event)
if(event->mimeData()->hasUrls())
{
gotoSendCoinsPage();
- QList<QUrl> urls = event->mimeData()->urls();
- foreach(const QUrl &url, urls)
+ QList<QUrl> uris = event->mimeData()->urls();
+ foreach(const QUrl &uri, uris)
{
- sendCoinsPage->handleURL(&url);
+ sendCoinsPage->handleURI(uri.toString());
}
}
event->acceptProposedAction();
}
-void BitcoinGUI::handleURL(QString strURL)
+void BitcoinGUI::handleURI(QString strURI)
{
gotoSendCoinsPage();
- QUrl url = QUrl(strURL);
- sendCoinsPage->handleURL(&url);
+ sendCoinsPage->handleURI(strURI);
+
+ if(!isActiveWindow())
+ activateWindow();
+
+ showNormalIfMinimized();
}
void BitcoinGUI::setEncryptionStatus(int status)
@@ -765,6 +807,17 @@ void BitcoinGUI::encryptWallet(bool status)
setEncryptionStatus(walletModel->getEncryptionStatus());
}
+void BitcoinGUI::backupWallet()
+{
+ QString saveDir = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
+ QString filename = QFileDialog::getSaveFileName(this, tr("Backup Wallet"), saveDir, tr("Wallet Data (*.dat)"));
+ if(!filename.isEmpty()) {
+ if(!walletModel->backupWallet(filename)) {
+ QMessageBox::warning(this, tr("Backup Failed"), tr("There was an error trying to save the wallet data to the new location."));
+ }
+ }
+}
+
void BitcoinGUI::changePassphrase()
{
AskPassphraseDialog dlg(AskPassphraseDialog::ChangePass, this);
@@ -784,3 +837,11 @@ void BitcoinGUI::unlockWallet()
dlg.exec();
}
}
+
+void BitcoinGUI::showNormalIfMinimized()
+{
+ if(!isVisible()) // Show, if hidden
+ show();
+ if(isMinimized()) // Unminimize, if minimized
+ showNormal();
+}
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index 09ad89a894..2cce8d3459 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -81,9 +81,10 @@ private:
QAction *aboutAction;
QAction *receiveCoinsAction;
QAction *optionsAction;
- QAction *openBitcoinAction;
+ QAction *toggleHideAction;
QAction *exportAction;
QAction *encryptWalletAction;
+ QAction *backupWalletAction;
QAction *changePassphraseAction;
QAction *aboutQtAction;
@@ -112,11 +113,9 @@ public slots:
@see WalletModel::EncryptionStatus
*/
void setEncryptionStatus(int status);
- /** Set the status bar text if there are any warnings (removes sync progress bar if applicable) */
- void refreshStatusBar();
/** Notify the user of an error in the network or transaction handling code. */
- void error(const QString &title, const QString &message);
+ void error(const QString &title, const QString &message, bool modal);
/** Asks the user whether to pay the transaction fee or to cancel the transaction.
It is currently not possible to pass a return value to another thread through
BlockingQueuedConnection, so an indirected pointer is used.
@@ -126,7 +125,7 @@ public slots:
@param[out] payFee true to pay the fee, false to not pay the fee
*/
void askFee(qint64 nFeeRequired, bool *payFee);
- void handleURL(QString strURL);
+ void handleURI(QString strURI);
void gotoMessagePage();
void gotoMessagePage(QString);
@@ -158,10 +157,17 @@ private slots:
void incomingTransaction(const QModelIndex & parent, int start, int end);
/** Encrypt the wallet */
void encryptWallet(bool status);
+ /** Backup the wallet */
+ void backupWallet();
/** Change encrypted wallet passphrase */
void changePassphrase();
/** Ask for pass phrase to unlock wallet temporarily */
void unlockWallet();
+
+ /** Show window if hidden, unminimize when minimized */
+ void showNormalIfMinimized();
+ /** Hide window if visible, show if hidden */
+ void toggleHidden();
};
#endif
diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp
index 73db1fe46c..b25af1a210 100644
--- a/src/qt/bitcoinstrings.cpp
+++ b/src/qt/bitcoinstrings.cpp
@@ -1,6 +1,15 @@
#include <QtGlobal>
// Automatically generated by extract_strings.py
-static const char *bitcoin_strings[] = {QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin version"),
+#ifdef __GNUC__
+#define UNUSED __attribute__((unused))
+#else
+#define UNUSED
+#endif
+static const char UNUSED *bitcoin_strings[] = {QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Unable to bind to port %d on this computer. Bitcoin is probably already "
+"running."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Disk space is low "),
+QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin version"),
QT_TRANSLATE_NOOP("bitcoin-core", "Usage:"),
QT_TRANSLATE_NOOP("bitcoin-core", "Send command to -server or bitcoind"),
QT_TRANSLATE_NOOP("bitcoin-core", "List commands"),
@@ -11,25 +20,30 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Specify pid file (default: bitcoind.pid)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Generate coins"),
QT_TRANSLATE_NOOP("bitcoin-core", "Don't generate coins"),
QT_TRANSLATE_NOOP("bitcoin-core", "Start minimized"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Show splash screen on startup (default: 1)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specify data directory"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Set database cache size in megabytes (default: 25)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Set database disk log size in megabytes (default: 100)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specify connection timeout (in milliseconds)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Connect through socks4 proxy"),
QT_TRANSLATE_NOOP("bitcoin-core", "Allow DNS lookups for addnode and connect"),
QT_TRANSLATE_NOOP("bitcoin-core", "Listen for connections on <port> (default: 8333 or testnet: 18333)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Maintain at most <n> connections to peers (default: 125)"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Add a node to connect to"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Add a node to connect to and attempt to keep the connection open"),
QT_TRANSLATE_NOOP("bitcoin-core", "Connect only to the specified node"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Don't accept connections from outside"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Don't bootstrap list of peers using DNS"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Find peers using internet relay chat (default: 0)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Accept connections from outside (default: 1)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Set language, for example \"de_DE\" (default: system locale)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Find peers using DNS lookup (default: 1)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Threshold for disconnecting misbehaving peers (default: 100)"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Number of seconds to keep misbehaving peers from reconnecting (default: "
"86400)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Maximum per-connection receive buffer, <n>*1000 bytes (default: 10000)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Maximum per-connection send buffer, <n>*1000 bytes (default: 10000)"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Don't attempt to use UPnP to map the listening port"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Attempt to use UPnP to map the listening port"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Fee per kB to add to transactions you send"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Use Universal Plug and Play to map the listening port (default: 1)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Use Universal Plug and Play to map the listening port (default: 0)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Fee per KB to add to transactions you send"),
QT_TRANSLATE_NOOP("bitcoin-core", "Accept command line and JSON-RPC commands"),
QT_TRANSLATE_NOOP("bitcoin-core", "Run in the background as a daemon and accept commands"),
QT_TRANSLATE_NOOP("bitcoin-core", "Use the test network"),
@@ -42,8 +56,14 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Password for JSON-RPC connections"),
QT_TRANSLATE_NOOP("bitcoin-core", "Listen for JSON-RPC connections on <port> (default: 8332)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Allow JSON-RPC connections from specified IP address"),
QT_TRANSLATE_NOOP("bitcoin-core", "Send commands to node running on <ip> (default: 127.0.0.1)"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Execute command when the best block changes (%s in cmd is replaced by block "
+"hash)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Upgrade wallet to latest format"),
QT_TRANSLATE_NOOP("bitcoin-core", "Set key pool size to <n> (default: 100)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Rescan the block chain for missing wallet transactions"),
+QT_TRANSLATE_NOOP("bitcoin-core", "How many blocks to check at startup (default: 2500, 0 = all)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "How thorough the block verification is (0-6, default: 1)"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)"),
@@ -54,9 +74,11 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:"
"@STRENGTH)"),
QT_TRANSLATE_NOOP("bitcoin-core", "This help message"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Usage"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Cannot obtain a lock on data directory %s. Bitcoin is probably already "
"running."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin"),
QT_TRANSLATE_NOOP("bitcoin-core", "Loading addresses..."),
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading addr.dat"),
QT_TRANSLATE_NOOP("bitcoin-core", "Loading block index..."),
@@ -66,6 +88,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat: Wallet corrupted"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat: Wallet requires newer version of Bitcoin"),
QT_TRANSLATE_NOOP("bitcoin-core", "Wallet needed to be rewritten: restart Bitcoin to complete"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Cannot downgrade wallet"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Cannot initialize keypool"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Cannot write default address"),
QT_TRANSLATE_NOOP("bitcoin-core", "Rescanning..."),
QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address"),
@@ -74,12 +99,36 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"Warning: -paytxfee is set very high. This is the transaction fee you will "
"pay if you send a transaction."),
QT_TRANSLATE_NOOP("bitcoin-core", "Error: CreateThread(StartNode) failed"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Disk space is low "),
+QT_TRANSLATE_NOOP("bitcoin-core", "To use the %s option"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
-"Unable to bind to port %d on this computer. Bitcoin is probably already "
-"running."),
+"%s, you must set a rpcpassword in the configuration file:\n"
+" %s\n"
+"It is recommended you use the following random password:\n"
+"rpcuser=bitcoinrpc\n"
+"rpcpassword=%s\n"
+"(you do not need to remember this password)\n"
+"If the file does not exist, create it with owner-readable-only file "
+"permissions.\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Error"),
+QT_TRANSLATE_NOOP("bitcoin-core", "An error occured while setting up the RPC port %i for listening: %s"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file "
+"permissions."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Warning: Please check that your computer's date and time are correct. If "
"your clock is wrong Bitcoin will not work properly."),
-QT_TRANSLATE_NOOP("bitcoin-core", "beta"),
-};
+QT_TRANSLATE_NOOP("bitcoin-core", "Error: Wallet locked, unable to create transaction "),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Error: This transaction requires a transaction fee of at least %s because of "
+"its amount, complexity, or use of recently received funds "),
+QT_TRANSLATE_NOOP("bitcoin-core", "Error: Transaction creation failed "),
+QT_TRANSLATE_NOOP("bitcoin-core", "Sending..."),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Error: The transaction was rejected. This might happen if some of the coins "
+"in your wallet were already spent, such as if you used a copy of wallet.dat "
+"and coins were spent in the copy but not marked as spent here."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Insufficient funds"),
+}; \ No newline at end of file
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
index 5a0b4aa83c..cb602ce327 100644
--- a/src/qt/clientmodel.cpp
+++ b/src/qt/clientmodel.cpp
@@ -4,21 +4,14 @@
#include "addresstablemodel.h"
#include "transactiontablemodel.h"
-#include "headers.h"
+#include "main.h"
-#include <QTimer>
#include <QDateTime>
ClientModel::ClientModel(OptionsModel *optionsModel, QObject *parent) :
QObject(parent), optionsModel(optionsModel),
cachedNumConnections(0), cachedNumBlocks(0)
{
- // Until signal notifications is built into the bitcoin core,
- // simply update everything after polling using a timer.
- QTimer *timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), this, SLOT(update()));
- timer->start(MODEL_UPDATE_DELAY);
-
numBlocksAtStartup = -1;
}
@@ -47,14 +40,23 @@ void ClientModel::update()
{
int newNumConnections = getNumConnections();
int newNumBlocks = getNumBlocks();
+ QString newStatusBar = getStatusBarWarnings();
if(cachedNumConnections != newNumConnections)
emit numConnectionsChanged(newNumConnections);
- if(cachedNumBlocks != newNumBlocks)
+ if(cachedNumBlocks != newNumBlocks || cachedStatusBar != newStatusBar)
+ {
+ // Simply emit a numBlocksChanged for now in case the status message changes,
+ // so that the view updates the status bar.
+ // TODO: It should send a notification.
+ // (However, this might generate looped notifications and needs to be thought through and tested carefully)
+ // error(tr("Network Alert"), newStatusBar);
emit numBlocksChanged(newNumBlocks);
+ }
cachedNumConnections = newNumConnections;
cachedNumBlocks = newNumBlocks;
+ cachedStatusBar = newStatusBar;
}
bool ClientModel::isTestNet() const
@@ -86,3 +88,8 @@ QString ClientModel::formatFullVersion() const
{
return QString::fromStdString(FormatFullVersion());
}
+
+QString ClientModel::formatBuildDate() const
+{
+ return QString::fromStdString(CLIENT_DATE);
+}
diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h
index 5a12c4fcd8..8e7431a2f3 100644
--- a/src/qt/clientmodel.h
+++ b/src/qt/clientmodel.h
@@ -37,12 +37,14 @@ public:
QString getStatusBarWarnings() const;
QString formatFullVersion() const;
+ QString formatBuildDate() const;
private:
OptionsModel *optionsModel;
int cachedNumConnections;
int cachedNumBlocks;
+ QString cachedStatusBar;
int numBlocksAtStartup;
@@ -51,7 +53,7 @@ signals:
void numBlocksChanged(int count);
//! Asynchronous error notification
- void error(const QString &title, const QString &message);
+ void error(const QString &title, const QString &message, bool modal);
public slots:
diff --git a/src/qt/csvmodelwriter.cpp b/src/qt/csvmodelwriter.cpp
index 4b21b8c4be..84578b3322 100644
--- a/src/qt/csvmodelwriter.cpp
+++ b/src/qt/csvmodelwriter.cpp
@@ -6,7 +6,7 @@
CSVModelWriter::CSVModelWriter(const QString &filename, QObject *parent) :
QObject(parent),
- filename(filename)
+ filename(filename), model(0)
{
}
diff --git a/src/qt/editaddressdialog.cpp b/src/qt/editaddressdialog.cpp
index 8cc3c85d7a..cecb8aecd7 100644
--- a/src/qt/editaddressdialog.cpp
+++ b/src/qt/editaddressdialog.cpp
@@ -106,6 +106,9 @@ void EditAddressDialog::accept()
tr("New key generation failed."),
QMessageBox::Ok, QMessageBox::Ok);
return;
+ case AddressTableModel::OK:
+ // Failed with unknown reason. Just reject.
+ break;
}
return;
diff --git a/src/qt/forms/aboutdialog.ui b/src/qt/forms/aboutdialog.ui
index 127b90965a..21fc7b2019 100644
--- a/src/qt/forms/aboutdialog.ui
+++ b/src/qt/forms/aboutdialog.ui
@@ -22,9 +22,6 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="text">
- <string/>
- </property>
<property name="pixmap">
<pixmap resource="../bitcoin.qrc">:/images/about</pixmap>
</property>
@@ -49,19 +46,31 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
<property name="text">
<string>&lt;b&gt;Bitcoin&lt;/b&gt; version</string>
</property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
</widget>
</item>
<item>
<widget class="QLabel" name="versionLabel">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
<property name="text">
<string notr="true">0.3.666-beta</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
</widget>
</item>
<item>
@@ -81,6 +90,9 @@
</item>
<item>
<widget class="QLabel" name="label_2">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
<property name="text">
<string>Copyright © 2009-2012 Bitcoin Developers
@@ -93,6 +105,9 @@ This product includes software developed by the OpenSSL Project for use in the O
<property name="wordWrap">
<bool>true</bool>
</property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
</widget>
</item>
<item>
diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui
index b31a9ce997..3ccebd40d9 100644
--- a/src/qt/forms/addressbookpage.ui
+++ b/src/qt/forms/addressbookpage.ui
@@ -86,7 +86,7 @@
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
- <normaloff>:/images/qrcode</normaloff>:/images/qrcode</iconset>
+ <normaloff>:/icons/qrcode</normaloff>:/icons/qrcode</iconset>
</property>
</widget>
</item>
diff --git a/src/qt/forms/messagepage.ui b/src/qt/forms/messagepage.ui
index 8afa4b59dd..512e47ad6d 100644
--- a/src/qt/forms/messagepage.ui
+++ b/src/qt/forms/messagepage.ui
@@ -17,7 +17,7 @@
<item>
<widget class="QLabel" name="labelExplanation">
<property name="text">
- <string>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</string>
+ <string>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
@@ -35,7 +35,7 @@
<item>
<widget class="QValidatedLineEdit" name="signFrom">
<property name="toolTip">
- <string>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</string>
+ <string>The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</string>
</property>
<property name="maxLength">
<number>34</number>
@@ -101,9 +101,6 @@
<italic>true</italic>
</font>
</property>
- <property name="text">
- <string>Click &quot;Sign Message&quot; to get signature</string>
- </property>
<property name="readOnly">
<bool>true</bool>
</property>
@@ -128,10 +125,10 @@
<item>
<widget class="QPushButton" name="copyToClipboard">
<property name="toolTip">
- <string>Copy the currently selected address to the system clipboard</string>
+ <string>Copy the current signature to the system clipboard</string>
</property>
<property name="text">
- <string>&amp;Copy to Clipboard</string>
+ <string>&amp;Copy Signature</string>
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
@@ -140,6 +137,20 @@
</widget>
</item>
<item>
+ <widget class="QPushButton" name="clearButton">
+ <property name="toolTip">
+ <string>Reset all sign message fields</string>
+ </property>
+ <property name="text">
+ <string>Clear &amp;All</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui
index cc67fae533..3cf7dd0ed3 100644
--- a/src/qt/forms/overviewpage.ui
+++ b/src/qt/forms/overviewpage.ui
@@ -78,12 +78,14 @@
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
+ <property name="font">
+ <font>
+ <pointsize>11</pointsize>
+ <bold>true</bold>
+ </font>
+ </property>
<property name="text">
- <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ <string>Wallet</string>
</property>
</widget>
</item>
diff --git a/src/qt/forms/qrcodedialog.ui b/src/qt/forms/qrcodedialog.ui
index fa21f60b9e..ef21841c26 100644
--- a/src/qt/forms/qrcodedialog.ui
+++ b/src/qt/forms/qrcodedialog.ui
@@ -6,12 +6,12 @@
<rect>
<x>0</x>
<y>0</y>
- <width>320</width>
- <height>404</height>
+ <width>334</width>
+ <height>423</height>
</rect>
</property>
<property name="windowTitle">
- <string>Dialog</string>
+ <string>QR-Code Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
@@ -34,6 +34,9 @@
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
</widget>
</item>
<item>
@@ -44,7 +47,7 @@
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
- <widget class="QCheckBox" name="chkReq">
+ <widget class="QCheckBox" name="chkReqPayment">
<property name="enabled">
<bool>true</bool>
</property>
@@ -56,7 +59,7 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
- <widget class="QLabel" name="lblAm1">
+ <widget class="QLabel" name="lblAmount">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -91,7 +94,7 @@
</widget>
</item>
<item>
- <widget class="QLabel" name="lblAm2">
+ <widget class="QLabel" name="lblBTC">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
@@ -113,7 +116,7 @@
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
- <widget class="QLabel" name="label_3">
+ <widget class="QLabel" name="lblLabel">
<property name="text">
<string>Label:</string>
</property>
@@ -136,7 +139,7 @@
</widget>
</item>
<item row="1" column="0">
- <widget class="QLabel" name="label_4">
+ <widget class="QLabel" name="lblMessage">
<property name="text">
<string>Message:</string>
</property>
@@ -194,7 +197,7 @@
<resources/>
<connections>
<connection>
- <sender>chkReq</sender>
+ <sender>chkReqPayment</sender>
<signal>clicked(bool)</signal>
<receiver>lnReqAmount</receiver>
<slot>setEnabled(bool)</slot>
diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp
index 22d9cc7384..f1e8a5f1bc 100644
--- a/src/qt/guiutil.cpp
+++ b/src/qt/guiutil.cpp
@@ -3,8 +3,6 @@
#include "walletmodel.h"
#include "bitcoinunits.h"
-#include "headers.h"
-
#include <QString>
#include <QDateTime>
#include <QDoubleValidator>
@@ -15,32 +13,37 @@
#include <QAbstractItemView>
#include <QApplication>
#include <QClipboard>
+#include <QFileDialog>
+#include <QDesktopServices>
+#include <QThread>
+
+namespace GUIUtil {
-QString GUIUtil::dateTimeStr(qint64 nTime)
+QString dateTimeStr(const QDateTime &date)
{
- return dateTimeStr(QDateTime::fromTime_t((qint32)nTime));
+ return date.date().toString(Qt::SystemLocaleShortDate) + QString(" ") + date.toString("hh:mm");
}
-QString GUIUtil::dateTimeStr(const QDateTime &date)
+QString dateTimeStr(qint64 nTime)
{
- return date.date().toString(Qt::SystemLocaleShortDate) + QString(" ") + date.toString("hh:mm");
+ return dateTimeStr(QDateTime::fromTime_t((qint32)nTime));
}
-QFont GUIUtil::bitcoinAddressFont()
+QFont bitcoinAddressFont()
{
QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);
return font;
}
-void GUIUtil::setupAddressWidget(QLineEdit *widget, QWidget *parent)
+void setupAddressWidget(QLineEdit *widget, QWidget *parent)
{
widget->setMaxLength(BitcoinAddressValidator::MaxAddressLength);
widget->setValidator(new BitcoinAddressValidator(parent));
widget->setFont(bitcoinAddressFont());
}
-void GUIUtil::setupAmountWidget(QLineEdit *widget, QWidget *parent)
+void setupAmountWidget(QLineEdit *widget, QWidget *parent)
{
QDoubleValidator *amountValidator = new QDoubleValidator(parent);
amountValidator->setDecimals(8);
@@ -49,26 +52,43 @@ void GUIUtil::setupAmountWidget(QLineEdit *widget, QWidget *parent)
widget->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
}
-bool GUIUtil::parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out)
+bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out)
{
- if(url->scheme() != QString("bitcoin"))
+ if(uri.scheme() != QString("bitcoin"))
return false;
SendCoinsRecipient rv;
- rv.address = url->path();
- rv.label = url->queryItemValue("label");
-
- QString amount = url->queryItemValue("amount");
- if(amount.isEmpty())
+ rv.address = uri.path();
+ rv.amount = 0;
+ QList<QPair<QString, QString> > items = uri.queryItems();
+ for (QList<QPair<QString, QString> >::iterator i = items.begin(); i != items.end(); i++)
{
- rv.amount = 0;
- }
- else // Amount is non-empty
- {
- if(!BitcoinUnits::parse(BitcoinUnits::BTC, amount, &rv.amount))
+ bool fShouldReturnFalse = false;
+ if (i->first.startsWith("req-"))
{
- return false;
+ i->first.remove(0, 4);
+ fShouldReturnFalse = true;
+ }
+
+ if (i->first == "label")
+ {
+ rv.label = i->second;
+ fShouldReturnFalse = false;
+ }
+ else if (i->first == "amount")
+ {
+ if(!i->second.isEmpty())
+ {
+ if(!BitcoinUnits::parse(BitcoinUnits::BTC, i->second, &rv.amount))
+ {
+ return false;
+ }
+ }
+ fShouldReturnFalse = false;
}
+
+ if (fShouldReturnFalse)
+ return false;
}
if(out)
{
@@ -77,7 +97,21 @@ bool GUIUtil::parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out)
return true;
}
-QString GUIUtil::HtmlEscape(const QString& str, bool fMultiLine)
+bool parseBitcoinURI(QString uri, SendCoinsRecipient *out)
+{
+ // Convert bitcoin:// to bitcoin:
+ //
+ // Cannot handle this later, because bitcoin:// will cause Qt to see the part after // as host,
+ // which will lowercase it (and thus invalidate the address).
+ if(uri.startsWith("bitcoin://"))
+ {
+ uri.replace(0, 10, "bitcoin:");
+ }
+ QUrl uriInstance(uri);
+ return parseBitcoinURI(uriInstance, out);
+}
+
+QString HtmlEscape(const QString& str, bool fMultiLine)
{
QString escaped = Qt::escape(str);
if(fMultiLine)
@@ -87,12 +121,12 @@ QString GUIUtil::HtmlEscape(const QString& str, bool fMultiLine)
return escaped;
}
-QString GUIUtil::HtmlEscape(const std::string& str, bool fMultiLine)
+QString HtmlEscape(const std::string& str, bool fMultiLine)
{
return HtmlEscape(QString::fromStdString(str), fMultiLine);
}
-void GUIUtil::copyEntryData(QAbstractItemView *view, int column, int role)
+void copyEntryData(QAbstractItemView *view, int column, int role)
{
if(!view || !view->selectionModel())
return;
@@ -104,3 +138,81 @@ void GUIUtil::copyEntryData(QAbstractItemView *view, int column, int role)
QApplication::clipboard()->setText(selection.at(0).data(role).toString());
}
}
+
+QString getSaveFileName(QWidget *parent, const QString &caption,
+ const QString &dir,
+ const QString &filter,
+ QString *selectedSuffixOut)
+{
+ QString selectedFilter;
+ QString myDir;
+ if(dir.isEmpty()) // Default to user documents location
+ {
+ myDir = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
+ }
+ else
+ {
+ myDir = dir;
+ }
+ QString result = QFileDialog::getSaveFileName(parent, caption, myDir, filter, &selectedFilter);
+
+ /* Extract first suffix from filter pattern "Description (*.foo)" or "Description (*.foo *.bar ...) */
+ QRegExp filter_re(".* \\(\\*\\.(.*)[ \\)]");
+ QString selectedSuffix;
+ if(filter_re.exactMatch(selectedFilter))
+ {
+ selectedSuffix = filter_re.cap(1);
+ }
+
+ /* Add suffix if needed */
+ QFileInfo info(result);
+ if(!result.isEmpty())
+ {
+ if(info.suffix().isEmpty() && !selectedSuffix.isEmpty())
+ {
+ /* No suffix specified, add selected suffix */
+ if(!result.endsWith("."))
+ result.append(".");
+ result.append(selectedSuffix);
+ }
+ }
+
+ /* Return selected suffix if asked to */
+ if(selectedSuffixOut)
+ {
+ *selectedSuffixOut = selectedSuffix;
+ }
+ return result;
+}
+
+Qt::ConnectionType blockingGUIThreadConnection()
+{
+ if(QThread::currentThread() != QCoreApplication::instance()->thread())
+ {
+ return Qt::BlockingQueuedConnection;
+ }
+ else
+ {
+ return Qt::DirectConnection;
+ }
+}
+
+bool checkPoint(const QPoint &p, const QWidget *w)
+{
+ QWidget *atW = qApp->widgetAt(w->mapToGlobal(p));
+ if(!atW) return false;
+ return atW->topLevelWidget() == w;
+}
+
+bool isObscured(QWidget *w)
+{
+
+ return !(checkPoint(QPoint(0, 0), w)
+ && checkPoint(QPoint(w->width() - 1, 0), w)
+ && checkPoint(QPoint(0, w->height() - 1), w)
+ && checkPoint(QPoint(w->width() - 1, w->height() - 1), w)
+ && checkPoint(QPoint(w->width()/2, w->height()/2), w));
+}
+
+} // namespace GUIUtil
+
diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h
index 3a81bd2f00..ea1a4795c0 100644
--- a/src/qt/guiutil.h
+++ b/src/qt/guiutil.h
@@ -13,29 +13,29 @@ class QAbstractItemView;
QT_END_NAMESPACE
class SendCoinsRecipient;
-/** Static utility functions used by the Bitcoin Qt UI.
+/** Utility functions used by the Bitcoin Qt UI.
*/
-class GUIUtil
+namespace GUIUtil
{
-public:
// Create human-readable string from date
- static QString dateTimeStr(qint64 nTime);
- static QString dateTimeStr(const QDateTime &datetime);
+ QString dateTimeStr(const QDateTime &datetime);
+ QString dateTimeStr(qint64 nTime);
// Render bitcoin addresses in monospace font
- static QFont bitcoinAddressFont();
+ QFont bitcoinAddressFont();
// Set up widgets for address and amounts
- static void setupAddressWidget(QLineEdit *widget, QWidget *parent);
- static void setupAmountWidget(QLineEdit *widget, QWidget *parent);
+ void setupAddressWidget(QLineEdit *widget, QWidget *parent);
+ void setupAmountWidget(QLineEdit *widget, QWidget *parent);
- // Parse "bitcoin:" URL into recipient object, return true on succesful parsing
- // See Bitcoin URL definition discussion here: https://bitcointalk.org/index.php?topic=33490.0
- static bool parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out);
+ // Parse "bitcoin:" URI into recipient object, return true on succesful parsing
+ // See Bitcoin URI definition discussion here: https://bitcointalk.org/index.php?topic=33490.0
+ bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out);
+ bool parseBitcoinURI(QString uri, SendCoinsRecipient *out);
// HTML escaping for rich text controls
- static QString HtmlEscape(const QString& str, bool fMultiLine=false);
- static QString HtmlEscape(const std::string& str, bool fMultiLine=false);
+ QString HtmlEscape(const QString& str, bool fMultiLine=false);
+ QString HtmlEscape(const std::string& str, bool fMultiLine=false);
/** Copy a field of the currently selected entry of a view to the clipboard. Does nothing if nothing
is selected.
@@ -43,8 +43,32 @@ public:
@param[in] role Data role to extract from the model
@see TransactionView::copyLabel, TransactionView::copyAmount, TransactionView::copyAddress
*/
- static void copyEntryData(QAbstractItemView *view, int column, int role=Qt::EditRole);
+ void copyEntryData(QAbstractItemView *view, int column, int role=Qt::EditRole);
-};
+ /** Get save file name, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
+ when no suffix is provided by the user.
+
+ @param[in] parent Parent window (or 0)
+ @param[in] caption Window caption (or empty, for default)
+ @param[in] dir Starting directory (or empty, to default to documents directory)
+ @param[in] filter Filter specification such as "Comma Separated Files (*.csv)"
+ @param[out] selectedSuffixOut Pointer to return the suffix (file type) that was selected (or 0).
+ Can be useful when choosing the save file format based on suffix.
+ */
+ QString getSaveFileName(QWidget *parent=0, const QString &caption=QString(),
+ const QString &dir=QString(), const QString &filter=QString(),
+ QString *selectedSuffixOut=0);
+
+ /** Get connection type to call object slot in GUI thread with invokeMethod. The call will be blocking.
+
+ @returns If called from the GUI thread, return a Qt::DirectConnection.
+ If called from another thread, return a Qt::BlockingQueuedConnection.
+ */
+ Qt::ConnectionType blockingGUIThreadConnection();
+
+ // Determine whether a widget is hidden behind other windows
+ bool isObscured(QWidget *w);
+
+} // namespace GUIUtil
#endif // GUIUTIL_H
diff --git a/src/qt/locale/bitcoin_ca_ES.ts b/src/qt/locale/bitcoin_ca_ES.ts
new file mode 100644
index 0000000000..0340550960
--- /dev/null
+++ b/src/qt/locale/bitcoin_ca_ES.ts
@@ -0,0 +1,1963 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="ca_ES" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Sobre Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; versió</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>llibreta d&apos;adreces</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Feu doble clic per editar la direcció o l&apos;etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Crear una nova adreça</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Nova Adreça ...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copieu l&apos;adreça seleccionada al porta-retalls del sistema</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation>Etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation>Direcció</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Xifrar la cartera</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation>Sincronització amb la xarxa ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Sincronització de la cadena en el progrés</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation>Mostra panorama general de la cartera</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation>Cerca a l&apos;historial de transaccions</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Edita la llista d&apos;adreces emmagatzemada i etiquetes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Rebre monedes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation>Sortir de l&apos;aplicació</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Mostra informació sobre Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opcions ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Modificar les opcions de configuració per bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Ajuda</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation>Accions de la barra d&apos;eines</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation>Al dia</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation>Posar-se al dia ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation>L&apos;enviament de ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation>Transacció enviada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Editar Adreça</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Port obert amb &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copieu l&apos;adreça seleccionada al porta-retalls del sistema</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Balanç:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Sense confirmar:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>El seu balanç actual</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation>Enviar monedes</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Balanç:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>La quantitat a pagar ha de ser major que 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation>Import superi el saldo de la seva compte</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation>Direcció</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Direcció</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation>L&apos;enviament de ...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_cs_CZ.ts b/src/qt/locale/bitcoin_cs.ts
index ce62b3b709..fafcf54d53 100644
--- a/src/qt/locale/bitcoin_cs_CZ.ts
+++ b/src/qt/locale/bitcoin_cs.ts
@@ -1,18 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="cs_CZ">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="cs" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
<message>
<location filename="../forms/aboutdialog.ui" line="14"/>
<source>About Bitcoin</source>
- <translation>O Bitcoin</translation>
+ <translation>O Bitcoinu</translation>
</message>
<message>
<location filename="../forms/aboutdialog.ui" line="53"/>
<source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
- <translation>Verze &lt;b&gt;Bitcoin&lt;/b&gt;</translation>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; verze</translation>
</message>
<message>
<location filename="../forms/aboutdialog.ui" line="85"/>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin Developers
+ <translation>Copyright © 2009-2012 Vývojáři Bitcoinu
-Toto je experimentální software.
+Tohle je experimentální program.
-Šířeno pod licencí MIT/X11, bližší informace v souboru license.txt nebo na http://www.opensource.org/licenses/mit-license.php.
+Šířen pod licencí MIT/X11, viz přiložený soubor license.txt nebo http://www.opensource.org/licenses/mit-license.php.
-Tento produkt obsahuje software vyvinutý v rámci projektu OpenSSL pro použití v OpenSSL Toolkit (http://www.openssl.org/) a v kryptografickém software, jehož autorem je Eric Young (eay@cryptsoft.com) a UPnP software, jehož autorem je Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin Developers
-
-Toto je experimentální software.
-
-Šířeno pod licencí MIT/X11, bližší informace v souboru license.txt nebo na http://www.opensource.org/licenses/mit-license.php.
-
-Tento produkt obsahuje software vyvinutý v rámci projektu OpenSSL pro použití v OpenSSL Toolkit (http://www.openssl.org/) a v kryptografickém software, jehož autorem je Eric Young (eay@cryptsoft.com) a UPnP software, jehož autorem je Thomas Bernard.</translation>
+Tento produkt zahrnuje programy vyvinuté OpenSSL Projektem pro použití v OpenSSL Toolkitu (http://www.openssl.org/) a kryptografický program od Erika Younga (eay@cryptsoft.com) a program UPnP od Thomase Bernarda.</translation>
</message>
</context>
<context>
@@ -53,102 +35,102 @@ Tento produkt obsahuje software vyvinutý v rámci projektu OpenSSL pro použitÃ
<message>
<location filename="../forms/addressbookpage.ui" line="14"/>
<source>Address Book</source>
- <translation>Seznam adres</translation>
+ <translation>Adresář</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="20"/>
<source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
- <translation>Toto jsou Vaše bitcoin adresy pro příchozí platby. Můžete udávat rozdílné adresy jednotlivým plátcům, a tak rozlišovat jejich platby.</translation>
+ <translation>Tohle jsou tvé Bitcoinové adresy pro příjem plateb. Můžeš pokaždé dát každému odesílateli jinou adresu, abys věděl, kdo ti kdy kolik platil.</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="33"/>
<source>Double-click to edit address or label</source>
- <translation>Dvojklikem upravte adresu nebo popisek</translation>
+ <translation>Dvojklikem myÅ¡i zaÄneÅ¡ upravovat oznaÄení adresy</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="57"/>
<source>Create a new address</source>
- <translation>Vytvořit novou adresu</translation>
+ <translation>VytvoÅ™ novou adresu</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="60"/>
<source>&amp;New Address...</source>
- <translation>&amp;Nová adresa</translation>
+ <translation>Nová &amp;adresa...</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="71"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation>Kopírovat aktuálně vybrané adresy do schránky</translation>
+ <translation>Zkopíruj aktuálně vybranou adresu do systémové schránky</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="74"/>
<source>&amp;Copy to Clipboard</source>
- <translation>&amp;Kopírovat do schránky</translation>
+ <translation>&amp;Zkopíruj do schránky</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Zobraz &amp;QR kód</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>PodepiÅ¡ zprávu, Äímž prokážeÅ¡, že jsi vlastníkem této adresy</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>Po&amp;depiš zprávu</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
<source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
- <translation>Odstraní aktuálně vybrané adresy ze seznamu. Mohou být odstraněny pouze odchozí adresy.</translation>
+ <translation>Smaž aktuálně vybranou adresu ze seznamu. Smazány mohou být pouze adresy příjemců.</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="113"/>
<source>&amp;Delete</source>
- <translation>&amp;Odstranit</translation>
+ <translation>S&amp;maž</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Kopírovat sdresu</translation>
+ <translation>Kopíruj adresu</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Kopírovat popis</translation>
+ <translation>Kopíruj oznaÄení</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Uprav</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Smaž</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
- <translation>Export dat ze seznamu adres</translation>
+ <translation>Exportuj data adresáře</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
- <translation>Text oddělený středníkem (*.csv)</translation>
+ <translation>CSV formát (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
- <translation>Chyba exportu</translation>
+ <translation>Chyba při exportu</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
- <translation>Nelze zapisovat do souboru %1.</translation>
+ <translation>Nemohu zapisovat do souboru %1.</translation>
</message>
</context>
<context>
@@ -156,7 +138,7 @@ Tento produkt obsahuje software vyvinutý v rámci projektu OpenSSL pro použitÃ
<message>
<location filename="../addresstablemodel.cpp" line="77"/>
<source>Label</source>
- <translation>Popis</translation>
+ <translation>OznaÄení</translation>
</message>
<message>
<location filename="../addresstablemodel.cpp" line="77"/>
@@ -166,7 +148,7 @@ Tento produkt obsahuje software vyvinutý v rámci projektu OpenSSL pro použitÃ
<message>
<location filename="../addresstablemodel.cpp" line="113"/>
<source>(no label)</source>
- <translation>(bez popisu)</translation>
+ <translation>(bez oznaÄení)</translation>
</message>
</context>
<context>
@@ -180,91 +162,91 @@ Tento produkt obsahuje software vyvinutý v rámci projektu OpenSSL pro použitÃ
<location filename="../forms/askpassphrasedialog.ui" line="32"/>
<location filename="../forms/askpassphrasedialog.ui" line="97"/>
<source>TextLabel</source>
- <translation>TextLabel</translation>
+ <translation>Textový popisek</translation>
</message>
<message>
<location filename="../forms/askpassphrasedialog.ui" line="50"/>
<source>Enter passphrase</source>
- <translation>Zadej heslo</translation>
+ <translation>Zadej platné heslo</translation>
</message>
<message>
<location filename="../forms/askpassphrasedialog.ui" line="64"/>
<source>New passphrase</source>
- <translation>Nové heslo</translation>
+ <translation>Zadej nové heslo</translation>
</message>
<message>
<location filename="../forms/askpassphrasedialog.ui" line="78"/>
<source>Repeat new passphrase</source>
- <translation>Zopakujte nové heslo</translation>
+ <translation>Totéž heslo ještě jednou</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="34"/>
<source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
- <translation>Zadejte nové heslo k peněžence.&lt;br/&gt;Použijte prosím heslo sestávající z&lt;b&gt;10 nebo více náhodných znaků&lt;/b&gt;, nebo z &lt;b&gt;osmi a více slov&lt;/b&gt;.</translation>
+ <translation>Zadej nové heslo k peněžence.&lt;br/&gt;Použij &lt;b&gt;alespoň 10 náhodných znaků&lt;/b&gt; nebo &lt;b&gt;alespoň osm slov&lt;/b&gt;.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="35"/>
<source>Encrypt wallet</source>
- <translation>Zašifrovat peněženku</translation>
+ <translation>Zašifruj peněženku</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="38"/>
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
- <translation>Tato operace vyžaduje heslo k odemknutí peněženky.</translation>
+ <translation>K provedení této operace musíš zadat heslo k peněžence, aby se mohla odemknout.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="43"/>
<source>Unlock wallet</source>
- <translation>Odemknout peněženku</translation>
+ <translation>Odemkni peněženku</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="46"/>
<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>
+ <translation>K provedení této operace musíš zadat heslo k peněžence, aby se mohla dešifrovat.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="51"/>
<source>Decrypt wallet</source>
- <translation>Dešifrovat peněženku</translation>
+ <translation>Dešifruj peněženku</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="54"/>
<source>Change passphrase</source>
- <translation>Změnit heslo</translation>
+ <translation>Změň heslo</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="55"/>
<source>Enter the old and new passphrase to the wallet.</source>
- <translation>Zdejte staré a nové heslo k peněžence.</translation>
+ <translation>Zadej staré a nové heslo k peněžence.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="101"/>
<source>Confirm wallet encryption</source>
- <translation>PotvrÄte zaÅ¡ifrování peněženky</translation>
+ <translation>PotvrÄ zaÅ¡ifrování peněženky</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="102"/>
<source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
Are you sure you wish to encrypt your wallet?</source>
- <translation>VAROVÃNÃ: Pokud zaÅ¡ifrujete peněženku a zapomenete heslo, &lt;b&gt;PŘIJDETE O VEÅ KERÉ SVÉ BITCOINY&lt;/b&gt;!
-Opravdu chcete zašifrovat Vaši peněženku?</translation>
+ <translation>VAROVÃNÃ: Pokud zaÅ¡ifrujeÅ¡ peněženku a ztratíš Äi zapomeneÅ¡ heslo, &lt;b&gt;PŘIJDEÅ  O VÅ ECHNY BITCOINY&lt;/b&gt;!
+Jsi si jistý, že chceš peněženku zašifrovat?</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="111"/>
<location filename="../askpassphrasedialog.cpp" line="160"/>
<source>Wallet encrypted</source>
- <translation>Peněženka zašifrována</translation>
+ <translation>Peněženka je zašifrována</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin se teÄ ukonÄí, aby dokonÄil zaÅ¡ifrování. Pamatuj vÅ¡ak, že pouhé zaÅ¡ifrování peněženky úplnÄ› nezabraňuje krádeži tvých bitcoinů malwarem, kterým se může poÄítaÄ nakazit.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
+ <translation>Upozornění: Caps Lock je zapnutý.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -277,7 +259,7 @@ Opravdu chcete zašifrovat Vaši peněženku?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="118"/>
<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>
+ <translation>Zašifrování peněženky selhalo kvůli vnitřní chybě. Tvá peněženka tedy nebyla zašifrována.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="125"/>
@@ -295,337 +277,334 @@ Opravdu chcete zašifrovat Vaši peněženku?</translation>
<location filename="../askpassphrasedialog.cpp" line="148"/>
<location filename="../askpassphrasedialog.cpp" line="167"/>
<source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation>Zadané heslo pro dešifrování peněženky nebylo správné.</translation>
+ <translation>Nezadal jsi správné heslo pro dešifrování peněženky.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="147"/>
<source>Wallet decryption failed</source>
- <translation>Deěifrování peněženky selhalo</translation>
+ <translation>Dešifrování peněženky selhalo</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="161"/>
<source>Wallet passphrase was succesfully changed.</source>
- <translation>Heslo k peněžence bylo úspěšně změněno.</translation>
+ <translation>Heslo k peněžence bylo v pořádku změněno.</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
- <translation>Bitcoin peněženka</translation>
+ <translation>Bitcoinová peněženka</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Synchronizuji se sítí...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
- <translation>Probíhá synchronizace řetězu bloků</translation>
+ <translation>Provádí se synchronizace řetězce bloků</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Přehled</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
- <translation>Zobrazit základní přehled o peněžence</translation>
+ <translation>Zobraz celkový přehled peněženky</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transakce</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Procházet historii transakcí</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
- <translation>Seznam &amp;Adres</translation>
+ <translation>&amp;Adresář</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
- <translation>Upravit seznam uložených adres a jejich popisků</translation>
+ <translation>Uprav seznam uložených adres a jejich oznaÄení</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
- <translation>Při&amp;jmout mince</translation>
+ <translation>Pří&amp;jem mincí</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
- <translation>Zobrazit seznam adres k přijímání plateb</translation>
+ <translation>Zobraz seznam adres pro příjem plateb</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
- <translation>Ode&amp;slat mince</translation>
+ <translation>P&amp;oslání mincí</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
- <translation>Odeslat mince na bitcoin adresu</translation>
+ <translation>Pošli mince na Bitcoinovou adresu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>Po&amp;depiš zprávu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Prokaž vlastnictví adresy</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Konec</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>UkonÄit aplikaci</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;O %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
- <translation>Zobrazit informace o Bitcoin</translation>
+ <translation>Zobraz informace o Bitcoinu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>O &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Zobraz informace o Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Možnosti...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
- <translation>Změnit nastavení bitcoin</translation>
+ <translation>Uprav nastavení Bitcoinu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
- <translation>&amp;Otevřít Bitcoin</translation>
+ <translation>Otevři &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
- <translation>Zobrazit okno Bitcoin</translation>
+ <translation>Zobraz okno Bitcoinu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Export...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Exportovat aktuální pohled do souboru</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Exportovat data z tohoto panelu do souboru</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
- <translation>Zaši&amp;frovat peněženku</translation>
+ <translation>Zaši&amp;fruj peněženku</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
- <translation>Zašifrovat nebo dešifrovat peněženku</translation>
+ <translation>Zašifruj nebo dešifruj peněženku</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>&amp;Zazálohovat peněženku</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>Zazálohuj peněženku na jiné místo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
- <translation>&amp;Změnit heslo</translation>
+ <translation>Změň &amp;heslo</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
- <translation>Změnit heslo k šifrování peněženky</translation>
+ <translation>Změň heslo k šifrování peněženky</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Soubor</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Nastavení</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
- <translation>Nápo&amp;věda</translation>
+ <translation>Ná&amp;pověda</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
- <translation>Panely</translation>
+ <translation>Panel s listy</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
- <translation>Akce</translation>
+ <translation>Panel akcí</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktivní spojení v síti Bitcoin</numerusform>
- <numerusform>%n aktivní spojení v síti Bitcoin</numerusform>
- <numerusform>%n aktivních spojení v síti Bitcoin</numerusform>
- </translation>
+ <translation><numerusform>%n aktivní spojení do Bitcoinové sítě</numerusform><numerusform>%n aktivní spojení do Bitcoinové sítě</numerusform><numerusform>%n aktivních spojení do Bitcoinové sítě</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Staženo %1 z %2 bloků transakÄní historie.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Staženo %1 bloků transakÄní historie.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>před %n sekundou</numerusform>
- <numerusform>před %n sekundami</numerusform>
- <numerusform>před %n sekundami</numerusform>
- </translation>
+ <translation><numerusform>před vteřinou</numerusform><numerusform>před %n vteřinami</numerusform><numerusform>před %n vteřinami</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>před %n minutou</numerusform>
- <numerusform>před %n minutami</numerusform>
- <numerusform>před %n minutami</numerusform>
- </translation>
+ <translation><numerusform>před minutou</numerusform><numerusform>před %n minutami</numerusform><numerusform>před %n minutami</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>před %n hodinou</numerusform>
- <numerusform>před %n hodinami</numerusform>
- <numerusform>před %n hodinami</numerusform>
- </translation>
+ <translation><numerusform>před hodinou</numerusform><numerusform>před %n hodinami</numerusform><numerusform>před %n hodinami</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>před %n dnem</numerusform>
- <numerusform>před %n dny</numerusform>
- <numerusform>před %n dny</numerusform>
- </translation>
+ <translation><numerusform>vÄera</numerusform><numerusform>pÅ™ed %n dny</numerusform><numerusform>pÅ™ed %n dny</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
- <translation>Aktuální</translation>
+ <translation>aktuální</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
- <translation>Zachytávám...</translation>
+ <translation>Stahuji...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
- <translation>Poslední přijatý blok byl vygenerován %1.</translation>
+ <translation>Poslední stažený blok byl vygenerován %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation>Tato transakce pÅ™ekraÄuje limit velikosti. Můžete ji ovÅ¡em odeslat za poplatek %1 uzlům, které zpracovávají VaÅ¡e transakce a pomáhají podporovat síť. Chcete zaplatit poplatek?</translation>
+ <translation>Tahle transakce přesahuje velikostní limit. I tak ji ale můžeš poslat, pokud za ni zaplatíš poplatek %1, který půjde uzlům, které tvou transakci zpracují, a navíc tak podpoříš síť. Chceš zaplatit poplatek?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
- <translation>Zasílám...</translation>
+ <translation>Posílám...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Odeslané transakce</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Příchozí transakce</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Datum: %1
-Množství: %2
+ <translation>Datum: %1
+Částka: %2
Typ: %3
Adresa: %4
- {1
-?} {2
-?} {3
-?}</translation>
+</translation>
</message>
<message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Datum: %1
-Množství: %2
-Typ: %3
-Adresa: %4</translation>
- </message>
- <message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<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>
+ <translation>Peněženka je &lt;b&gt;zaÅ¡ifrovaná&lt;/b&gt; a momentálnÄ› &lt;b&gt;odemÄená&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<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>
+ <translation>Peněženka je &lt;b&gt;zaÅ¡ifrovaná&lt;/b&gt; a momentálnÄ› &lt;b&gt;zamÄená&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>Záloha peněženky</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Data peněženky (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>Zálohování selhalo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Při ukládání peněženky na nové místo se přihodila nějaká chyba.</translation>
</message>
</context>
<context>
@@ -633,17 +612,17 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="270"/>
<source>&amp;Unit to show amounts in: </source>
- <translation>&amp;Jednotky pro zobrazení Äástek: </translation>
+ <translation>&amp;Jednotka pro Äástky: </translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="274"/>
<source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
- <translation>Vyberte výchozí dílÄí jednotky, které se mají zobrazovat v rozhraní a pÅ™i odesílání mincí.</translation>
+ <translation>Zvol výchozí podjednotku, která se bude zobrazovat v programu a při posílání mincí</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="281"/>
<source>Display addresses in transaction list</source>
- <translation>Zobrazovat adresy v seznamu transakcí</translation>
+ <translation>Ukazovat adresy ve výpisu transakcí</translation>
</message>
</context>
<context>
@@ -651,17 +630,17 @@ Adresa: %4</translation>
<message>
<location filename="../forms/editaddressdialog.ui" line="14"/>
<source>Edit Address</source>
- <translation>Upravit adresu</translation>
+ <translation>Uprav adresu</translation>
</message>
<message>
<location filename="../forms/editaddressdialog.ui" line="25"/>
<source>&amp;Label</source>
- <translation>&amp;Popisek</translation>
+ <translation>&amp;OznaÄení</translation>
</message>
<message>
<location filename="../forms/editaddressdialog.ui" line="35"/>
<source>The label associated with this address book entry</source>
- <translation>Popisek přiřazený tomuto záznamu ze seznamu adres</translation>
+ <translation>OznaÄení spojené s tímto záznamem v adresáři</translation>
</message>
<message>
<location filename="../forms/editaddressdialog.ui" line="42"/>
@@ -671,47 +650,47 @@ Adresa: %4</translation>
<message>
<location filename="../forms/editaddressdialog.ui" line="52"/>
<source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
- <translation>Adresa přiřazená tomuto záznamu v seznamu adres. Lze upravovat jen u adres k odeslání.</translation>
+ <translation>Adresa spojená s tímto záznamem v adresáři. Lze upravovat jen pro odesílací adresy.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="20"/>
<source>New receiving address</source>
- <translation>Nová adresa pro příjem</translation>
+ <translation>Nová přijímací adresa</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="24"/>
<source>New sending address</source>
- <translation>Nová adresa k odeslání</translation>
+ <translation>Nová odesílací adresa</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="27"/>
<source>Edit receiving address</source>
- <translation>Upravit adresu pro příjem</translation>
+ <translation>Uprav přijímací adresu</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="31"/>
<source>Edit sending address</source>
- <translation>Upravit adresu k odeslání</translation>
+ <translation>Uprav odesílací adresu</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="91"/>
<source>The entered address &quot;%1&quot; is already in the address book.</source>
- <translation>Zadaná adresa &quot;%1&quot; se již v seznamu adres nachází.</translation>
+ <translation>Zadaná adresa &quot;%1&quot; už v adresáři je.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="96"/>
<source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
- <translation>Zadaná adresa &quot;%1&quot; není platnou bitcoin adresou.</translation>
+ <translation>Zadaná adresa &quot;%1&quot; není platná Bitcoinová adresa.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="101"/>
<source>Could not unlock wallet.</source>
- <translation>Nemohu odemknout peněženku</translation>
+ <translation>Nemohu odemknout peněženku.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="106"/>
<source>New key generation failed.</source>
- <translation>Generování nového klíÄe selhalo.</translation>
+ <translation>NepodaÅ™ilo se mi vygenerovat nový klíÄ.</translation>
</message>
</context>
<context>
@@ -719,57 +698,57 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="170"/>
<source>&amp;Start Bitcoin on window system startup</source>
- <translation>&amp;Spouštět Bitcoin se spuštěním systému</translation>
+ <translation>&amp;Spustit Bitcoin při startu systému</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="171"/>
<source>Automatically start Bitcoin after the computer is turned on</source>
- <translation>Automaticky spouÅ¡tÄ›t Bitcoin po zapnutí poÄítaÄe</translation>
+ <translation>Automaticky spustí Bitcoin po zapnutí poÄítaÄe</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="175"/>
<source>&amp;Minimize to the tray instead of the taskbar</source>
- <translation>&amp;Minimalizovat do systémové lišty namísto do hlavního panelu</translation>
+ <translation>&amp;Minimalizovávat do ikony v panelu</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="176"/>
<source>Show only a tray icon after minimizing the window</source>
- <translation>Po minimalizaci okna zobrazovat pouze ikonu v systémové liště</translation>
+ <translation>Po minimalizaci okna zobrazí pouze ikonu v panelu</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="180"/>
<source>Map port using &amp;UPnP</source>
- <translation>Mapovat port pomocí &amp;UPnP</translation>
+ <translation>Namapovat port přes &amp;UPnP</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="181"/>
<source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
- <translation type="unfinished"></translation>
+ <translation>Automaticky otevře potřebný port na routeru. Tohle funguje jen za předpokladu, že tvůj router podporuje UPnP a že je UPnP povolené.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="185"/>
<source>M&amp;inimize on close</source>
- <translation>M&amp;inimalizovat při zavření</translation>
+ <translation>&amp;Zavřením minimalizovat</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="186"/>
<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 Quit in the menu.</source>
- <translation type="unfinished"></translation>
+ <translation>ZavÅ™ením se aplikace minimalizuje. Pokud je tato volba zaÅ¡krtnuta, tak se aplikace ukonÄí pouze zvolením Konec v menu.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="190"/>
<source>&amp;Connect through SOCKS4 proxy:</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Připojit přes SOCKS4 proxy:</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="191"/>
<source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
- <translation type="unfinished"></translation>
+ <translation>Připojí se do Bitcoinové sítě přes SOCKS4 proxy (např. když se připojuje přes Tor)</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="196"/>
<source>Proxy &amp;IP: </source>
- <translation type="unfinished"></translation>
+ <translation>&amp;IP adresa proxy:</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="202"/>
@@ -779,7 +758,7 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="205"/>
<source>&amp;Port: </source>
- <translation type="unfinished"></translation>
+ <translation>P&amp;ort: </translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="211"/>
@@ -789,17 +768,17 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation type="unfinished"></translation>
+ <translation>Dobrovolný transakÄní poplatek za každý zapoÄatý kB dopomáhá k rychlému zpracování tvých transakcí. VÄ›tÅ¡ina transakcí má do 1 kB. DoporuÄená výše poplatku je 0.01.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
<source>Pay transaction &amp;fee</source>
- <translation type="unfinished"></translation>
+ <translation>Platit &amp;transakÄní poplatek</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation type="unfinished"></translation>
+ <translation>Dobrovolný transakÄní poplatek za každý zapoÄatý kB dopomáhá k rychlému zpracování tvých transakcí. VÄ›tÅ¡ina transakcí má do 1 kB. DoporuÄená výše poplatku je 0.01.</translation>
</message>
</context>
<context>
@@ -807,89 +786,89 @@ Adresa: %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Zpráva</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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>Podepsáním zprávy svými adresami můžeÅ¡ prokázat, že je skuteÄnÄ› vlastníš. BuÄ opatrný a nepodepisuj nic vágního; například pÅ™i phishingových útocích můžeÅ¡ být lákán, abys nÄ›co takového podepsal. Podepisuj pouze zcela úplná a detailní prohlášení, se kterými souhlasíš.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Adresa k zaslání platby (např. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Tvá adresa (např. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Vyber adresu z adresáře</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished"></translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished"></translation>
+ <translation>Vlož adresu ze schránky</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished"></translation>
+ <translation>Alt+V</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Sem vepiš zprávu, kterou chceš podepsat</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Kliknutím na &quot;Podepiš zprávu&quot; získáš podpis</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>PodepiÅ¡ zprávu, Äímž prokážeÅ¡, že jsi vlastníkem této adresy</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Podepiš zprávu</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Kopírovat aktuálně vybrané adresy do schránky</translation>
+ <translation>Zkopíruj podpis do systémové schránky</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Kopírovat do schránky</translation>
+ <translation>&amp;Zkopíruj do schránky</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Chyba při podepisování</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 není platná adresa.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Soukromý klÃ­Ä pro %1 není dostupný.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Podepisování selhalo</translation>
</message>
</context>
<context>
@@ -897,12 +876,12 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="79"/>
<source>Main</source>
- <translation type="unfinished"></translation>
+ <translation>Hlavní</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="84"/>
<source>Display</source>
- <translation type="unfinished"></translation>
+ <translation>Zobrazení</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="104"/>
@@ -915,12 +894,12 @@ Adresa: %4</translation>
<message>
<location filename="../forms/overviewpage.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Formulář</translation>
</message>
<message>
<location filename="../forms/overviewpage.ui" line="40"/>
<source>Balance:</source>
- <translation>Zůstatek:</translation>
+ <translation>Stav úÄtu:</translation>
</message>
<message>
<location filename="../forms/overviewpage.ui" line="47"/>
@@ -952,7 +931,7 @@ Adresa: %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -963,22 +942,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/overviewpage.ui" line="122"/>
<source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
- <translation>&lt;b&gt;Nedávné transakce&lt;/b&gt;</translation>
+ <translation>&lt;b&gt;Poslední transakce&lt;/b&gt;</translation>
</message>
<message>
<location filename="../overviewpage.cpp" line="103"/>
<source>Your current balance</source>
- <translation>Váš aktuální zůstatek</translation>
+ <translation>Aktuální stav tvého úÄtu</translation>
</message>
<message>
<location filename="../overviewpage.cpp" line="108"/>
<source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
- <translation type="unfinished"></translation>
+ <translation>Celkem z transakcí, které jeÅ¡tÄ› nejsou potvrzené a které se jeÅ¡tÄ› nezapoÄítávají do celkového stavu úÄtu</translation>
</message>
<message>
<location filename="../overviewpage.cpp" line="111"/>
<source>Total number of transactions in wallet</source>
- <translation>Celkové množství transakcí</translation>
+ <translation>Celkový poÄet transakcí v peněžence</translation>
</message>
</context>
<context>
@@ -986,42 +965,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialog</translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR kód</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Požadovat platbu</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Částka:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>OznaÄení:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Zpráva:</translation>
+ <translation>Zpráva:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Ulož jako...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>Ulož obrázek...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>PNG obrázky (*.png)</translation>
</message>
</context>
<context>
@@ -1036,32 +1025,32 @@ p, li { white-space: pre-wrap; }
<location filename="../sendcoinsdialog.cpp" line="148"/>
<location filename="../sendcoinsdialog.cpp" line="153"/>
<source>Send Coins</source>
- <translation type="unfinished"></translation>
+ <translation>Pošli mince</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="64"/>
<source>Send to multiple recipients at once</source>
- <translation type="unfinished"></translation>
+ <translation>Pošli více příjemcům naráz</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="67"/>
<source>&amp;Add recipient...</source>
- <translation type="unfinished"></translation>
+ <translation>Při&amp;dej příjemce...</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Smaž vÅ¡echny transakÄní formuláře</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
<source>Clear all</source>
- <translation>VyÄistit vÅ¡e</translation>
+ <translation>Všechno smaž</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="106"/>
<source>Balance:</source>
- <translation>Zůstatek:</translation>
+ <translation>Stav úÄtu:</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="113"/>
@@ -1071,27 +1060,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="144"/>
<source>Confirm the send action</source>
- <translation type="unfinished"></translation>
+ <translation>PotvrÄ odeslání</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="147"/>
<source>&amp;Send</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Pošli</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="94"/>
<source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;%1&lt;/b&gt; pro %2 (%3)</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="99"/>
<source>Confirm send coins</source>
- <translation type="unfinished"></translation>
+ <translation>PotvrÄ odeslání mincí</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="100"/>
<source>Are you sure you want to send %1?</source>
- <translation>Opravdu chcete odeslat %1?</translation>
+ <translation>Jsi si jistý, že chceš poslat %1?</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="100"/>
@@ -1101,37 +1090,37 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="123"/>
<source>The recepient address is not valid, please recheck.</source>
- <translation>Adresa příjemce není platná, zkontrolujte ji prosím.</translation>
+ <translation>Adresa příjemce je neplatná, překontroluj ji prosím.</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="128"/>
<source>The amount to pay must be larger than 0.</source>
- <translation>Částka k zaplacení musí být větší než 0.</translation>
+ <translation>Odesílaná Äástka musí být vÄ›tší než 0.</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="133"/>
<source>Amount exceeds your balance</source>
- <translation>Částka převyšuje Váš zůstatek</translation>
+ <translation>Částka pÅ™ekraÄuje stav úÄtu</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="138"/>
<source>Total exceeds your balance when the %1 transaction fee is included</source>
- <translation type="unfinished"></translation>
+ <translation>Celková Äástka pÅ™i pÅ™ipoÄítání poplatku %1 pÅ™ekroÄí stav úÄtu</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="144"/>
<source>Duplicate address found, can only send to each address once in one send operation</source>
- <translation type="unfinished"></translation>
+ <translation>Zaznamenána duplikovaná adresa; každá adresa může být v odesílané platbě pouze jednou</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="149"/>
<source>Error: Transaction creation failed </source>
- <translation>Chyba: Vytváření transakce selhalo </translation>
+ <translation>Chyba: Vytvoření transakce selhalo </translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="154"/>
<source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
- <translation>Chyba: Transakce byla zamítnuta. K tomuto může dojít pokud některé z mincí ve Vaši peněžence již byly utraceny, např. pokud jste někde použili kopii souboru wallet.dat a mince utratili.</translation>
+ <translation>Chyba Transakce byla odmítnuta. Tohle může nastat, pokud nÄ›jaké mince z tvé peněženky už jednou byly utraceny, například pokud používáš kopii souboru wallet.dat a mince byly utraceny v druhé kopii, ale nebyly oznaÄeny jako utracené v této.</translation>
</message>
</context>
<context>
@@ -1139,63 +1128,63 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Formulář</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="29"/>
<source>A&amp;mount:</source>
- <translation type="unfinished"></translation>
+ <translation>Čá&amp;stka:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="42"/>
<source>Pay &amp;To:</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Komu:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="66"/>
<location filename="../sendcoinsentry.cpp" line="26"/>
<source>Enter a label for this address to add it to your address book</source>
- <translation type="unfinished"></translation>
+ <translation>Zadej oznaÄení této adresy; obojí se ti pak uloží do adresáře</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="75"/>
<source>&amp;Label:</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;OznaÄení:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="93"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation>Adresa k zaslání platby (např. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Adresa příjemce (např. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="103"/>
<source>Choose address from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Vyber adresu z adresáře</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="113"/>
<source>Alt+A</source>
- <translation type="unfinished"></translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="120"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished"></translation>
+ <translation>Vlož adresu ze schránky</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="130"/>
<source>Alt+P</source>
- <translation type="unfinished"></translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="137"/>
<source>Remove this recipient</source>
- <translation>Odstranit tohoto příjemce</translation>
+ <translation>Smaž tohoto příjemce</translation>
</message>
<message>
<location filename="../sendcoinsentry.cpp" line="25"/>
<source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation>Zadejte Bitcoin adresu (napÅ™.1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Zadej Bitcoinovou adresu (napÅ™. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
</context>
<context>
@@ -1203,22 +1192,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="18"/>
<source>Open for %1 blocks</source>
- <translation type="unfinished"></translation>
+ <translation>Otevřeno pro %1 bloků</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="20"/>
<source>Open until %1</source>
- <translation type="unfinished"></translation>
+ <translation>Otřevřeno dokud %1</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="26"/>
<source>%1/offline?</source>
- <translation type="unfinished"></translation>
+ <translation>%1/offline?</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="28"/>
<source>%1/unconfirmed</source>
- <translation>%1 potvrzeno</translation>
+ <translation>%1/nepotvrzeno</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="30"/>
@@ -1233,17 +1222,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="52"/>
<source>, has not been successfully broadcast yet</source>
- <translation type="unfinished"></translation>
+ <translation>, ještě nebylo rozesláno</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="54"/>
<source>, broadcast through %1 node</source>
- <translation type="unfinished"></translation>
+ <translation>, rozesláno přes %1 uzel</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="56"/>
<source>, broadcast through %1 nodes</source>
- <translation type="unfinished"></translation>
+ <translation>, rozesláno přes %1 uzlů</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="60"/>
@@ -1253,7 +1242,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="67"/>
<source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Zdroj:&lt;/b&gt; Vygenerováno&lt;br&gt;</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="73"/>
@@ -1264,24 +1253,24 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="90"/>
<source>unknown</source>
- <translation type="unfinished"></translation>
+ <translation>neznámo</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="91"/>
<location filename="../transactiondesc.cpp" line="114"/>
<location filename="../transactiondesc.cpp" line="173"/>
<source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation>&lt;b&gt;Komu:&lt;/b&gt; </translation>
+ <translation>&lt;b&gt;Pro:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="94"/>
<source> (yours, label: </source>
- <translation type="unfinished"></translation>
+ <translation> (tvoje, oznaÄení: </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="96"/>
<source> (yours)</source>
- <translation type="unfinished"></translation>
+ <translation> (tvoje)</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="131"/>
@@ -1289,12 +1278,12 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="190"/>
<location filename="../transactiondesc.cpp" line="207"/>
<source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Příjem:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="133"/>
<source>(%1 matures in %2 more blocks)</source>
- <translation type="unfinished"></translation>
+ <translation>(%1 dozraje po %2 blocích)</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="137"/>
@@ -1306,17 +1295,17 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="189"/>
<location filename="../transactiondesc.cpp" line="204"/>
<source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Výdaj:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="195"/>
<source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="unfinished">&lt;b&gt;TransakÄní poplatek:&lt;/b&gt; </translation>
+ <translation>&lt;b&gt;TransakÄní poplatek:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="211"/>
<source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;ÄŒistá Äástka:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="217"/>
@@ -1331,12 +1320,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>ID transakce:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
<source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="unfinished"></translation>
+ <translation>Vygenerované mince musí Äekat 120 bloků, než mohou být utraceny. Když jsi vygeneroval tenhle blok, tak byl rozposlán do sítÄ›, aby byl pÅ™idán do Å™etÄ›zce bloků. Pokud se mu nepodaří dostat se do Å™etÄ›zce, zmÄ›ní se na &quot;neakceptovaný&quot; a nepůjde utratit. ObÄas se to může stát, když jiný uzel vygeneruje blok zhruba ve stejném okamžiku jako ty.</translation>
</message>
</context>
<context>
@@ -1349,7 +1338,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/transactiondescdialog.ui" line="20"/>
<source>This pane shows a detailed description of the transaction</source>
- <translation>Toto podokno zobrazuje detailní popis transakce</translation>
+ <translation>Toto okno zobrazuje detailní popis transakce</translation>
</message>
</context>
<context>
@@ -1372,26 +1361,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="213"/>
<source>Amount</source>
- <translation>Množství</translation>
+ <translation>Částka</translation>
</message>
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
- </translation>
+ <translation><numerusform>Otevřeno pro 1 blok</numerusform><numerusform>Otevřeno pro %n bloky</numerusform><numerusform>Otevřeno pro %n bloků</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
<source>Open until %1</source>
- <translation type="unfinished"></translation>
+ <translation>Otřevřeno dokud %1</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="280"/>
<source>Offline (%1 confirmations)</source>
- <translation type="unfinished"></translation>
+ <translation>Offline (%1 potvrzení)</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="283"/>
@@ -1406,49 +1391,37 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
- </translation>
+ <translation><numerusform>Vytěžené mince budou použitelné po jednom bloku</numerusform><numerusform>Vytěžené mince budou použitelné po %n blocích</numerusform><numerusform>Vytěžené mince budou použitelné po %n blocích</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
<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>
+ <translation>Tento blok nedostal žádný jiný uzel a pravděpodobně nebude akceptován!</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="304"/>
<source>Generated but not accepted</source>
- <translation type="unfinished"></translation>
+ <translation>Vygenerováno, ale neakceptováno</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="347"/>
<source>Received with</source>
- <translation>Přijato s</translation>
+ <translation>Přijato do</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Přijato z IP</translation>
+ <translation>Přijato od</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
<source>Sent to</source>
- <translation>Odesláno na</translation>
- </message>
- <message>
- <source>Sent to IP</source>
- <translation type="obsolete">Odesláno na IP</translation>
+ <translation>Posláno na</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
- <translation>Platba sobě saménu</translation>
+ <translation>Platba sama sobÄ›</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="356"/>
@@ -1458,204 +1431,204 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="394"/>
<source>(n/a)</source>
- <translation type="unfinished"></translation>
+ <translation>(n/a)</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="593"/>
<source>Transaction status. Hover over this field to show number of confirmations.</source>
- <translation type="unfinished"></translation>
+ <translation>Stav transakce. Najetím myÅ¡i na toto políÄko si zobrazíš poÄet potvrzení.</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="595"/>
<source>Date and time that the transaction was received.</source>
- <translation type="unfinished"></translation>
+ <translation>Datum a Äas pÅ™ijetí transakce.</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="597"/>
<source>Type of transaction.</source>
- <translation>Typ transakce.</translation>
+ <translation>Druh transakce.</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="599"/>
<source>Destination address of transaction.</source>
- <translation type="unfinished"></translation>
+ <translation>Cílová adresa transakce.</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="601"/>
<source>Amount removed from or added to balance.</source>
- <translation type="unfinished"></translation>
+ <translation>Částka odeÄtená z nebo pÅ™iÄtená k úÄtu.</translation>
</message>
</context>
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>VÅ¡e</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Dnes</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Tento týden</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Tento měsíc</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Minulý měsíc</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
- <translation>Tento rok</translation>
+ <translation>Letos</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Rozsah...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
- <translation>Přijato s</translation>
+ <translation>Přijato</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
- <translation>Odesláno na</translation>
+ <translation>Posláno</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
- <translation>Sobě samému</translation>
+ <translation>Sám sobě</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Vytěženo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Ostatní</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
- <translation type="unfinished"></translation>
+ <translation>Zadej adresu nebo oznaÄení pro její vyhledání</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
- <translation>Min. množství</translation>
+ <translation>Minimální Äástka</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
- <translation>Kopírovat sdresu</translation>
+ <translation>Kopíruj adresu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
- <translation>Kopírovat popis</translation>
+ <translation>Kopíruj její oznaÄení</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Kopíruj Äástku</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
- <translation>Upravit popis</translation>
+ <translation>Uprav oznaÄení</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
- <translation>Zobrazit detaily...</translation>
+ <translation>Zobraz detaily....</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
- <translation>Exportovat data transakcí</translation>
+ <translation>Exportuj transakÄní data</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
- <translation>Textový soubor oddělený středníkem (*.csv)</translation>
+ <translation>CSV formát (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Potvrzeno</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Typ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
- <translation>Popis</translation>
+ <translation>OznaÄení</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adresa</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
- <translation>Množství</translation>
+ <translation>Částka</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Chyba při exportu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
- <translation>Nelze zapisovat do souboru %1.</translation>
+ <translation>Nemohu zapisovat do souboru %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Rozsah:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
- <translation type="unfinished"></translation>
+ <translation>až</translation>
</message>
</context>
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
- <translation>Odesílám...</translation>
+ <translation>Posílám...</translation>
</message>
</context>
<context>
@@ -1663,27 +1636,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="3"/>
<source>Bitcoin version</source>
- <translation>Verze Bitcoin</translation>
+ <translation>Verze Bitcoinu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="4"/>
<source>Usage:</source>
- <translation>Použití:</translation>
+ <translation>Užití:</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="5"/>
<source>Send command to -server or bitcoind</source>
- <translation type="unfinished"></translation>
+ <translation>Poslat příkaz pro -server nebo bitcoind</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="6"/>
<source>List commands</source>
- <translation type="unfinished"></translation>
+ <translation>Výpis příkazů</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="7"/>
<source>Get help for a command</source>
- <translation type="unfinished"></translation>
+ <translation>Získat nápovědu pro příkaz</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="8"/>
@@ -1693,268 +1666,269 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
<source>Specify configuration file (default: bitcoin.conf)</source>
- <translation type="unfinished"></translation>
+ <translation>KonfiguraÄní soubor (výchozí: bitcoin.conf)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
<source>Specify pid file (default: bitcoind.pid)</source>
- <translation type="unfinished"></translation>
+ <translation>PID soubor (výchozí: bitcoind.pid)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
<source>Generate coins</source>
- <translation type="unfinished"></translation>
+ <translation>Generovat mince</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="12"/>
<source>Don&apos;t generate coins</source>
- <translation type="unfinished"></translation>
+ <translation>Negenerovat mince</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="13"/>
<source>Start minimized</source>
- <translation type="unfinished"></translation>
+ <translation>Startovat minimalizovanÄ›</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
<source>Specify data directory</source>
- <translation type="unfinished"></translation>
+ <translation>Adresář pro data</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
<source>Specify connection timeout (in milliseconds)</source>
- <translation type="unfinished"></translation>
+ <translation>Zadej Äasový limit spojení (v milisekundách)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
<source>Connect through socks4 proxy</source>
- <translation type="unfinished"></translation>
+ <translation>Připojovat se přes socks4 proxy</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="17"/>
<source>Allow DNS lookups for addnode and connect</source>
- <translation type="unfinished"></translation>
+ <translation>Povolit DNS dotazy pro addnode (přidání uzlu) a connect (připojení)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Čekat na spojení na &lt;portu&gt; (výchozí: 8333 nebo testnet: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Povol nejvýše &lt;n&gt; připojení k uzlům (výchozí: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
<source>Add a node to connect to</source>
- <translation type="unfinished"></translation>
+ <translation>Přidat uzel, ke kterému se připojit</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="21"/>
<source>Connect only to the specified node</source>
- <translation type="unfinished"></translation>
+ <translation>Připojovat se pouze k udanému uzlu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="22"/>
<source>Don&apos;t accept connections from outside</source>
- <translation type="unfinished"></translation>
+ <translation>NepÅ™ijímat pÅ™ipojení zvenÄí</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>NenaÄítat seznam uzlů z DNS</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Práh pro odpojování nesprávně se chovajících uzlů (výchozí: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Doba ve vteřinách, po kterou se nebudou moci nesprávně se chovající uzly znovu připojit (výchozí: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximální velikost přijímacího bufferu pro každé spojení, &lt;n&gt;*1000 bytů (výchozí: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximální velikost odesílacího bufferu pro každé spojení, &lt;n&gt;*1000 bytů (výchozí: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
<source>Don&apos;t attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation>Nesnažit se použít UPnP k namapování naslouchacího portu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="31"/>
<source>Attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation>Snažit se použít UPnP k namapování naslouchacího portu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation type="unfinished"></translation>
+ <translation>Poplatek za kB, který se přidá ke každé odeslané transakci</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
<source>Accept command line and JSON-RPC commands</source>
- <translation type="unfinished"></translation>
+ <translation>Akceptovat příkazy z příkazové řádky a přes JSON-RPC</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="34"/>
<source>Run in the background as a daemon and accept commands</source>
- <translation type="unfinished"></translation>
+ <translation>Běžet na pozadí jako démon a akceptovat příkazy</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="35"/>
<source>Use the test network</source>
- <translation type="unfinished"></translation>
+ <translation>Použít testovací síť (testnet)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Tisknout speciální ladící informace</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>PÅ™ipojit pÅ™ed ladící výstup Äasové razítko</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Posílat stopovací/ladící informace do konzole místo do souboru debug.log</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Posílat stopovací/ladící informace do debuggeru</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
<source>Username for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Uživatelské jméno pro JSON-RPC spojení</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="41"/>
<source>Password for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Heslo pro JSON-RPC spojení</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="42"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
- <translation type="unfinished"></translation>
+ <translation>Čekat na JSON-RPC spojení na &lt;portu&gt; (výchozí: 8332)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="43"/>
<source>Allow JSON-RPC connections from specified IP address</source>
- <translation type="unfinished"></translation>
+ <translation>Povolit JSON-RPC spojení ze specifikované IP adresy</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="44"/>
<source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
- <translation type="unfinished"></translation>
+ <translation>Posílat příkazy uzlu běžícím na &lt;ip&gt; (výchozí: 127.0.0.1)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="45"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Nastavit zásobník klíÄů na velikost &lt;n&gt; (výchozí: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="46"/>
<source>Rescan the block chain for missing wallet transactions</source>
- <translation type="unfinished"></translation>
+ <translation>Přeskenovat řetězec bloků na chybějící transakce tvé pěněženky</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="47"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
- <translation type="unfinished"></translation>
+ <translation>
+Možnosti SSL: (viz instrukce nastavení SSL v Bitcoin Wiki)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="50"/>
<source>Use OpenSSL (https) for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Použít OpenSSL (https) pro JSON-RPC spojení</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="51"/>
<source>Server certificate file (default: server.cert)</source>
- <translation type="unfinished"></translation>
+ <translation>Soubor se serverovým certifikátem (výchozí: server.cert)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="52"/>
<source>Server private key (default: server.pem)</source>
- <translation type="unfinished"></translation>
+ <translation>Soubor se serverovým soukromým klíÄem (výchozí: server.pem)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="53"/>
<source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
- <translation type="unfinished"></translation>
+ <translation>Akceptovatelné šifry (výchozí: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="56"/>
<source>This help message</source>
- <translation type="unfinished"></translation>
+ <translation>Tato nápověda</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="57"/>
<source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
+ <translation>Nedaří se mi získat zámek na datový adresář %s. Bitcoin pravděpodobně už jednou běží.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="60"/>
<source>Loading addresses...</source>
- <translation>NaÄítání adres...</translation>
+ <translation>NaÄítám adresy...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Chyba pÅ™i naÄítání addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Chyba pÅ™i naÄítání blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Chyba pÅ™i naÄítání wallet.dat: peněženka je poÅ¡kozená</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Chyba pÅ™i naÄítání wallet.dat: peněženka vyžaduje novÄ›jší verzi Bitcoinu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Soubor s peněženkou potÅ™eboval pÅ™epsat: restartuj Bitcoin, aby se operace dokonÄila</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Chyba pÅ™i naÄítání wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
<source>Loading block index...</source>
- <translation type="unfinished"></translation>
+ <translation>NaÄítám index bloků...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
- <translation>NaÄítání peněženky...</translation>
+ <translation>NaÄítám peněženku...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
- <translation type="unfinished"></translation>
+ <translation>Přeskenovávám...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="70"/>
@@ -1969,268 +1943,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="72"/>
<source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>Neplatná Äástka pro -paytxfee=&lt;Äástka&gt;</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="73"/>
<source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
- <translation type="unfinished"></translation>
+ <translation>UpozornÄ›ní: -paytxfee je nastaveno velmi vysoko. Toto je transakÄní poplatek, který zaplatíš za každou poslanou transakci.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="76"/>
<source>Error: CreateThread(StartNode) failed</source>
- <translation>Chyba: CreateThread(StartNode) selhalo</translation>
+ <translation>Chyba: Selhalo CreateThread(StartNode)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="77"/>
<source>Warning: Disk space is low </source>
- <translation>Varování: Málo místa na disku </translation>
+ <translation>Upozornění: Na disku je málo místa </translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="78"/>
<source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Zadejte stávající heslo k peněžence.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Heslo</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Heslo zadané k dešifrování peněženky nebylo správné</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Stav</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Datum</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Popis</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/nepotvrzeno</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d potvrzení</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Od: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Platba sobě samému</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(nepřipojeno)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d připojení %d bloků %d transakcí</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Peněženka již je zašifrována.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Zadejte nové heslo k peněžence.
-Používejte prosím heslo s 10 nebo více náhodnými znaky, případně s osmi nebo více slovy.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Chyba: Zadané heslo je příliš krátké.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">VAROVÃNÃ: Pokud zaÅ¡ifrujete peněženku a zapomenete své heslo, PŘIJDETE O VEÅ KERÉ SVÉ BITCOINY!
-Opravdu si přejete zašifrovat Vaši peněženku?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Prosím zopakujte Vaše nové heslo k peněžence.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Chyba: zadaná hesla nesouhlasí.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Šifrování peněženky selhalo.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Peněženka není šifrovaná, nejdříve ji prosím zašifrujte.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Zadejte nové heslo k peněžence</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Zopakujte nové heslo k peněžence.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Heslo peněženky změněno.</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Stav:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Datum:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Od:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Komu:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(neakceptováno)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;TransakÄní poplatek:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Zpráva:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Komentář:</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Nemonu zapsat soubor autostart/bitcoin.desktop</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">verze %s</translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Platba odeslána </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Odesílám...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Neplatná adresa </translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ZRUÅ ENO</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Zrušeno</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Přenos zrušen </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Chyba: </translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Připojování...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Nemožno se připojit</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Vytváření transakce...</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Vytváření transakce selhalo...</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transakce přerušena</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Spojení ztraceno, transakce zrušena</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Odesílání platby...</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Jméno</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adresa</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Popis</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin adresa</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Toto je jedna z Vašich vlastních adres pro příjem plateb a nemůže být zadána do adresáře. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Upravit adresu</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Upravit popisek adresy</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Nová adresa</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (nepřipojeno)</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Program zhavaroval a bude ukonÄen. </translation>
+ <translation>Nedaří se mi pÅ™ipojit na port %d na tomhle poÄítaÄi. Bitcoin už pravdÄ›podobnÄ› jednou běží.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
- <translation type="unfinished"></translation>
+ <translation>UpozornÄ›ní: Zkontroluj, že máš v poÄítaÄi správnÄ› nastavený datum a Äas. Pokud jsou nastaveny Å¡patnÄ›, Bitcoin nebude fungovat správnÄ›.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="84"/>
@@ -2238,16 +1976,4 @@ Opravdu si přejete zašifrovat Vaši peněženku?</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts
index d5e51c2688..1a7f916ae0 100644
--- a/src/qt/locale/bitcoin_da.ts
+++ b/src/qt/locale/bitcoin_da.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="da">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="da" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,7 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin Developers
-
-Dette program er ekperimentielt.
-
-Det er gjort tilgængeligt under MIT/X11 softwarelicensen. Se den tilhørende fil &quot;license.txt&quot; eller http://www.opensource.org/licenses/mit-license.php.
-
-Produktet indeholder software som er udviklet af OpenSSL Project til brug i OpenSSL Toolkit (http://www.openssl.org/), kryptografisk software skrevet af Eric Young (eay@cryptsoft.com) og UPnP-software skrevet by Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin Developers
-
-Dette program er ekperimentielt.
-
-Det er gjort tilgængeligt under MIT/X11 softwarelicensen. Se den tilhørende fil &quot;license.txt&quot; eller http://www.opensource.org/licenses/mit-license.php.
-
-Produktet indeholder software som er udviklet af OpenSSL Project til brug i OpenSSL Toolkit (http://www.openssl.org/), kryptografisk software skrevet af Eric Young (eay@cryptsoft.com) og UPnP-software skrevet by Thomas Bernard.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -88,17 +64,17 @@ Produktet indeholder software som er udviklet af OpenSSL Project til brug i Open
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +87,42 @@ Produktet indeholder software som er udviklet af OpenSSL Project til brug i Open
<translation>&amp;Slet</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Kopier adresse</translation>
+ <translation>Kopier adresse</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Kopier etiket</translation>
+ <translation>Kopier etiket</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Eksporter Adressekartoteketsdata</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommasepareret fil (*. csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Fejl under eksport</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Kunne ikke skrive til filen %1.</translation>
</message>
@@ -258,17 +234,13 @@ Er du sikker på at du ønsker at kryptere din tegnebog?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Husk, at kryptere din tegnebog vil ikke fuldt ud beskytte dine bitcoins mod at blive stjålet af malware på din computer.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,319 +287,319 @@ Er du sikker på at du ønsker at kryptere din tegnebog?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin Tegnebog</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Synkroniserer med netværk ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Blokkæde synkronisering i gang</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Oversigt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Vis generel oversigt over tegnebog</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transaktioner</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Gennemse transaktionshistorik</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Adressebog</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Rediger listen over gemte adresser og etiketter</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Modtag coins</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Vis listen over adresser for at modtage betalinger</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Send coins</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Send coins til en bitcoinadresse</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Luk</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Afslut program</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;Om %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Vis oplysninger om Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Indstillinger ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Rediger konfigurationsindstillinger af bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Ã…bn &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Vis Bitcoinvinduet</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Eksporter...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Eksportér den aktuelle visning til en fil</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Kryptér tegnebog</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Kryptér eller dekryptér tegnebog</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Skift adgangskode</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Skift kodeord anvendt til tegnebogskryptering</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Fil</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Indstillinger</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Hjælp</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Faneværktøjslinje</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Handlingsværktøjslinje</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktiv(e) forbindelse(r) til Bitcoinnetværket</numerusform>
- <numerusform>%n aktiv(e) forbindelse(r) til Bitcoinnetværket</numerusform>
- </translation>
+ <translation><numerusform>%n aktiv(e) forbindelse(r) til Bitcoinnetværket</numerusform><numerusform>%n aktiv(e) forbindelse(r) til Bitcoinnetværket</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Downloadet %1 af %2 blokke af transaktionshistorie.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Downloadet %1 blokke af transaktionshistorie.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n sekund(er) siden</numerusform>
- <numerusform>%n sekund(er) siden</numerusform>
- </translation>
+ <translation><numerusform>%n sekund(er) siden</numerusform><numerusform>%n sekund(er) siden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n minut(ter) siden</numerusform>
- <numerusform>%n minut(ter) siden</numerusform>
- </translation>
+ <translation><numerusform>%n minut(ter) siden</numerusform><numerusform>%n minut(ter) siden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n time(r) siden</numerusform>
- <numerusform>%n time(r) siden</numerusform>
- </translation>
+ <translation><numerusform>%n time(r) siden</numerusform><numerusform>%n time(r) siden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n dag(e) siden</numerusform>
- <numerusform>%n dag(e) siden</numerusform>
- </translation>
+ <translation><numerusform>%n dag(e) siden</numerusform><numerusform>%n dag(e) siden</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Opdateret</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Indhenter...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Sidst modtagne blok blev genereret %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Denne transaktion er over størrelsesbegrænsningen. Du kan stadig sende den for et gebyr på %1 som går til de noder der behandler din transaktion, og som hjælper med at støtte netværket. Ønsker du at betale gebyret?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Sender...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Afsendt transaktion</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Indgående transaktion</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Dato: %1
-Beløb: %2
-Type: %3
-Adresse: %4
-
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Dato: %1
+ <translation>Dato: %1
Beløb: %2
Type: %3
Adresse: %4
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Tegnebog er &lt;b&gt;krypteret&lt;/b&gt; og i øjeblikket &lt;b&gt;ulåst&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Tegnebog er &lt;b&gt;krypteret&lt;/b&gt; og i øjeblikket &lt;b&gt;låst&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -790,7 +762,7 @@ Adresse: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Valgfri transaktionsgebyr pr. kB, der hjælper dine transaktioner med at blive behandlet hurtigt. De fleste transaktioner er på 1 kB. Gebyr på 0.01 anbefales.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -800,7 +772,7 @@ Adresse: %4
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Valgfri transaktionsgebyr pr. kB, der hjælper dine transaktioner med at blive behandlet hurtigt. De fleste transaktioner er på 1 kB. Gebyr på 0.01 anbefales.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -808,89 +780,89 @@ Adresse: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Adresse som betalingen skal sendes til (f.eks. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Adresse som betalingen skal sendes til (f.eks. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Vælg adresse fra adressebog</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Indsæt adresse fra udklipsholderen</translation>
+ <translation>Indsæt adresse fra udklipsholderen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Kopier den valgte adresse til systemets udklipsholder</translation>
+ <translation>Kopier den valgte adresse til systemets udklipsholder</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Kopier til Udklipsholder</translation>
+ <translation>&amp;Kopier til Udklipsholder</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -953,7 +925,7 @@ Adresse: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -987,42 +959,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialog</translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Besked:</translation>
+ <translation>Besked:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1052,7 +1034,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1332,7 +1314,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1378,10 +1360,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Ã…ben for %n blok(ke)</numerusform>
- <numerusform>Ã…ben for %n blok(ke)</numerusform>
- </translation>
+ <translation><numerusform>Ã…ben for %n blok(ke)</numerusform><numerusform>Ã…ben for %n blok(ke)</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1406,10 +1385,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Minerede balance vil være tilgængelig om %n blok(ke)</numerusform>
- <numerusform>Minerede balance vil være tilgængelig om %n blok(ke)</numerusform>
- </translation>
+ <translation><numerusform>Minerede balance vil være tilgængelig om %n blok(ke)</numerusform><numerusform>Minerede balance vil være tilgængelig om %n blok(ke)</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1429,11 +1405,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Modtaget fra IP</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1441,10 +1413,6 @@ p, li { white-space: pre-wrap; }
<translation>Sendt til</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Sendt til IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Betaling til dig selv</translation>
@@ -1488,163 +1456,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Alle</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>I dag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Denne uge</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Denne måned</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Sidste måned</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Dette år</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Interval...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Modtaget med</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Sendt til</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Til dig selv</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Minerede</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Andet</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Indtast adresse eller etiket for at søge</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Min. beløb</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Kopier adresse</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Kopier etiket</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Rediger etiket</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Vis detaljer...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Eksportér Transaktionsdata</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommasepareret fil (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Bekræftet</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Dato</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Type</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Etiket</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adresse</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Beløb</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Fejl under eksport</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Kunne ikke skrive til filen %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Interval:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>til</translation>
</message>
@@ -1652,7 +1620,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Sender...</translation>
</message>
@@ -1750,12 +1718,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1778,27 +1746,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1813,8 +1781,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>Gebyr pr. kB, som skal tilføjes til transaktioner du sender
-</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1837,22 +1804,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1946,37 +1913,32 @@ SSL-indstillinger: (se Bitcoin Wiki for SSL opsætningsinstruktioner)</translati
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Fejl ved indlæsning af addr.dat
-</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1984,31 +1946,11 @@ SSL-indstillinger: (se Bitcoin Wiki for SSL opsætningsinstruktioner)</translati
<translation>Indlæser blok-indeks...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Fejl ved indlæsning af blkindex.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Indlæser tegnebog...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Fejl ved indlæsning af wallet.dat: Tegnebog ødelagt
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Fejl ved indlæsning af wallet.dat: Tegnebog kræver en nyere version af Bitcoin
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Fejl ved indlæsning af wallet.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Genindlæser...</translation>
@@ -2049,472 +1991,6 @@ SSL-indstillinger: (se Bitcoin Wiki for SSL opsætningsinstruktioner)</translati
<translation>Kunne ikke binde sig til port %d på denne computer. Bitcoin kører sikkert allerede.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Denne transaktion er over størrelsesbegrænsningen. Du kan stadig sende den for et gebyr på %s som går til de noder der behandler din transaktion, og som hjælper med at støtte netværket. Ønsker du at betale gebyret?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Indtast den nuværende adgangskode til tegnebogen.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Adgangskode</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Angiv venligst det nuværende kodeord til dekryptering af tegnebog.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Det angivne kodeord for tegnebogsdekrypteringen er forkert.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Status</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Dato</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Beskrivelse</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debet</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Kredit</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Ã…ben for %d blokke</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Ã…ben indtil %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/offline?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/ubekræftet</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d bekræftelser</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Genereret</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Genereret (%s modnes om %d blokke)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Genereret - Advarsel: Denne blok blev ikke modtaget af nogen andre noder, og vil formentlig ikke blive accepteret!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Genereret (ikke accepteret)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Fra: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Modtaget med: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Betaling til dig selv</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Til: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Generering</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(ikke tilsluttet)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d forbindelser %d blokke %d transaktioner</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Tegnebog er allerede krypteret.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Indtast den nye adgangskode til tegnebogen.
-Brug venligst en adgangskode på 10 eller flere tilfældige tegn, eller otte eller flere ord.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Fejl: Den angivne kodeord var for kort.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">ADVARSEL: Hvis du krypterer din tegnebog og mister dit kodeord, vil du miste alle dine BITCOINS!
-Er du sikker på at du ønsker at kryptere din tegnebog?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Angiv venligst dit nye tegneborgskodeord igen.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Fejl: de angive kodeord stemte ikke overens.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Tegnebogskryptering mislykkedes.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Tegnebog Krypteret.
-Husk at kryptere din tegnebog ikke fuldt ud kan beskytte din bitcoins mod at blive stjålet af malware inficerer din computer.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Tegnebogen er ikke krypteret. Kryptér den venligst først.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Indtast den nye adgangskode til tegnebogen.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Genindtast den nye adgangskode til tegnebogen.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Adgangskode til tegnebog ændret.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Ny modtageradresse</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Du bør bruge en ny adresse for hver betaling du modtager.
-
-Mærkat</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Status:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, er ikke blevet transmitteret endnu</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, spredt gennem %d knudepunkt</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, spredt gennem %d knudepunkter</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Dato:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Kilde:&lt;/b&gt; Genereret&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Fra:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">ukendt</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Til:&lt;/b&gt;</translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (din, etiket:</translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (din)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Kredit:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s bliver moden om %d blokke)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(ikke accepteret)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Debet:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Transaktionsgebyr:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Nettobeløb:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Besked:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Kommentar:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Genererede coins skal vente 120 blokke, før de kan blive brugt. Da du genererede denne blok blev det transmitteret til netværket, for at blive føjet til blokkæden. Hvis det mislykkes at komme ind i kæden, vil den skifte til &quot;ikke godkendt&quot;, og ikke blive kunne bruges. Dette kan lejlighedsvis ske, hvis en anden node genererer en blok inden for få sekunder af din.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Skrivning til filen autostart/bitcoin.desktop ikke mulig</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Generelt</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Start Bitcoin når systemet startes</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimér ved lukning</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">version %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Fejl i beløb </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Send Coins</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Beløb overstiger saldo </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Det samlede beløb overstiger saldoen når </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> transaktionsgebyret er inkluderet </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Betaling afsendt </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Sender...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Ugyldig adresse </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Sender %s til %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ANNULLERET</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Annulleret</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Overførsel annulleret </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Fejl: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Du har ikke penge nok</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Forbinder...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Forbindelse mislykkedes</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Efterspørger offentlig nøgle...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Modtog offentlig nøgle...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Modtageren accepterer ikke transaktioner sendt til en IP-adresse</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Overførsel ikke accepteret</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Ugyldigt svar modtaget</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Opretter transaktion...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Denne transaktion kræver at du betaler et transaktionsgebyr på mindst %s pga. af transaktionens størrelse, dens kompleksitet eller fordi den gør brug af nyligt modtagne penge</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Opretning af transaktion mislykkedes</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transaktion afbrudt</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Forbindelse afbrudt, transaktion annulleret</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Sender betaling...</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 type="obsolete">Transaktionen blev afvist. Dette kan ske hvis nogle af pengene i din tegnebog allerede er brugt, for eksempel hvis du har brugt en kopi af din wallet.dat-fil og pengene er brugt i kopien af din tegnebog, men ikke blev markeret som brugte deri.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Afventer bekræftelse...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Betalingen blev afsendt, men modtageren var ikke i stand til at bekræfte den.
-Transaktionen er oprettet og vil kreditere modtageren,
-men kommentarfeltet vil være tomt.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Betalingen blev afsendt, men et ugyldigt svar blev modtaget</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Betaling fuldført</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Navn</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adresse</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Etiket</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoinadresse</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Dette er en af dine egne adresser til at modtage betalinger med, og kan ikke indtastes i adressebogen.</translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Rediger Adresse</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Redigér adressemærkat</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Tilføj adresse</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Genererer</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (ikke tilsluttet)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">Ã…&amp;bn Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Send Bitcoins</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">&amp;Indstillinger...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">&amp;Luk</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Programmet er gået ned og vil afslutte. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Advarsel: Undersøg venligst at din computers dato og klokkeslet er korrekt indstillet. Hvis der er fejl i disse vil Bitcoin ikke fungere korrekt.</translation>
@@ -2525,16 +2001,4 @@ men kommentarfeltet vil være tomt.</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts
index f034694685..42cb17d64c 100644
--- a/src/qt/locale/bitcoin_de.ts
+++ b/src/qt/locale/bitcoin_de.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="de">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="de" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin Entwickler
+ <translation>Copyright © 2009-2012 Bitcoin Entwickler
Dies ist experimentelle Software.
-Veröffentlicht unter der MIT/X11 Software-Lizenz. Sie können diese in der beiligenden Datei license.txt oder unter http://www.opensource.org/licenses/mit-license.php nachlesen.
+Veröffentlicht unter der MIT/X11 Software-Lizenz, siehe beiligende Datei license.txt oder http://www.opensource.org/licenses/mit-license.php.
-Dieses Produkt enthält Software, welche vom OpenSSL Projekt zur Verwendung im OpenSSL Toolkit (http://www.openssl.org/) entwickelt wurde, kryptographische Software von Eric Young (eay@cryptsoft.com) und UPnP Software von Thomas-Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin Entwickler
-
-Dies ist experimentelle Software.
-
-Veröffentlicht unter der MIT/X11 Software-Lizenz. Sie können diese in der beiligenden Datei license.txt oder unter http://www.opensource.org/licenses/mit-license.php nachlesen.
-
-Dieses Produkt enthält Software, welche vom OpenSSL Projekt zur Verwendung im OpenSSL Toolkit (http://www.openssl.org/) entwickelt wurde, kryptographische Software von Eric Young (eay@cryptsoft.com) und UPnP Software von Thomas-Bernard.</translation>
+Dieses Produkt enthält Software, die vom OpenSSL Projekt zur Verwendung im OpenSSL Toolkit (http://www.openssl.org/) entwickelt wurde, sowie kryptographische Software geschrieben von Eric Young (eay@cryptsoft.com) und UPnP Software geschrieben von Thomas Bernard.</translation>
</message>
</context>
<context>
@@ -58,22 +40,22 @@ Dieses Produkt enthält Software, welche vom OpenSSL Projekt zur Verwendung im O
<message>
<location filename="../forms/addressbookpage.ui" line="20"/>
<source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
- <translation>Dies sind Ihre Bitcoin-Adressen zum Empfangen von Zahlungen. Um Ihre Zahlungen zurückverfolgen zu können, schlagen wir vor, jedem Sender eine andere Empfangsadresse mitzuteilen.</translation>
+ <translation>Dies sind Ihre Bitcoin-Adressen zum Empfangen von Zahlungen. Es steht Ihnen frei, jedem Absender eine andere mitzuteilen, um einen besseren Überblick über eingehende Zahlungen zu erhalten.</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="33"/>
<source>Double-click to edit address or label</source>
- <translation>Doppelklick zum Ändern der Adresse oder der Bezeichnung</translation>
+ <translation>Doppelklicken, um die Adresse oder die Bezeichnung zu bearbeiten</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="57"/>
<source>Create a new address</source>
- <translation>Neue Adresse erstellen</translation>
+ <translation>Eine neue Adresse erstellen</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="60"/>
<source>&amp;New Address...</source>
- <translation>&amp;Neue Adresse...</translation>
+ <translation>&amp;Neue Adresse</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="71"/>
@@ -83,27 +65,27 @@ Dieses Produkt enthält Software, welche vom OpenSSL Projekt zur Verwendung im O
<message>
<location filename="../forms/addressbookpage.ui" line="74"/>
<source>&amp;Copy to Clipboard</source>
- <translation>&amp;In die Zwischenablage kopieren</translation>
+ <translation>In die Zwischenablage &amp;kopieren</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;QR-Code anzeigen</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Eine Nachricht signieren, um den Besitz einer Adresse zu beweisen</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>Nachricht &amp;signieren</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
<source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
- <translation>Die ausgewählte Adresse aus der Liste entfernen. Sie können nur ausgehende Adressen entfernen.</translation>
+ <translation>Die ausgewählte Adresse aus der Liste entfernen. Sie können nur Zahlungsadressen entfernen.</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="113"/>
@@ -111,44 +93,44 @@ Dieses Produkt enthält Software, welche vom OpenSSL Projekt zur Verwendung im O
<translation>&amp;Löschen</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Adresse kopieren</translation>
+ <translation>Adresse kopieren</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Bezeichnung kopieren</translation>
+ <translation>Bezeichnung kopieren</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Bearbeiten</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Löschen</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Adressbuch exportieren</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommagetrennte Datei (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Fehler beim Exportieren</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
- <translation>Konnte Datei %1 nicht zum Schreiben öffnen.</translation>
+ <translation>Konnte nicht in Datei %1 schreiben.</translation>
</message>
</context>
<context>
@@ -200,7 +182,7 @@ Dieses Produkt enthält Software, welche vom OpenSSL Projekt zur Verwendung im O
<message>
<location filename="../askpassphrasedialog.cpp" line="34"/>
<source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
- <translation>Geben Sie die neue Passphrase für die Brieftasche ein.&lt;br/&gt;Bitte benutzen Sie eine Passphrase von &lt;b&gt;zehn oder mehr zufälligen Zeichen&lt;/b&gt; oder &lt;b&gt;acht oder mehr Wörter&lt;/b&gt;.</translation>
+ <translation>Geben Sie die neue Passphrase für die Brieftasche ein.&lt;br&gt;Bitte benutzen Sie eine Passphrase bestehend aus &lt;b&gt;10 oder mehr zufälligen Zeichen&lt;/b&gt; oder &lt;b&gt;8 oder mehr Wörtern&lt;/b&gt;.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="35"/>
@@ -240,14 +222,13 @@ Dieses Produkt enthält Software, welche vom OpenSSL Projekt zur Verwendung im O
<message>
<location filename="../askpassphrasedialog.cpp" line="101"/>
<source>Confirm wallet encryption</source>
- <translation>Bestätige die Verschlüsselung der Brieftasche</translation>
+ <translation>Verschlüsselung der Brieftasche bestätigen</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="102"/>
<source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
Are you sure you wish to encrypt your wallet?</source>
- <translation>WARNUNG: Wenn Sie Ihre Brieftasche verschlüsseln und Ihre Passphrase verlieren, werden Sie &lt;b&gt;ALLE IHRE BITCOINS VERLIEREN&lt;/b&gt;!
-Sind Sie sich sicher, dass Sie Ihre Brieftasche verschlüsseln möchten?</translation>
+ <translation>WARNUNG: Wenn Sie Ihre Brieftasche verschlüsseln und Ihre Passphrase verlieren, werden Sie &lt;b&gt;ALLE IHRE BITCOINS VERLIEREN&lt;/b&gt;!&lt;br&gt;&lt;br&gt;Sind Sie sich sicher, dass Sie Ihre Brieftasche verschlüsseln möchten?</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="111"/>
@@ -258,17 +239,13 @@ Sind Sie sich sicher, dass Sie Ihre Brieftasche verschlüsseln möchten?</transl
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin wird jetzt beendet, um den Verschlüsselungsprozess abzuschließen. Bitte beachten Sie, dass die Verschlüsselung Ihrer Brieftasche nicht vollständig vor Diebstahl Ihrer Bitcoins durch Schadsoftware schützt, die Ihren Computer befällt.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Beachten Sie, dass das Verschlüsseln Ihrer Brieftasche nicht komplett vor Diebstahl Ihrer Bitcoins durch Malware schützt, die Ihren Computer infiziert hat.</translation>
+ <translation>Warnung: Die Feststelltaste ist aktiviert.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -281,7 +258,7 @@ Sind Sie sich sicher, dass Sie Ihre Brieftasche verschlüsseln möchten?</transl
<message>
<location filename="../askpassphrasedialog.cpp" line="118"/>
<source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
- <translation>Die Verschlüsselung der Brieftasche ist wegen eines internen Fehlers fehlgeschlagen. Ihre Brieftasche wurde nicht verschlüsselt.</translation>
+ <translation>Die Verschlüsselung der Brieftasche ist aufgrund eines internen Fehlers fehlgeschlagen. Ihre Brieftasche wurde nicht verschlüsselt.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="125"/>
@@ -315,316 +292,317 @@ Sind Sie sich sicher, dass Sie Ihre Brieftasche verschlüsseln möchten?</transl
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin-Brieftasche</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Synchronisiere mit Netzwerk...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
- <translation>Synchronisiere mit der Blockkette</translation>
+ <translation>Synchronisation der Blockkette wird durchgeführt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Ãœbersicht</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
- <translation>Zeige allgemeine Ãœbersicht der Brieftasche</translation>
+ <translation>Allgemeine Ãœbersicht der Brieftasche anzeigen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transaktionen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Transaktionsverlauf durchsehen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Adressbuch</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
- <translation>Gespeicherte Adressen und Bezeichnungen bearbeiten</translation>
+ <translation>Liste der gespeicherten Zahlungsadressen und Bezeichnungen bearbeiten</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
- <translation>&amp;Bitcoins empfangen</translation>
+ <translation>Bitcoins &amp;empfangen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
- <translation>Liste der Adressen zum Empfangen von Zahlungen anzeigen</translation>
+ <translation>Liste der Empfangsadressen anzeigen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
- <translation>&amp;Bitcoins überweisen</translation>
+ <translation>Bitcoins &amp;überweisen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Bitcoins an eine Bitcoin-Adresse überweisen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Nachricht signieren...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Beweisen Sie die Kontrolle einer Adresse</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
- <translation>Beenden</translation>
+ <translation>&amp;Beenden</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Anwendung beenden</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;Ãœber %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Informationen über Bitcoin anzeigen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Ãœber &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Informationen über Qt anzeigen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
- <translation>&amp;Einstellungen...</translation>
+ <translation>&amp;Erweiterte Einstellungen...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
- <translation>Einstellungen für Bitcoin ändern</translation>
+ <translation>Erweiterte Bitcoin-Einstellungen ändern</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>&amp;Bitcoin öffnen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Bitcoin-Fenster anzeigen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
- <translation>&amp;Exportieren...</translation>
+ <translation>&amp;Exportieren nach...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Aktuelle Ansicht in eine Datei exportieren</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Daten der aktuellen Ansicht in eine Datei exportieren</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
- <translation>Brieftasche &amp;verschlüsseln</translation>
+ <translation>Brieftasche &amp;verschlüsseln...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Brieftasche ent- oder verschlüsseln</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>Brieftasche &amp;sichern...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>Eine Sicherungskopie der Brieftasche erstellen und abspeichern</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
- <translation>Passphrase &amp;ändern</translation>
+ <translation>Passphrase &amp;ändern...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Ändert die Passphrase, die für die Verschlüsselung der Brieftasche benutzt wird</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Datei</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Einstellungen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Hilfe</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Registerkarten-Leiste</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Aktionen-Werkzeugleiste</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktive Verbindung zum Bitcoin-Netzwerk</numerusform>
- <numerusform>%n aktive Verbindungen zum Bitcoin-Netzwerk</numerusform>
- </translation>
+ <translation><numerusform>%n aktive Verbindung zum Bitcoin-Netzwerk</numerusform><numerusform>%n aktive Verbindungen zum Bitcoin-Netzwerk</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>%1 von %2 Blöcken des Transaktionsverlaufs heruntergeladen.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>%1 Blöcke des Transaktionsverlaufs heruntergeladen.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>vor %n Sekunde</numerusform>
- <numerusform>vor %n Sekunden</numerusform>
- </translation>
+ <translation><numerusform>vor %n Sekunde</numerusform><numerusform>vor %n Sekunden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>vor %n Minute</numerusform>
- <numerusform>vor %n Minuten</numerusform>
- </translation>
+ <translation><numerusform>vor %n Minute</numerusform><numerusform>vor %n Minuten</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>vor %n Stunde</numerusform>
- <numerusform>vor %n Stunden</numerusform>
- </translation>
+ <translation><numerusform>vor %n Stunde</numerusform><numerusform>vor %n Stunden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>vor %n Tag</numerusform>
- <numerusform>vor %n Tagen</numerusform>
- </translation>
+ <translation><numerusform>vor %n Tag</numerusform><numerusform>vor %n Tagen</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Auf aktuellem Stand</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Hole auf...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Der letzte empfangene Block wurde %1 generiert.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation>Die Transaktion übersteigt das Größenlimit. Sie können sie jedoch senden, wenn Sie einen zusätzlichen Betrag von %1 zahlen. Dieser geht an die Knoten, die Ihre Transaktion bearbeiten und unterstützt das Bitcoin-Netzwerk. Möchten Sie die Gebühr bezahlen?</translation>
+ <translation>Die Transaktion übersteigt das Größenlimit. Sie können sie trotzdem senden, wenn Sie eine zusätzliche Transaktionsgebühr in Höhe von %1 zahlen. Diese wird an die Knoten verteilt, die Ihre Transaktion bearbeiten und unterstützt damit das Bitcoin-Netzwerk.&lt;br&gt;&lt;br&gt;Möchten Sie die Gebühr bezahlen?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
- <translation>Senden...</translation>
+ <translation>Transaktionsgebühr bestätigen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Gesendete Transaktion</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
- <translation>Einkommende Transaktion</translation>
+ <translation>Eingehende Transaktion</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Datum: %1
-Betrag: %2
-Typ: %3
-Adresse: %4
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Datum: %1
+ <translation>Datum: %1
Betrag: %2
Typ: %3
Adresse: %4</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
- <translation>Brieftasche ist &lt;b&gt;verschlüsselt&lt;/b&gt; und momentan &lt;b&gt;entsperrt&lt;/b&gt;</translation>
+ <translation>Brieftasche ist &lt;b&gt;verschlüsselt&lt;/b&gt; und aktuell &lt;b&gt;entsperrt&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
- <translation>Brieftasche ist &lt;b&gt;verschlüsselt&lt;/b&gt; und momentan &lt;b&gt;gesperrt&lt;/b&gt;</translation>
+ <translation>Brieftasche ist &lt;b&gt;verschlüsselt&lt;/b&gt; und aktuell &lt;b&gt;gesperrt&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>Brieftasche sichern</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Brieftaschen-Datei (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>Sicherung der Brieftasche fehlgeschlagen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Fehler beim abspeichern der Sicherungskopie der Brieftasche.</translation>
</message>
</context>
<context>
@@ -637,7 +615,7 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="274"/>
<source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
- <translation>Wählen Sie die Standard-Unterteilungseinheit, die in der Benutzeroberfläche und beim Senden von Bitcoins angezeigt werden soll</translation>
+ <translation>Wählen Sie die Standard-Untereinheit, die in der Benutzeroberfläche und beim Überweisen von Bitcoins angezeigt werden soll</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="281"/>
@@ -710,7 +688,7 @@ Adresse: %4</translation>
<message>
<location filename="../editaddressdialog.cpp" line="106"/>
<source>New key generation failed.</source>
- <translation>Neue Schlüsselgenerierung fehlgeschlagen.</translation>
+ <translation>Generierung eines neuen Schlüssels fehlgeschlagen.</translation>
</message>
</context>
<context>
@@ -718,22 +696,22 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="170"/>
<source>&amp;Start Bitcoin on window system startup</source>
- <translation>&amp;Bitcoin beim Systemstart ausführen</translation>
+ <translation>Bitcoin beim &amp;Systemstart ausführen</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="171"/>
<source>Automatically start Bitcoin after the computer is turned on</source>
- <translation>Bitcoin automatisch starten, wenn der Computer eingeschaltet wird</translation>
+ <translation>Bitcoin automatisch ausführen, wenn der Computer eingeschaltet wird</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="175"/>
<source>&amp;Minimize to the tray instead of the taskbar</source>
- <translation>&amp;In den Infobereich statt in die Taskleiste minimieren</translation>
+ <translation>In den Infobereich anstatt in die Taskleiste &amp;minimieren</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="176"/>
<source>Show only a tray icon after minimizing the window</source>
- <translation>Nur ein Symbol im Infobereich anzeigen, wenn das Fenster minimiert wird</translation>
+ <translation>Nur ein Symbol im Infobereich anzeigen, nachdem das Fenster minimiert wurde</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="180"/>
@@ -748,7 +726,7 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="185"/>
<source>M&amp;inimize on close</source>
- <translation>Beim Schließen m&amp;inimieren</translation>
+ <translation>Beim Schließen &amp;minimieren</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="186"/>
@@ -758,12 +736,12 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="190"/>
<source>&amp;Connect through SOCKS4 proxy:</source>
- <translation>&amp;Ãœber einen SOCKS4-Proxy verbinden:</translation>
+ <translation>Ãœber einen SOCKS4-Proxy &amp;verbinden:</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="191"/>
<source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
- <translation>Über einen SOCKS4-Proxy zum Bitcoin-Netzwerk verbinden (bspw. für eine Verbindung über Tor)</translation>
+ <translation>Über einen SOCKS4-Proxy zum Bitcoin-Netzwerk verbinden (z.B. bei einer Verbindung über Tor)</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="196"/>
@@ -788,7 +766,7 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Zusätzliche Transaktionsgebühr pro kB, welche sicherstellt, dass Ihre Transaktionen schnell bearbeitet werden. Die meisten Transaktionen sind 1 kB groß. Eine Gebühr von 0.01 wird empfohlen.</translation>
+ <translation>Optionale Transaktionsgebühr pro kB, die sicherstellt, dass Ihre Transaktionen schnell bearbeitet werden. Die meisten Transaktionen sind 1 kB groß. Eine Gebühr von 0.01 wird empfohlen.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -798,7 +776,7 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Zusätzliche Transaktionsgebühr pro kB, welche sicherstellt, dass Ihre Transaktionen schnell bearbeitet werden. Die meisten Transaktionen sind 1 kB groß. Eine Gebühr von 0.01 wird empfohlen.</translation>
+ <translation>Optionale Transaktionsgebühr pro kB, die sicherstellt, dass Ihre Transaktionen schnell bearbeitet werden. Die meisten Transaktionen sind 1 kB groß. Eine Gebühr von 0.01 wird empfohlen.</translation>
</message>
</context>
<context>
@@ -806,89 +784,89 @@ Adresse: %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Nachricht signieren</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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>Sie können Nachrichten mit Ihren Adressen signieren, um den Besitz dieser Adressen zu beweisen. Bitte nutzen Sie diese Funktion mit Vorsicht und nehmen Sie sich vor Phishing-Angriffen in Acht, um nicht ungewollt etwas zu signieren, dass für Sie negative Auswirkungen haben könnte.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Die Empfangsadresse für die Überweisung (z.B. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Die Adresse mit der die Nachricht signiert wird (z.B. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Adresse aus dem Adressbuch auswählen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Adresse aus der Zwischenablage einfügen</translation>
+ <translation>Adresse aus der Zwischenablage einfügen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Zu signierende Nachricht hier eingeben</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Auf &quot;Nachricht signieren&quot; klicken, um die Signatur zu erhalten. Diese wird dann hier angezeigt.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Die Nachricht signieren, um den Besitz der angegebenen Adresse nachzuweisen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>Nachricht &amp;signieren</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Ausgewählte Adresse in die Zwischenablage kopieren</translation>
+ <translation>Aktuelle Signatur in die Zwischenablage kopieren</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;In die Zwischenablage kopieren</translation>
+ <translation>Signatur in die Zwischenablage &amp;kopieren</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Signieren</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 ist keine gültige Adresse.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Privater Schlüssel für %1 ist nicht verfügbar.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Signierung der Nachricht fehlgeschlagen</translation>
</message>
</context>
<context>
@@ -896,7 +874,7 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="79"/>
<source>Main</source>
- <translation>Haupt</translation>
+ <translation>Allgemein</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="84"/>
@@ -906,7 +884,7 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="104"/>
<source>Options</source>
- <translation>Einstellungen</translation>
+ <translation>Erweiterte Einstellungen</translation>
</message>
</context>
<context>
@@ -951,7 +929,7 @@ Adresse: %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -972,7 +950,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../overviewpage.cpp" line="108"/>
<source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
- <translation>Anzahl der Transaktionen, die noch bestätigt werden müssen und noch nicht zum aktuellen Kontostand zählen</translation>
+ <translation>Betrag aus unbestätigten Transaktionen, der noch nicht im aktuellen Kontostand enthalten ist</translation>
</message>
<message>
<location filename="../overviewpage.cpp" line="111"/>
@@ -985,42 +963,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialog</translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR-Code</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Zahlung anfordern</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Betrag:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Bezeichnung:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Nachricht:</translation>
+ <translation>Nachricht:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Speichern unter...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>QR-Code abspeichern</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>PNG Bild (*.png)</translation>
</message>
</context>
<context>
@@ -1040,17 +1028,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="64"/>
<source>Send to multiple recipients at once</source>
- <translation>An mehrere Empfänger auf einmal überweisen</translation>
+ <translation>In einer Transaktion an mehrere Empfänger auf einmal überweisen</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="67"/>
<source>&amp;Add recipient...</source>
- <translation>&amp;Empfänger hinzufügen...</translation>
+ <translation>&amp;Empfänger hinzufügen</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Alle Überweisungsfelder zurücksetzen</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1090,7 +1078,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="100"/>
<source>Are you sure you want to send %1?</source>
- <translation>Sind Sie sich sicher, dass Sie folgendes überweisen möchten: %1?</translation>
+ <translation>Sind Sie sich sicher, dass Sie die folgende Überweisung ausführen möchten?&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="100"/>
@@ -1100,27 +1088,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="123"/>
<source>The recepient address is not valid, please recheck.</source>
- <translation>Die Empfangsadresse ist ungültig, bitte nochmals überprüfen.</translation>
+ <translation>Die Zahlungsadresse ist ungültig, bitte nochmals überprüfen.</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="128"/>
<source>The amount to pay must be larger than 0.</source>
- <translation>Der zu zahlende Betrag muss mehr als 0 betragen.</translation>
+ <translation>Der zu zahlende Betrag muss größer 0 sein.</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="133"/>
<source>Amount exceeds your balance</source>
- <translation>Der Betrag übersteigt Ihren Kontostand</translation>
+ <translation>Der angegebene Betrag übersteigt Ihren Kontostand.</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="138"/>
<source>Total exceeds your balance when the %1 transaction fee is included</source>
- <translation>Summe übersteigt aufgrund der Transaktionsgebühr in Höhe von %1 Ihren Kontostand</translation>
+ <translation>Der angegebene Betrag übersteigt aufgrund der Transaktionsgebühr in Höhe von %1 Ihren Kontostand.</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="144"/>
<source>Duplicate address found, can only send to each address once in one send operation</source>
- <translation>Doppelte Adresse gefunden. Pro Vorgang kann an eine Adresse nur einmalig etwas überwiesen werden</translation>
+ <translation>Doppelte Adresse gefunden, pro Überweisung kann an jede Adresse nur einmalig etwas überwiesen werden</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="149"/>
@@ -1130,7 +1118,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="154"/>
<source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
- <translation>Fehler: Die Transaktion wurde abgelehnt. Dies kann passieren, wenn einige Ihrer Bitcoins aus Ihrer Brieftasche bereits ausgegeben wurden (z.B. aus einer Sicherungskopie Ihrer wallet.dat).</translation>
+ <translation>Fehler: Die Transaktion wurde abgelehnt. Dies kann passieren, wenn einige Bitcoins aus Ihrer Brieftasche bereits ausgegeben wurden. Beispielsweise weil Sie eine Kopie Ihrer wallet.dat genutzt, die Bitcoins dort ausgegeben haben und dies daher in der derzeit aktiven Brieftasche nicht vermerkt ist.</translation>
</message>
</context>
<context>
@@ -1154,7 +1142,7 @@ p, li { white-space: pre-wrap; }
<location filename="../forms/sendcoinsentry.ui" line="66"/>
<location filename="../sendcoinsentry.cpp" line="26"/>
<source>Enter a label for this address to add it to your address book</source>
- <translation>Geben Sie hier eine Bezeichnung der Adresse ein, um sie zum Adressbuch hinzuzufügen</translation>
+ <translation>Adressbezeichnung eingeben (diese wird bei unbekannten Adressen inkl. der Adresse dem Adressbuch hinzugefügt)</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="75"/>
@@ -1164,12 +1152,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="93"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation>Die Empfangsadresse für die Überweisung (z.B. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Die Zahlungsadresse der Ãœberweisung (z.B. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="103"/>
<source>Choose address from address book</source>
- <translation>Adresse von Adressbuch wählen</translation>
+ <translation>Adresse aus Adressbuch wählen</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="113"/>
@@ -1232,17 +1220,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="52"/>
<source>, has not been successfully broadcast yet</source>
- <translation>; wurde noch nicht erfolgreich gesendet</translation>
+ <translation>, wurde noch nicht erfolgreich übertragen</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="54"/>
<source>, broadcast through %1 node</source>
- <translation>; über %1 Knoten gesendet</translation>
+ <translation>, über %1 Knoten übertragen</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="56"/>
<source>, broadcast through %1 nodes</source>
- <translation>; über %1 Knoten gesendet</translation>
+ <translation>, über %1 Knoten übertragen</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="60"/>
@@ -1275,12 +1263,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="94"/>
<source> (yours, label: </source>
- <translation> (Ihre, Bezeichnung: </translation>
+ <translation> (Eigene Adresse, Bezeichnung: </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="96"/>
<source> (yours)</source>
- <translation> (Ihre)</translation>
+ <translation> (Eigene Adresse)</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="131"/>
@@ -1293,7 +1281,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="133"/>
<source>(%1 matures in %2 more blocks)</source>
- <translation>(%1 reift in weiteren %2 Blöcken)</translation>
+ <translation>%1 (reift noch %2 weitere Blöcke)</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="137"/>
@@ -1330,12 +1318,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>Transaktions-ID:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
<source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation>Generierte Bitcoins müssen 120 Blöcke lang warten, bevor sie ausgegeben werden können. Als Sie diesen Block generierten, wurde er an das Netzwerk gesendet, um ihn der Blockkette hinzuzufügen. Falls dies fehlschlägt wird der Status in &quot;nicht angenommen&quot; geändert und der Betrag wird nicht verfügbar werden. Das kann gelegentlich passieren, wenn ein anderer Knoten einen Block zur selben Zeit wie Sie generierte.</translation>
+ <translation>Generierte Bitcoins müssen 120 Blöcke lang warten, bevor sie ausgegeben werden können. Als Sie diesen Block generierten, wurde er an das Netzwerk übertragen, um ihn der Blockkette hinzuzufügen. Falls dies fehlschlägt wird der Status in &quot;nicht angenommen&quot; geändert und der Betrag wird nicht verfügbar werden. Das kann gelegentlich passieren, wenn ein anderer Knoten einen Block zur selben Zeit wie Sie generierte.</translation>
</message>
</context>
<context>
@@ -1376,10 +1364,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Offen für %n Block</numerusform>
- <numerusform>Offen für %n Blöcke</numerusform>
- </translation>
+ <translation><numerusform>Offen für %n Block</numerusform><numerusform>Offen für %n Blöcke</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1404,10 +1389,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Der erarbeitete Betrag wird in %n Block verfügbar sein</numerusform>
- <numerusform>Der erarbeitete Betrag wird in %n Blöcken verfügbar sein</numerusform>
- </translation>
+ <translation><numerusform>Der erarbeitete Betrag wird in %n Block verfügbar sein</numerusform><numerusform>Der erarbeitete Betrag wird in %n Blöcken verfügbar sein</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1422,16 +1404,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="347"/>
<source>Received with</source>
- <translation>Empfangen durch</translation>
+ <translation>Empfangen über</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Empfangen von IP</translation>
+ <translation>Empfangen von</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1439,13 +1417,9 @@ p, li { white-space: pre-wrap; }
<translation>Ãœberwiesen an</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Ãœberwiesen an IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
- <translation>Zahlung an Sie selbst</translation>
+ <translation>Eigenüberweisung</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="356"/>
@@ -1470,179 +1444,179 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="597"/>
<source>Type of transaction.</source>
- <translation>Art der Transaktion.</translation>
+ <translation>Art der Transaktion</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="599"/>
<source>Destination address of transaction.</source>
- <translation>Empfangsadresse der Transaktion.</translation>
+ <translation>Zieladresse der Transaktion.</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="601"/>
<source>Amount removed from or added to balance.</source>
- <translation>Betrag vom Kontostand entfernt oder hinzugefügt.</translation>
+ <translation>Der Betrag, der dem Kontostand abgezogen oder hinzugefügt wurde.</translation>
</message>
</context>
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Alle</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Heute</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Diese Woche</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Diesen Monat</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Letzten Monat</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Dieses Jahr</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
- <translation>Bereich...</translation>
+ <translation>Zeitraum</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
- <translation>Empfangen durch</translation>
+ <translation>Empfangen über</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Ãœberwiesen an</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
- <translation>Zu Ihnen selbst</translation>
+ <translation>Eigenüberweisung</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Erarbeitet</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Andere</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Zu suchende Adresse oder Bezeichnung eingeben</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
- <translation>Kleinster Betrag</translation>
+ <translation>Minimaler Betrag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Adresse kopieren</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Bezeichnung kopieren</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Betrag kopieren</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Bezeichnung bearbeiten</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
- <translation>Details anzeigen...</translation>
+ <translation>Transaktionsdetails anzeigen</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Transaktionen exportieren</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommagetrennte Datei (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Bestätigt</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Typ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Bezeichnung</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adresse</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Betrag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Fehler beim Exportieren</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Konnte nicht in Datei %1 schreiben.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
- <translation>Bereich:</translation>
+ <translation>Zeitraum:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>bis</translation>
</message>
@@ -1650,7 +1624,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Ãœberweise...</translation>
</message>
@@ -1670,13 +1644,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="5"/>
<source>Send command to -server or bitcoind</source>
- <translation type="unfinished"></translation>
+ <translation>Befehl an -server oder bitcoind senden</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="6"/>
<source>List commands</source>
- <translation>Befehle auflisten
-</translation>
+ <translation>Befehle auflisten</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="7"/>
@@ -1696,12 +1669,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
<source>Specify pid file (default: bitcoind.pid)</source>
- <translation>PID-Datei angeben (Standart: bitcoind.pid)</translation>
+ <translation>PID-Datei angeben (Standard: bitcoind.pid)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
<source>Generate coins</source>
- <translation>Generiere Bitcoins</translation>
+ <translation>Bitcoins generieren</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="12"/>
@@ -1726,7 +1699,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
<source>Connect through socks4 proxy</source>
- <translation type="unfinished"></translation>
+ <translation>Ãœber einen SOCKS4-Proxy verbinden:</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="17"/>
@@ -1736,22 +1709,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Verbindungen erwarten an &lt;port&gt; (Standard: 8333 oder test-Netzwerk: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximal &lt;n&gt; Verbindungen zu Peers aufrechterhalten (Standard: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
<source>Add a node to connect to</source>
- <translation type="unfinished"></translation>
+ <translation>Einen Knoten hinzufügen, mit dem sich verbunden werden soll</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="21"/>
<source>Connect only to the specified node</source>
- <translation>Nur zu angegebenem Knoten verbinden</translation>
+ <translation>Nur mit dem angegebenem Knoten verbinden</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="22"/>
@@ -1761,37 +1734,37 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Keine Peerliste durch die Nutzung von DNS erzeugen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Schwellenwert, um Verbindungen zu sich nicht konform verhaltenden Peers zu beenden (Standard: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Anzahl Sekunden, während denen sich nicht konform verhaltenden Peers die Wiederverbindung verweigert wird (Standard: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximale Größe des Empfangspuffers pro Verbindung, &lt;n&gt;*1000 Bytes (Standard: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximale Größe des Sendepuffers pro Verbindung, &lt;n&gt;*1000 Bytes (Standard: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
<source>Don&apos;t attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation>Nicht versuchen UPnP zu verwenden, um den abgehörten Port weiterzuleiten</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="31"/>
<source>Attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation>Versuchen UPnP zu verwenden, um den abgehörten Port weiterzuleiten</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
@@ -1801,7 +1774,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
<source>Accept command line and JSON-RPC commands</source>
- <translation type="unfinished"></translation>
+ <translation>Kommandozeilenbefehle und JSON-RPC Befehle annehmen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="34"/>
@@ -1811,27 +1784,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="35"/>
<source>Use the test network</source>
- <translation>Das test Netzwerk verwenden</translation>
+ <translation>Das test-Netzwerk verwenden</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Ausgabe zusätzlicher Debugging-Informationen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Der Debug-Ausgabe einen Zeitstempel voranstellen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Rückverfolgungs- und Debug-Informationen an die Konsole senden anstatt sie in die debug.log Datei zu schreiben</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Rückverfolgungs- und Debug-Informationen an den Debugger senden</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1846,34 +1819,34 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="42"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
- <translation type="unfinished"></translation>
+ <translation>JSON-RPC Verbindungen erwarten an &lt;port&gt; (Standard: 8332)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="43"/>
<source>Allow JSON-RPC connections from specified IP address</source>
- <translation type="unfinished"></translation>
+ <translation>JSON-RPC Verbindungen von der angegebenen IP-Adresse erlauben</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="44"/>
<source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
- <translation>Sende Befehle an Bitcoin Knoten &lt;ip&gt; (Standard: 127.0.0.1)</translation>
+ <translation>Sende Befehle an Knoten &lt;ip&gt; (Standard: 127.0.0.1)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="45"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
- <translation>Setze Größe des Keypools auf &lt;n&gt; (Standart: 100)</translation>
+ <translation>Setze Größe des Schlüsselpools auf &lt;n&gt; (Standard: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="46"/>
<source>Rescan the block chain for missing wallet transactions</source>
- <translation>Rescan der Blockkette nach fehlenden die Brieftasche betreffenden Transaktionen</translation>
+ <translation>Blockkette erneut nach fehlenden Transaktionen der Brieftasche durchsuchen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="47"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>
-SSL Einstellungen: (Siehe Bitcoin Wiki für SSL Installationsanweisungen)</translation>
+SSL Einstellungen: (siehe Bitcoin-Wiki für SSL Installationsanweisungen)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="50"/>
@@ -1883,17 +1856,17 @@ SSL Einstellungen: (Siehe Bitcoin Wiki für SSL Installationsanweisungen)</trans
<message>
<location filename="../bitcoinstrings.cpp" line="51"/>
<source>Server certificate file (default: server.cert)</source>
- <translation>Server Zertifikat (Standart: server.cert)</translation>
+ <translation>Server Zertifikat (Standard: server.cert)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="52"/>
<source>Server private key (default: server.pem)</source>
- <translation>Privater Serverschlüssel (Standart: server.pem)</translation>
+ <translation>Privater Serverschlüssel (Standard: server.pem)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="53"/>
<source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
- <translation>Akzeptierte Cipher (Standart: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
+ <translation>Akzeptierte Chiffren (Standard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="56"/>
@@ -1903,7 +1876,7 @@ SSL Einstellungen: (Siehe Bitcoin Wiki für SSL Installationsanweisungen)</trans
<message>
<location filename="../bitcoinstrings.cpp" line="57"/>
<source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
- <translation>Konnte das Datenverzeichnis %s nicht sperren. Evtl. wurde das Programm mehrfach gestartet.</translation>
+ <translation>Konnte das Datenverzeichnis %s nicht sperren. Evtl. wurde Bitcoin bereits gestartet.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="60"/>
@@ -1913,37 +1886,32 @@ SSL Einstellungen: (Siehe Bitcoin Wiki für SSL Installationsanweisungen)</trans
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Laden von addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Laden von blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Laden von wallet.dat: Brieftasche beschädigt</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Laden von wallet.dat: Brieftasche benötigt neuere Version von Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Brieftasche muss neu geschrieben werden: starten Sie Bitcoin zur Fertigstellung neu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Fehler beim Laden der addr.dat
-</translation>
+ <translation>Fehler beim Laden von wallet.dat (Brieftasche)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1951,31 +1919,14 @@ SSL Einstellungen: (Siehe Bitcoin Wiki für SSL Installationsanweisungen)</trans
<translation>Lade Blockindex...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Fehler beim Laden der blkindex.dat </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Lade Geldbörse...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Fehler beim Laden der wallet.dat: Brieftasche beschädigt
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Fehler beim Laden der wallet.dat: Brieftasche benötigt neuere Version von Bitcoin </translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Fehler beim Laden der wallet.dat </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
- <translation>Lade neu...</translation>
+ <translation>Durchsuche erneut...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="70"/>
@@ -1985,7 +1936,7 @@ SSL Einstellungen: (Siehe Bitcoin Wiki für SSL Installationsanweisungen)</trans
<message>
<location filename="../bitcoinstrings.cpp" line="71"/>
<source>Invalid -proxy address</source>
- <translation>Fehlerhafte Proxy Adresse</translation>
+ <translation>Fehlerhafte Proxy-Adresse</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="72"/>
@@ -1995,486 +1946,27 @@ SSL Einstellungen: (Siehe Bitcoin Wiki für SSL Installationsanweisungen)</trans
<message>
<location filename="../bitcoinstrings.cpp" line="73"/>
<source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
- <translation>Warnung: -paytxfee ist auf einen sehr hohen Wert gesetzt. Dies ist die Gebühr die beim senden einer Transaktion fällig wird.</translation>
+ <translation>Warnung: -paytxfee ist auf einen sehr hohen Wert gesetzt. Dies ist die Gebühr die beim Senden einer Transaktion fällig wird.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="76"/>
<source>Error: CreateThread(StartNode) failed</source>
- <translation>Fehler: CreateThread(StartNode) fehlerhaft</translation>
+ <translation>Fehler: CreateThread(StartNode) fehlgeschlagen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="77"/>
<source>Warning: Disk space is low </source>
- <translation>Warnung: Festplattenplatz wird knapp.</translation>
+ <translation>Warnung: Festplattenplatz wird knapp</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="78"/>
<source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
- <translation>Fehler beim registrieren des Ports %d auf diesem Computer. Evtl. läuft BitCoin bereits</translation>
- </message>
- <message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Die Transaktion hat die Größe überschritten. Sie können es trotzdem senden für eine Gebühr in Höhe von %s welche an den Knoten geht der dieses Netzwerk unterstüzt. Wollen sie die Gebühren zahlen?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Geben Sie bitte das Passwort für die Brieftasche ein.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Passwort</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Bitte die aktuelle Passphrase zur Entschlüsselung eingeben.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Die eingegebene Passphrase zum Entschlüsseln der Brieftasche war nicht korrekt.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Status</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Datum</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Beschreibung</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debitoren</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Kreditoren</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Öffne für %d Blöcke</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Geöffnet bis %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/offline?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/unbestätigte</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d bestätigte</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Generiert</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Erstellt (%s reift nach %d weiteren Blöcken)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Generiert - Warnung: Dieser Block wurde bei keinem anderen Knoten empfangen und wird wahrscheinlich nicht akzeptiert!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Generiert (nicht akzeptiert)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Von:</translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Erhalten mit:</translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Zahlung an Sie selbst</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">An:</translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete">Erzeuge</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(nicht verbunden)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d Verbindungen %d Blöcke %d Transaktionen</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Brieftasche ist bereits verschlüsselt.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Geben Sie die neue Passphrase für die Brieftasche ein
-Bitte benutzen Sie eine Passphrase von 10 oder mehr zufälligen Zeichen oder acht oder mehr Wörtern.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Fehler: Das eingegebene Passwort war zu kurz.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">WARNUNG: Wenn Sie Ihre Brieftasche verschlüsseln und Ihre Passphrase verlieren, werden Sie &lt;b&gt;ALLE IHRE BITCOINS VERLIEREN&lt;/b&gt;! Sind Sie sich sicher, dass Sie Ihre Brieftasche verschlüsseln möchten?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Bitte geben Sie Ihr neues Brieftaschenpasswort erneut ein.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Fehler: Die eingegebenen Passphrasen stimmen nicht überein.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Verschlüsselung der Brieftasche fehlgeschlagen.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Brieftasche verschlüsselt.
-Eine verschlüsselte Brieftasche bietet keinen absolut sicheren Schutz vor dem Diebstahl Deiner Bitcoins durch zum Beispiel Malware.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Brieftasche nicht verschlüsselt, bitte zuerst verschlüsseln.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Gib eine neue Passphrase für die Brieftasche eine.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Gib die neue Passphrase erneut ein.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Passphrase geändert.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Neue Empfangsadresse</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Es sollte für jeder zu erhaltende Zahlung eine neue Adresse verwendet werden.
-
-Bezeichnung</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Status:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">; wurde noch nicht erfolgreich gesendet</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, übermittelt über %d Knoten</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, übermittelt über %d Knoten</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Datum:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Quelle:&lt;/b&gt; Generiert&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Quelle:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">unbekannt</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Ziel:&lt;/b&gt;</translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (Ihre, Bezeichnung: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (Ihre)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Gutschrift:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(nicht angenommen)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Belastung:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Transaktionsgebühr:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Nettobetrag:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Nachricht:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Kommentar:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Generierte Bitcoins müssen 120 Blöcke lang warten, bevor sie ausgegeben werden können. Als Sie diesen Block generierten, wurde er an das Netzwerk gesendet, um ihn der Blockkette hinzuzufügen. Falls dies fehlschlägt wird der Status in &quot;nicht angenommen&quot; geändert und der Betrag wird nicht verfügbar werden. Das kann gelegentlich passieren, wenn ein anderer Knoten einen Block zur selben Zeit wie Sie generierte.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Kann nicht schreiben autostart / bitcoin.desktop Datei</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Haupt</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Bitcoin beim Systemstart ausführen</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;amp; Auf eine enge Minimieren</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">Version %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Fehler in der Summe</translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Bitcoins überweisen</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Betrag übersteigt Ihr Guthaben </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Insgesamt übersteigt das Gleichgewicht, wenn die</translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> Transaktionsgebühr ist enthalten </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Zahlung gesendet</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Senden...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">ungültige Adresse</translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Sende %s zu %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ABGEBROCHEN</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Abgebrochen</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Ãœbertragung abgebrochen</translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Fehler: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Unzureichender Kontostand</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Verbinde...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Kann nicht verbinden</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Fordere öffentlichen Schlüssel an...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Empfange öffentlichen Schlüssel...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Empfänger akzeptiert keine Transaktionen von ihrer IP-Adresse</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Ãœbertragung wurde nicht angenommen</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Fehlerhafte Antwort erhalten</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Erzeuge Transaktion,...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Diese Transaktion benötigt aufgrund ihrer Menge, Komplexität, oder kürzlich erhaltene Mittel eine Gebühr von mindestens %s</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Transaktionserzeugung ist fehlgeschlagen</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transaktion abgebrochen</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Verbindung wurde unterbrochen. Transaktion wurde storniert.</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Sende Zahlung...</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 type="obsolete">Fehler: Die Transaktion wurde abgelehnt. Dies kann passieren, wenn einige Ihrer Bitcoins aus Ihrer Brieftasche bereits ausgegeben wurden (z.B. aus einer Sicherungskopie Ihrer wallet.dat).</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Warte auf Bestätigung...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Die Bezahlung wurde gesendet, jedoch konnte der Empfänger es nicht bestätigen. Die Transaktion ist aufgenommen und wird dem Empfänger gutgeschrieben. Das Kommentarfeld wird leer sein.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Bezahlung wurde gesendet, eine ungültige Antwort wurde erhalten</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Die Zahlung wurde abgeschlossen</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Name</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adresse</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Bezeichnung</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin Adresse</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Dies ist eine Ihrer eigenen Adressen für den Erhalt von Zahlungen, und kann nicht in das Adressbuch eingetragen werden.</translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Adresse bearbeiten</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Adressbezeichnung ändern</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Adresse hinzufügen</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Generiere</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (nicht verbunden)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Bitcoin öffnen</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Bitcoins senden</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;ptionen...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">Beenden</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Programm hat sich aufgehängt, und wird beendet.</translation>
+ <translation>Fehler beim registrieren des Ports %d auf diesem Computer. Evtl. wurde Bitcoin bereits gestartet.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
- <translation>Bitte prüfen Sie Ihre Datums- und Uhrzeiteinstellungen, ansonsten kann es sein das BitCoin nicht ordnungsgemäss funktioniert.</translation>
+ <translation>Warnung: Bitte korrigieren Sie die Datums- und Uhrzeiteinstellungen Ihres Computers, da Bitcoin ansonsten nicht ordnungsgemäß funktionieren wird.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="84"/>
@@ -2482,16 +1974,4 @@ but the comment information will be blank.</source>
<translation>Beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts
index 5e89fe15f8..53ba23b11c 100644
--- a/src/qt/locale/bitcoin_en.ts
+++ b/src/qt/locale/bitcoin_en.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.0" language="en_US">
+<TS version="2.0" language="en">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -15,7 +15,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/aboutdialog.ui" line="85"/>
+ <location filename="../forms/aboutdialog.ui" line="91"/>
<source>Copyright © 2009-2012 Bitcoin Developers
This is experimental software.
@@ -89,42 +89,42 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="65"/>
<source>Copy address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="66"/>
<source>Copy label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="67"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="68"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="288"/>
<source>Export Address Book Data</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="289"/>
<source>Comma separated file (*.csv)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="302"/>
<source>Error exporting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="302"/>
<source>Could not write to file %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -288,283 +288,300 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="70"/>
<source>Bitcoin Wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
- <source>Synchronizing with network...</source>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>Show/Hide &amp;Bitcoin</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
- <source>Block chain synchronization in progress</source>
+ <location filename="../bitcoingui.cpp" line="499"/>
+ <source>Synchronizing with network...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="180"/>
<source>&amp;Overview</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="181"/>
<source>Show general overview of wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="186"/>
<source>&amp;Transactions</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="187"/>
<source>Browse transaction history</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="192"/>
<source>&amp;Address Book</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="193"/>
<source>Edit the list of stored addresses and labels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="198"/>
<source>&amp;Receive coins</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="199"/>
<source>Show the list of addresses for receiving payments</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="204"/>
<source>&amp;Send coins</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="205"/>
<source>Send coins to a bitcoin address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="210"/>
<source>Sign &amp;message</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="211"/>
<source>Prove you control an address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>E&amp;xit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Quit application</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>&amp;About %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="235"/>
<source>Show information about Bitcoin</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>About &amp;Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="238"/>
<source>Show information about Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>&amp;Options...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>Modify configuration options for bitcoin</source>
<translation type="unfinished"></translation>
</message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>~%n block(s) remaining</source>
+ <translation>
+ <numerusform>~%n block remaining</numerusform>
+ <numerusform>~%n blocks remaining</numerusform>
+ </translation>
+ </message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
- <source>Open &amp;Bitcoin</source>
+ <location filename="../bitcoingui.cpp" line="512"/>
+ <source>Downloaded %1 of %2 blocks of transaction history (%3% done).</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
- <source>Show the Bitcoin window</source>
+ <location filename="../bitcoingui.cpp" line="245"/>
+ <source>&amp;Export...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
- <source>&amp;Export...</source>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Show or hide the Bitcoin window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>Export the data in the current tab to a file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="247"/>
<source>&amp;Encrypt Wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>Encrypt or decrypt wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="250"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="251"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="252"/>
<source>&amp;Change Passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="253"/>
<source>Change the passphrase used for wallet encryption</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="276"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="285"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="291"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="298"/>
<source>Tabs toolbar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="309"/>
<source>Actions toolbar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="321"/>
<source>[testnet]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="383"/>
+ <source>Bitcoin client</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="411"/>
<source>bitcoin-qt</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%n active connection to Bitcoin network</numerusform>
<numerusform>%n active connections to Bitcoin network</numerusform>
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
- <source>Downloaded %1 of %2 blocks of transaction history.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="524"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="539"/>
<source>%n second(s) ago</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%n second ago</numerusform>
<numerusform>%n seconds ago</numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="543"/>
<source>%n minute(s) ago</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%n minute ago</numerusform>
<numerusform>%n minutes ago</numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="547"/>
<source>%n hour(s) ago</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%n hour ago</numerusform>
<numerusform>%n hours ago</numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="551"/>
<source>%n day(s) ago</source>
- <translation type="unfinished">
+ <translation>
<numerusform>%n day ago</numerusform>
<numerusform>%n days ago</numerusform>
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="557"/>
<source>Up to date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="562"/>
<source>Catching up...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="570"/>
<source>Last received block was generated %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="626"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Sending...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="658"/>
<source>Sent transaction</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="659"/>
<source>Incoming transaction</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="660"/>
<source>Date: %1
Amount: %2
Type: %3
@@ -573,30 +590,50 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="785"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="793"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="816"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="816"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="819"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="819"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
<message>
- <location filename="../optionsdialog.cpp" line="270"/>
+ <location filename="../optionsdialog.cpp" line="268"/>
<source>&amp;Unit to show amounts in: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="274"/>
+ <location filename="../optionsdialog.cpp" line="272"/>
<source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="281"/>
+ <location filename="../optionsdialog.cpp" line="279"/>
<source>Display addresses in transaction list</source>
<translation type="unfinished"></translation>
</message>
@@ -692,67 +729,67 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="180"/>
+ <location filename="../optionsdialog.cpp" line="184"/>
<source>Map port using &amp;UPnP</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="181"/>
+ <location filename="../optionsdialog.cpp" line="185"/>
<source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="185"/>
+ <location filename="../optionsdialog.cpp" line="179"/>
<source>M&amp;inimize on close</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="186"/>
+ <location filename="../optionsdialog.cpp" line="180"/>
<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 Quit in the menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="190"/>
+ <location filename="../optionsdialog.cpp" line="188"/>
<source>&amp;Connect through SOCKS4 proxy:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="191"/>
+ <location filename="../optionsdialog.cpp" line="189"/>
<source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="196"/>
+ <location filename="../optionsdialog.cpp" line="194"/>
<source>Proxy &amp;IP: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="202"/>
+ <location filename="../optionsdialog.cpp" line="200"/>
<source>IP address of the proxy (e.g. 127.0.0.1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="205"/>
+ <location filename="../optionsdialog.cpp" line="203"/>
<source>&amp;Port: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="211"/>
+ <location filename="../optionsdialog.cpp" line="209"/>
<source>Port of the proxy (e.g. 1234)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="217"/>
+ <location filename="../optionsdialog.cpp" line="215"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="223"/>
+ <location filename="../optionsdialog.cpp" line="221"/>
<source>Pay transaction &amp;fee</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="226"/>
+ <location filename="../optionsdialog.cpp" line="224"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
<translation type="unfinished"></translation>
</message>
@@ -766,12 +803,12 @@ Address: %4
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"></translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
- <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <source>The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -945,35 +982,50 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <location filename="../forms/qrcodedialog.ui" line="55"/>
<source>Request Payment</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <location filename="../forms/qrcodedialog.ui" line="70"/>
<source>Amount:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <location filename="../forms/qrcodedialog.ui" line="105"/>
<source>BTC</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <location filename="../forms/qrcodedialog.ui" line="121"/>
<source>Label:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <location filename="../forms/qrcodedialog.ui" line="144"/>
<source>Message:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <location filename="../forms/qrcodedialog.ui" line="186"/>
<source>&amp;Save As...</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="59"/>
+ <source>Resulting URI too long, try to reduce the text for label / message.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="116"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="116"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SendCoinsDialog</name>
@@ -1177,115 +1229,115 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="47"/>
+ <location filename="../transactiondesc.cpp" line="48"/>
<source>&lt;b&gt;Status:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="52"/>
+ <location filename="../transactiondesc.cpp" line="53"/>
<source>, has not been successfully broadcast yet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="54"/>
+ <location filename="../transactiondesc.cpp" line="55"/>
<source>, broadcast through %1 node</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="56"/>
+ <location filename="../transactiondesc.cpp" line="57"/>
<source>, broadcast through %1 nodes</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="60"/>
+ <location filename="../transactiondesc.cpp" line="61"/>
<source>&lt;b&gt;Date:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="67"/>
+ <location filename="../transactiondesc.cpp" line="68"/>
<source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="73"/>
- <location filename="../transactiondesc.cpp" line="90"/>
+ <location filename="../transactiondesc.cpp" line="74"/>
+ <location filename="../transactiondesc.cpp" line="91"/>
<source>&lt;b&gt;From:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="90"/>
+ <location filename="../transactiondesc.cpp" line="91"/>
<source>unknown</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="91"/>
- <location filename="../transactiondesc.cpp" line="114"/>
- <location filename="../transactiondesc.cpp" line="173"/>
+ <location filename="../transactiondesc.cpp" line="92"/>
+ <location filename="../transactiondesc.cpp" line="115"/>
+ <location filename="../transactiondesc.cpp" line="174"/>
<source>&lt;b&gt;To:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="94"/>
+ <location filename="../transactiondesc.cpp" line="95"/>
<source> (yours, label: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="96"/>
+ <location filename="../transactiondesc.cpp" line="97"/>
<source> (yours)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="131"/>
- <location filename="../transactiondesc.cpp" line="145"/>
- <location filename="../transactiondesc.cpp" line="190"/>
- <location filename="../transactiondesc.cpp" line="207"/>
+ <location filename="../transactiondesc.cpp" line="132"/>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="191"/>
+ <location filename="../transactiondesc.cpp" line="208"/>
<source>&lt;b&gt;Credit:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="133"/>
+ <location filename="../transactiondesc.cpp" line="134"/>
<source>(%1 matures in %2 more blocks)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="137"/>
+ <location filename="../transactiondesc.cpp" line="138"/>
<source>(not accepted)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="181"/>
- <location filename="../transactiondesc.cpp" line="189"/>
- <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="182"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
<source>&lt;b&gt;Debit:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="195"/>
+ <location filename="../transactiondesc.cpp" line="196"/>
<source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="211"/>
+ <location filename="../transactiondesc.cpp" line="212"/>
<source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="217"/>
+ <location filename="../transactiondesc.cpp" line="218"/>
<source>Message:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="219"/>
+ <location filename="../transactiondesc.cpp" line="220"/>
<source>Comment:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="221"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
<source>Transaction ID:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="224"/>
+ <location filename="../transactiondesc.cpp" line="225"/>
<source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
<translation type="unfinished"></translation>
</message>
@@ -1328,7 +1380,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation type="unfinished">
+ <translation>
<numerusform>Open for %n block</numerusform>
<numerusform>Open for %n blocks</numerusform>
</translation>
@@ -1354,75 +1406,75 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../transactiontablemodel.cpp" line="295"/>
+ <location filename="../transactiontablemodel.cpp" line="294"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation type="unfinished">
+ <translation>
<numerusform>Mined balance will be available in %n more block</numerusform>
<numerusform>Mined balance will be available in %n more blocks</numerusform>
</translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="301"/>
+ <location filename="../transactiontablemodel.cpp" line="300"/>
<source>This block was not received by any other nodes and will probably not be accepted!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="304"/>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
<source>Generated but not accepted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="347"/>
+ <location filename="../transactiontablemodel.cpp" line="346"/>
<source>Received with</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="349"/>
+ <location filename="../transactiontablemodel.cpp" line="348"/>
<source>Received from</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="352"/>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
<source>Sent to</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="354"/>
+ <location filename="../transactiontablemodel.cpp" line="353"/>
<source>Payment to yourself</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="356"/>
+ <location filename="../transactiontablemodel.cpp" line="355"/>
<source>Mined</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="394"/>
+ <location filename="../transactiontablemodel.cpp" line="393"/>
<source>(n/a)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="593"/>
+ <location filename="../transactiontablemodel.cpp" line="592"/>
<source>Transaction status. Hover over this field to show number of confirmations.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="595"/>
+ <location filename="../transactiontablemodel.cpp" line="594"/>
<source>Date and time that the transaction was received.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="597"/>
+ <location filename="../transactiontablemodel.cpp" line="596"/>
<source>Type of transaction.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="599"/>
+ <location filename="../transactiontablemodel.cpp" line="598"/>
<source>Destination address of transaction.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="601"/>
+ <location filename="../transactiontablemodel.cpp" line="600"/>
<source>Amount removed from or added to balance.</source>
<translation type="unfinished"></translation>
</message>
@@ -1430,163 +1482,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation type="unfinished"></translation>
</message>
@@ -1594,7 +1646,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="143"/>
<source>Sending...</source>
<translation type="unfinished"></translation>
</message>
@@ -1602,352 +1654,478 @@ p, li { white-space: pre-wrap; }
<context>
<name>bitcoin-core</name>
<message>
- <location filename="../bitcoinstrings.cpp" line="3"/>
- <source>Bitcoin version</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="4"/>
- <source>Usage:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="5"/>
- <source>Send command to -server or bitcoind</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="6"/>
- <source>List commands</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="7"/>
- <source>Get help for a command</source>
+ <source>Bitcoin version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="8"/>
- <source>Options:</source>
+ <source>Usage:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
- <source>Specify configuration file (default: bitcoin.conf)</source>
+ <source>Send command to -server or bitcoind</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
- <source>Specify pid file (default: bitcoind.pid)</source>
+ <source>List commands</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
- <source>Generate coins</source>
+ <source>Get help for a command</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="12"/>
- <source>Don&apos;t generate coins</source>
+ <source>Options:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="13"/>
- <source>Start minimized</source>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
- <source>Specify data directory</source>
+ <source>Specify pid file (default: bitcoind.pid)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
- <source>Specify connection timeout (in milliseconds)</source>
+ <source>Generate coins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
- <source>Connect through socks4 proxy</source>
+ <source>Don&apos;t generate coins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="17"/>
- <source>Allow DNS lookups for addnode and connect</source>
+ <source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
- <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <source>Show splash screen on startup (default: 1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
- <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <source>Specify data directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
- <source>Add a node to connect to</source>
+ <source>Set database cache size in megabytes (default: 25)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="21"/>
- <source>Connect only to the specified node</source>
+ <source>Set database disk log size in megabytes (default: 100)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="22"/>
- <source>Don&apos;t accept connections from outside</source>
+ <source>Specify connection timeout (in milliseconds)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
- <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <source>Connect through socks4 proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
- <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <source>Allow DNS lookups for addnode and connect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
- <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
- <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <source>Connect only to the specified node</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="29"/>
- <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="30"/>
- <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="31"/>
- <source>Attempt to use UPnP to map the listening port</source>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="32"/>
- <source>Fee per kB to add to transactions you send</source>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="33"/>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
<source>Accept command line and JSON-RPC commands</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="34"/>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
<source>Run in the background as a daemon and accept commands</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="35"/>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
<source>Use the test network</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="36"/>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
<source>Output extra debugging information</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="37"/>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
<source>Prepend debug output with timestamp</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="38"/>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
<source>Send trace/debug info to console instead of debug.log file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="39"/>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
<source>Send trace/debug info to debugger</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="40"/>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
<source>Username for JSON-RPC connections</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="41"/>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
<source>Password for JSON-RPC connections</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="42"/>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="43"/>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
<source>Allow JSON-RPC connections from specified IP address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="44"/>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
<source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="45"/>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Upgrade wallet to latest format</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="46"/>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
<source>Rescan the block chain for missing wallet transactions</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="47"/>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>How many blocks to check at startup (default: 2500, 0 = all)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>How thorough the block verification is (0-6, default: 1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="50"/>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
<source>Use OpenSSL (https) for JSON-RPC connections</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="51"/>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
<source>Server certificate file (default: server.cert)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="52"/>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
<source>Server private key (default: server.pem)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="53"/>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
<source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="56"/>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
<source>This help message</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="57"/>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Usage</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
<source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="60"/>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Bitcoin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
<source>Loading addresses...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="61"/>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
<source>Error loading addr.dat</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="63"/>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
<source>Error loading blkindex.dat</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="65"/>
+ <location filename="../bitcoinstrings.cpp" line="82"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="66"/>
+ <location filename="../bitcoinstrings.cpp" line="83"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="67"/>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="68"/>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
<source>Error loading wallet.dat</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="62"/>
+ <location filename="../bitcoinstrings.cpp" line="117"/>
+ <source>Error: Wallet locked, unable to create transaction </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="118"/>
+ <source>Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="121"/>
+ <source>Error: Transaction creation failed </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="122"/>
+ <source>Sending...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="123"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="127"/>
+ <source>Invalid amount</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="128"/>
+ <source>Insufficient funds</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
<source>Loading block index...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="64"/>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Add a node to connect to and attempt to keep the connection open</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Find peers using internet relay chat (default: 0)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Accept connections from outside (default: 1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Set language, for example &quot;de_DE&quot; (default: system locale)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Find peers using DNS lookup (default: 1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 0)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Fee per KB to add to transactions you send</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
<source>Loading wallet...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="69"/>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Cannot downgrade wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="87"/>
+ <source>Cannot initialize keypool</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="88"/>
+ <source>Cannot write default address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
<source>Rescanning...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="70"/>
+ <location filename="../bitcoinstrings.cpp" line="90"/>
<source>Done loading</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="71"/>
+ <location filename="../bitcoinstrings.cpp" line="91"/>
<source>Invalid -proxy address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="72"/>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
<source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="73"/>
+ <location filename="../bitcoinstrings.cpp" line="93"/>
<source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="76"/>
+ <location filename="../bitcoinstrings.cpp" line="96"/>
<source>Error: CreateThread(StartNode) failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="77"/>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
<source>Warning: Disk space is low </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="78"/>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
<source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="81"/>
- <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <location filename="../bitcoinstrings.cpp" line="97"/>
+ <source>To use the %s option</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="84"/>
- <source>beta</source>
+ <location filename="../bitcoinstrings.cpp" line="98"/>
+ <source>%s, you must set a rpcpassword in the configuration file:
+ %s
+It is recommended you use the following random password:
+rpcuser=bitcoinrpc
+rpcpassword=%s
+(you do not need to remember this password)
+If the file does not exist, create it with owner-readable-only file permissions.
+</source>
<translation type="unfinished"></translation>
</message>
-</context>
-<context>
- <name>main</name>
<message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
+ <location filename="../bitcoinstrings.cpp" line="107"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="108"/>
+ <source>An error occured while setting up the RPC port %i for listening: %s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="109"/>
+ <source>You must set rpcpassword=&lt;password&gt; in the configuration file:
+%s
+If the file does not exist, create it with owner-readable-only file permissions.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="114"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation type="unfinished"></translation>
</message>
</context>
diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts
index 4eda89174f..a388508ff8 100644
--- a/src/qt/locale/bitcoin_es.ts
+++ b/src/qt/locale/bitcoin_es.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="es">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="es" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,35 +21,7 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright (c) 2009-2010 Bitcoin Developers
-
-Este es un software experimental.
-
-Distribuido bajo la licencia MIT/X11, vea el archivo adjunto
-license.txt o http://www.opensource.org/licenses/mit-license.php.
-
-Este producto incluye software desarrollado por OpenSSL Project para su uso en
-el OpenSSL Toolkit (http://www.openssl.org) y software criptográfico escrito por
-Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright (c) 2009-2010 Bitcoin Developers
-
-Este es un software experimental.
-
-Distribuido bajo la licencia MIT/X11, vea el archivo adjunto
-license.txt o http://www.opensource.org/licenses/mit-license.php.
-
-Este producto incluye software desarrollado por OpenSSL Project para su uso en
-el OpenSSL Toolkit (http://www.openssl.org) y software criptográfico escrito por
-Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -94,17 +64,17 @@ Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard.</tran
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -117,42 +87,42 @@ Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard.</tran
<translation>Bo&amp;rrar</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Copia dirección</translation>
+ <translation>Copia dirección</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Copia etiqueta</translation>
+ <translation>Copia etiqueta</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Exporta datos de la Guia de direcciones</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Archivos separados por coma (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Exportar errores</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>No se pudo escribir al archivo %1.</translation>
</message>
@@ -264,17 +234,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Recuerda que encriptando tu cartera no garantiza mantener a salvo tus bitcoins en caso de tener viruses en el ordenador.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -321,317 +287,318 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Cartera Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Sincronizando con la red...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Sincronización cadena de bloques en progreso</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Vista general</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Muestra una vista general de cartera</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transacciónes</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Visiona el historial de transacciónes</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Guia de direcciónes</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Edita la lista de las direcciónes y etiquetas almacenada</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Recibe monedas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Muestra la lista de direcciónes utilizadas para recibir pagos</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Envia monedas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Envia monedas a una dirección bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Salir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Salir de la aplicación</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>S&amp;obre %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Muestra información sobre Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Opciones</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Modifica opciones de configuración</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Abre &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Muestra la ventana de Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Exporta...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Exporta la vista actual a un archivo</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Encriptar cartera</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Encriptar o decriptar cartera</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Cambiar la contraseña</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Cambiar la contraseña utilizada para la encriptación de cartera</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Archivo</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Configuración</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Ayuda</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Barra de pestañas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Barra de acciónes</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n conexión activa hacia la red Bitcoin</numerusform>
- <numerusform>%n conexiones activas hacia la red Bitcoin</numerusform>
- </translation>
+ <translation><numerusform>%n conexión activa hacia la red Bitcoin</numerusform><numerusform>%n conexiones activas hacia la red Bitcoin</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Se han bajado %1 de %2 bloques de historial.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Se han bajado %1 bloques de historial.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>Hace %n segundo</numerusform>
- <numerusform>Hace %n segundos</numerusform>
- </translation>
+ <translation><numerusform>Hace %n segundo</numerusform><numerusform>Hace %n segundos</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>Hace %n minuto</numerusform>
- <numerusform>Hace %n minutos</numerusform>
- </translation>
+ <translation><numerusform>Hace %n minuto</numerusform><numerusform>Hace %n minutos</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>Hace %n hora</numerusform>
- <numerusform>Hace %n horas</numerusform>
- </translation>
+ <translation><numerusform>Hace %n hora</numerusform><numerusform>Hace %n horas</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>Hace %n día</numerusform>
- <numerusform>Hace %n días</numerusform>
- </translation>
+ <translation><numerusform>Hace %n día</numerusform><numerusform>Hace %n días</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Actualizado</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Recuperando...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>El ultimo bloque recibido fue generado %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Esta transacción supera el límite. Puedes seguir enviandola incluyendo una comisión de %s que se va a repartir entre los nodos que procesan su transacción y ayudan a mantener la red. ¿Quieres seguir con la transacción?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Enviando...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Transacción enviada</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Transacción entrante</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Fecha: %1
-Cantidad: %2
-Tipo: %3
-Dirección: %4
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Fecha: %1
+ <translation>Fecha: %1
Cantidad: %2
Tipo: %3
Dirección: %4</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>La cartera esta &lt;b&gt;encriptada&lt;/b&gt; y actualmente &lt;b&gt;desbloqueda&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>La cartera esta &lt;b&gt;encriptada&lt;/b&gt; y actualmente &lt;b&gt;bloqueda&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -794,7 +761,7 @@ Dirección: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Comisión opcional a las transacciones por kB que ayuda a asegurar que tus transacciones son procesadas rápidamente. La mayoría de las transacciones son de 1 kB. Se recomienda una comisión de 0.01.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -804,7 +771,7 @@ Dirección: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Comisión opcional a las transacciones por kB que ayuda a asegurar que tus transacciones son procesadas rápidamente. La mayoría de las transacciones son de 1 kB. Se recomienda una comisión de 0.01.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -812,89 +779,89 @@ Dirección: %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">La dirección donde enviar el pago (ej. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>La dirección donde enviar el pago (ej. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Elije dirección de la guia</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Pega dirección desde portapapeles</translation>
+ <translation>Pega dirección desde portapapeles</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Copia la dirección seleccionada al portapapeles</translation>
+ <translation>Copia la dirección seleccionada al portapapeles</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Copiar al portapapeles</translation>
+ <translation>&amp;Copiar al portapapeles</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -957,7 +924,7 @@ Dirección: %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -991,42 +958,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Cambiar contraseña</translation>
+ <translation>Cambiar contraseña</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Mensaje:</translation>
+ <translation>Mensaje:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1056,7 +1033,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1336,7 +1313,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1382,10 +1359,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Abierto por %n bloque</numerusform>
- <numerusform>Abierto por %n bloques</numerusform>
- </translation>
+ <translation><numerusform>Abierto por %n bloque</numerusform><numerusform>Abierto por %n bloques</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1410,10 +1384,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>El balance minado estará disponible en %n bloque mas</numerusform>
- <numerusform>El balance minado estará disponible en %n bloques mas</numerusform>
- </translation>
+ <translation><numerusform>El balance minado estará disponible en %n bloque mas</numerusform><numerusform>El balance minado estará disponible en %n bloques mas</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1433,11 +1404,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Recibido de IP</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1445,10 +1412,6 @@ p, li { white-space: pre-wrap; }
<translation>Enviado a</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Enviado a IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Pago proprio</translation>
@@ -1492,163 +1455,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Todo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Hoy</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Esta semana</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Esta mes</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Mes pasado</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Este año</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Rango...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Recibido con</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Enviado a</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>A ti mismo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Minado</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Otra</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Introduce una dirección o etiqueta para buscar</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Cantidad minima</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Copia dirección</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Copia etiqueta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Edita etiqueta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Muestra detalles...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Exportar datos de transacción</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Archivos separados por coma (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Confirmado</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Fecha</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Tipo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Etiqueta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Dirección</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Cantidad</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Error exportando</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>No se pudo escribir en el archivo %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Rango:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>para</translation>
</message>
@@ -1656,7 +1619,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Enviando...</translation>
</message>
@@ -1754,12 +1717,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1782,27 +1745,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1819,8 +1782,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>Comisión por kB para agregar a las transacciones que envias
-</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1843,22 +1805,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1953,37 +1915,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Error cargando addr.dat
-</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1991,31 +1948,11 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>Cargando el index de bloques...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Error cargando blkindex.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Cargando cartera...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Error cargando wallet.dat: Cartera dañada
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Error cargando el archivo wallet.dat: Se necesita una versión mas nueva de Bitcoin
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Error cargando wallet.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Rescaneando...</translation>
@@ -2056,472 +1993,6 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>No es posible escuchar en el puerto %d en este ordenador. Probablemente Bitcoin ya se está ejecutando.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Esta transacción supera el límite. Puedes seguir enviandola incluyendo una comisión de %s que se va a repartir entre los nodos que procesan su transacción y ayudan a mantener la red. ¿Quieres seguir con la transacción?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Introduce la contraseña actual de la cartera.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Contraseña</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Por favor introduce la contraseña actual de la cartera.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">La contraseña introducida para decriptar la cartera es incorrecta.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Estado</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Fecha</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Descripción</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debito</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Credito</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Abierto para %d bloques</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Abierto hasta %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/fuera de linea?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/no confirmado</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d confirmaciónes</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Generado</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Generado (%s madura en %d bloques)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Generado - Cuidado: Este bloque no se recibió de otros nodos y probablemente no sea aceptado!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Generado (no aceptado)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">De: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Recibido con: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Pago a ti mismo</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Para: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Generando</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(no conectado)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d conexiones %d bloques %d transacciones</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">La cartera ya esta encriptada.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Introduce la nueva contraseña de cartera.
-Por favor utiliza un contraseña de 10 o mas caracteres aleatorios, u ocho o mas palabras.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Error: La contraseña introducida es demasiado corta.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">ATENCION: ¡Si encriptas tu cartera y pierdes la contraseña perderas TODOS TUS BITCOINS!
-¿Estas seguro que quieres seguir encriptando la cartera?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Por favor vuelve introducir la nueva contraseña.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Error: las contraseñas no son identicas.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Encriptacion de cartera fallida.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Cartera Encriptada.
-Recuerda que encriptando tu cartera no garantiza mantener a salvo tus bitcoins en caso de tener viruses en el ordenador.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Cartera no encriptada, intenta encriptar primero.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Introduce la nueva contraseña para la cartera.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Reintroduce la nueva contraseña para la cartera.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Contraseña de cartera cambiada.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Nueva dirección de recepción</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Debes usar una nueva dirección para cada pago que usted recibe.
-
-Etiqueta</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Estado:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, no ha sido emitido satisfactoriamente todavía</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, emitido mediante %d nodo</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, emitido mediante %d nodos</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Fecha:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Fuente:&lt;/b&gt; Generado&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;De:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">desconocido</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Para:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete">(tuya, etiqueta: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete">(tuya)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Crédito:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s madura en %d bloques)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(no aceptada)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Débito:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Comisión transacción:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Cantidad total:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Mensaje:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Comentario:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Las monedas generadas deben esperar 120 bloques antes de ser gastadas. Cuando has generado este bloque se emitió a la red para ser agregado en la cadena de bloques. Si falla al incluirse en la cadena, cambiará a &quot;no aceptado&quot; y las monedas no se podrán gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque casi al mismo tiempo que el tuyo.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">No se puede escribir el fichero autostart/bitcoin.desktop</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Principal</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Arranca Bitcoin al iniciar el sistema</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimiza al cerrar</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">versión %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Error en la cantidad </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Envia monedas</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">La cantidad sobrepasa tu balance </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">El total sobrepasa tu balance cuando se </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete">incluyen las tasas de transacción </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Pago enviado </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Enviando...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Dirección inválida </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Enviando %s a %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">CANCELADO</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Cancelado</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Transferencia cancelada </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Error: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Fondos insuficientes</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Conectando...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">No es posible conectar</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Pidiendo clave pública...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Clave pública recibida...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">El destinatario no accepta transacciones enviadas a direcciones IP</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">La transferencia no fue aceptada</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Respuesta inválida recibida</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Creando transacción...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Esta transacción requiere una comisión de al menos %s por su cantidad, complejidad o uso de fondos recibidos recientemente</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Fallo al crear la transacción.</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transacción abortada</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Conexión perdida, transacción cancelada</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Enviando pago...</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 type="obsolete">La transacción fue rechazada. Esto puede haber ocurrido si alguna de las monedas ya estaba gastada o si ha usado una copia de wallet.dat y las monedas se gastaron en la copia pero no se han marcado como gastadas aqui.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Esperando confirmación...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">El pago se ha enviado, pero el receptor no pudo verificarlo.
-La transacción se grabó y el saldo fue transferido,
-pero la información de los comentarios quedará en blanco.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">El pago fue enviado, pero se recibió una respuesta inválida</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Pago completado</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Nombre</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Dirección</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Etiqueta</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Dirección Bitcoin</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Esta es una de sus direcciones para recibir pagos y no puede incluirse en la libreta de direcciones. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Edita dirección</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Edita etiqueta dirección</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Agrega dirección</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Generando</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (no conectado)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Abre Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Envia Bitcoins</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;pciones</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">S&amp;alir</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">El programa ha detectado un error y va a cerrarse. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Precaución: Por favor revisa que la fecha y hora de tu ordenador son correctas. Si tu reloj está mal Bitcoin no funcionará correctamente.</translation>
@@ -2532,16 +2003,4 @@ pero la información de los comentarios quedará en blanco.</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts
index e84d90b493..d0986b691d 100644
--- a/src/qt/locale/bitcoin_es_CL.ts
+++ b/src/qt/locale/bitcoin_es_CL.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="es_CL">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="es_CL" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,35 +21,7 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin Developers
-
-Este es un software experimental.
-
-Distribuido bajo la licencia MIT/X11, vea el archivo adjunto
-license.txt o http://www.opensource.org/licenses/mit-license.php.
-
-Este producto incluye software desarrollado por OpenSSL Project para su uso en
-el OpenSSL Toolkit (http://www.openssl.org/), software criptográfico escrito por
-Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin Developers
-
-Este es un software experimental.
-
-Distribuido bajo la licencia MIT/X11, vea el archivo adjunto
-license.txt o http://www.opensource.org/licenses/mit-license.php.
-
-Este producto incluye software desarrollado por OpenSSL Project para su uso en
-el OpenSSL Toolkit (http://www.openssl.org/), software criptográfico escrito por
-Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -94,17 +64,17 @@ Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard.</tran
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar Código &amp;QR </translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Firmar un mensaje para provar que usted es dueño de esta dirección</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>Firmar Mensaje</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -117,42 +87,42 @@ Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard.</tran
<translation>&amp;Borrar</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Copia dirección</translation>
+ <translation>Copia dirección</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Copia etiqueta</translation>
+ <translation>Copia etiqueta</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Editar</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Borrar</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Exporta datos de la guia de direcciones</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Archivos separados por coma (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Exportar errores</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>No se pudo escribir al archivo %1.</translation>
</message>
@@ -264,17 +234,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin se cerrará para finalizar el proceso de encriptación. Recuerde que encriptar su billetera no protegera completatamente sus bitcoins de ser robados por malware que infecte su computador</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Recuerda que codificando tu billetera no garantiza mantener a salvo tus bitcoins en caso de tener virus en el computador.</translation>
+ <translation>Precaucion: Mayúsculas Activadas</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -321,317 +287,318 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Billetera Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Sincronizando con la red...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Sincronización de la cadena de bloques en progreso</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Vista general</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Muestra una vista general de la billetera</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transacciónes</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Explora el historial de transacciónes</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Guia de direcciónes</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Edita la lista de direcciones y etiquetas almacenadas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Recibir monedas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Muestra la lista de direcciónes utilizadas para recibir pagos</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Envíar monedas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Enviar monedas a una dirección bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>Firmar Mensaje</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Suministre dirección de control</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Salir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Salir del programa</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>S&amp;obre %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Muestra información acerca de Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Acerca de</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar Información sobre QT</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Opciones</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Modifica las opciones de configuración de bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Abre &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Muestra la ventana de Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Exportar...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Exportar la vista actual a un archivo</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Codificar la billetera</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Codificar o decodificar la billetera</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Cambiar la contraseña</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Cambiar la contraseña utilizada para la codificación de la billetera</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Archivo</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Configuración</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Ayuda</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Barra de pestañas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Barra de acciónes</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[red-de-pruebas]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n conexión activa hacia la red Bitcoin</numerusform>
- <numerusform>%n conexiones activas hacia la red Bitcoin</numerusform>
- </translation>
+ <translation><numerusform>%n conexión activa hacia la red Bitcoin</numerusform><numerusform>%n conexiones activas hacia la red Bitcoin</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Descargados %1 de %2 bloques del historial de transacciones.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Descargado %1 bloques del historial de transacciones.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>Hace %n segundo</numerusform>
- <numerusform>Hace %n segundos</numerusform>
- </translation>
+ <translation><numerusform>Hace %n segundo</numerusform><numerusform>Hace %n segundos</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>Hace %n minuto</numerusform>
- <numerusform>Hace %n minutos</numerusform>
- </translation>
+ <translation><numerusform>Hace %n minuto</numerusform><numerusform>Hace %n minutos</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>Hace %n hora</numerusform>
- <numerusform>Hace %n horas</numerusform>
- </translation>
+ <translation><numerusform>Hace %n hora</numerusform><numerusform>Hace %n horas</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>Hace %n día</numerusform>
- <numerusform>Hace %n días</numerusform>
- </translation>
+ <translation><numerusform>Hace %n día</numerusform><numerusform>Hace %n días</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Actualizado</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Recuperando...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>El ultimo bloque recibido fue generado %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Esta transacción supera el límite. Puedes seguir enviandola incluyendo una comisión de %s que se va a repartir entre los nodos que procesan su transacción y ayudan a mantener la red. ¿Quieres seguir con la transacción?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Enviando...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Transacción enviada</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Transacción entrante</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Fecha: %1
-Cantidad: %2
-Tipo: %3
-Dirección: %4
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Fecha: %1
+ <translation>Fecha: %1
Cantidad: %2
Tipo: %3
Dirección: %4</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>La billetera esta &lt;b&gt;codificada&lt;/b&gt; y actualmente &lt;b&gt;desbloqueda&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>La billetera esta &lt;b&gt;codificada&lt;/b&gt; y actualmente &lt;b&gt;bloqueda&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -794,17 +761,17 @@ Dirección: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Comisión de operación opcional por kB que ayuda a asegurar que tus transacciones sean procesadas rápidamente. La mayoría de las transacciones son de 1 kB. Se recomienda una comisión de 0.01.</translation>
+ <translation>Comisión opcional por kB que ayuda a asegurar que sus transacciones son procesadas rápidamente. La mayoria de transacciones son de 1 KB. Se recomienda comisión de 0.01 </translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
<source>Pay transaction &amp;fee</source>
- <translation>Comision de &amp;transacciónes</translation>
+ <translation>Comisión de &amp;transacciónes</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Comisión de operación opcional por kB que ayuda a asegurar que tus transacciones sean procesadas rápidamente. La mayoría de las transacciones son de 1 kB. Se recomienda una comisión de 0.01.</translation>
+ <translation>Comisión opcional por kB que ayuda a asegurar que sus transacciones son procesadas rápidamente. La mayoria de transacciones son de 1 KB. Se recomienda comisión de 0.01 </translation>
</message>
</context>
<context>
@@ -812,89 +779,89 @@ Dirección: %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Mensaje</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">La dirección donde enviar el pago (ej. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>La dirección donde enviar el pago (ej. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Elije dirección de la guia</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Pega dirección desde portapapeles</translation>
+ <translation>Pega dirección desde portapapeles</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Escriba el mensaje que desea firmar</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Click en &quot;Firmar Mensage&quot; para conseguir firma</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Firmar un mensjage para probar que usted es dueño de esta dirección</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp; Firmar Mensaje</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Copia la dirección seleccionada al portapapeles</translation>
+ <translation>Copiar la dirección seleccionada al portapapeles</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Copiar al portapapeles</translation>
+ <translation>&amp;Copiar al portapapeles</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Error al firmar</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 no es una dirección válida.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Llave privada para %q no esta disponible.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Falló Firma</translation>
</message>
</context>
<context>
@@ -957,7 +924,7 @@ Dirección: %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -991,42 +958,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Cambiar contraseña</translation>
+ <translation>Cambiar contraseña</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Código QR </translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Solicitar Pago</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Cantidad:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Etiqueta</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Mensaje:</translation>
+ <translation>Mensaje:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Guardar Como...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1056,7 +1033,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Remover todos los campos de la transacción</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1175,7 +1152,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="103"/>
<source>Choose address from address book</source>
- <translation>Elije dirección de la guia</translation>
+ <translation>Elije dirección de la guia</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="113"/>
@@ -1336,7 +1313,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>ID de Transacción:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1382,10 +1359,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Abierto por %n bloque</numerusform>
- <numerusform>Abierto por %n bloques</numerusform>
- </translation>
+ <translation><numerusform>Abierto por %n bloque</numerusform><numerusform>Abierto por %n bloques</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1410,10 +1384,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>El balance minado estará disponible en %n bloque mas</numerusform>
- <numerusform>El balance minado estará disponible en %n bloques mas</numerusform>
- </translation>
+ <translation><numerusform>El balance minado estará disponible en %n bloque mas</numerusform><numerusform>El balance minado estará disponible en %n bloques mas</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1433,11 +1404,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Recibido de IP</translation>
+ <translation>Recibido de</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1445,13 +1412,9 @@ p, li { white-space: pre-wrap; }
<translation>Enviado a</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Enviado a IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
- <translation>Pago proprio</translation>
+ <translation>Pagar a usted mismo</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="356"/>
@@ -1492,163 +1455,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Todo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Hoy</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Esta semana</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Esta mes</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Mes pasado</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Este año</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Rango...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Recibido con</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Enviado a</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>A ti mismo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Minado</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Otra</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Introduce una dirección o etiqueta para buscar</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Cantidad minima</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Copia dirección</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Copia etiqueta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Copiar Cantidad</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Edita etiqueta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Muestra detalles...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Exportar datos de transacción</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Archivos separados por coma (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Confirmado</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Fecha</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Tipo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Etiqueta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Dirección</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Cantidad</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Error exportando</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>No se pudo escribir en el archivo %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Rango:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>para</translation>
</message>
@@ -1656,7 +1619,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Enviando...</translation>
</message>
@@ -1754,12 +1717,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Escuchar por conecciones en &lt;puerto&gt; (Por defecto: 8333 o red de prueba: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Mantener al menos &lt;n&gt; conecciones por cliente (por defecto: 125) </translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1782,27 +1745,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Umbral de desconección de clientes con mal comportamiento (por defecto: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1819,8 +1782,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>Comisión por kB para agregar a las transacciones que envias
-</translation>
+ <translation>Comisión por kB para adicionarla a las transacciones enviadas</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1843,22 +1805,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Adjuntar informacion extra de depuracion</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Anteponer salida de depuracion con marca de tiempo</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Enviar informacion de seguimiento a la consola en vez del archivo debug.log</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Enviar informacion de seguimiento al depurador</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1953,37 +1915,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Error cargando addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Error cargando blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Error cargando wallet.dat: Billetera corrupta</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Error cargando wallet.dat: Billetera necesita una vercion reciente de Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>La billetera necesita ser reescrita: reinicie Bitcoin para completar</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Error cargando addr.dat
-</translation>
+ <translation>Error cargando wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1991,31 +1948,11 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>Cargando el index de bloques...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Error cargando blkindex.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Cargando cartera...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Error cargando wallet.dat: Cartera dañada
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Error cargando el archivo wallet.dat: Se necesita una versión mas nueva de Bitcoin
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Error cargando wallet.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Rescaneando...</translation>
@@ -2056,475 +1993,9 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>No es posible escuchar en el puerto %d en este ordenador. Probablemente Bitcoin ya se está ejecutando.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Esta transacción supera el límite. Puedes seguir enviandola incluyendo una comisión de %s que se va a repartir entre los nodos que procesan su transacción y ayudan a mantener la red. ¿Quieres seguir con la transacción?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Introduce la contraseña actual de la cartera.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Contraseña</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Por favor introduce la contraseña actual de la cartera.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">La contraseña introducida para decriptar la cartera es incorrecta.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Estado</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Fecha</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Descripción</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debito</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Credito</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Abierto para %d bloques</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Abierto hasta %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/fuera de linea?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/no confirmado</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d confirmaciónes</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Generado</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Generado (%s madura en %d bloques)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Generado - Cuidado: Este bloque no se recibió de otros nodos y probablemente no sea aceptado!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Generado (no aceptado)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">De: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Recibido con: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Pago a ti mismo</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Para: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Generando</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(no conectado)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d conexiones %d bloques %d transacciones</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">La cartera ya esta encriptada.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Introduce la nueva contraseña de cartera.
-Por favor utiliza un contraseña de 10 o mas caracteres aleatorios, u ocho o mas palabras.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Error: La contraseña introducida es demasiado corta.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">ATENCION: ¡Si encriptas tu cartera y pierdes la contraseña perderas TODOS TUS BITCOINS!
-¿Estas seguro que quieres seguir encriptando la cartera?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Por favor vuelve introducir la nueva contraseña.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Error: las contraseñas no son identicas.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Encriptacion de cartera fallida.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Cartera Encriptada.
-Recuerda que encriptando tu cartera no garantiza mantener a salvo tus bitcoins en caso de tener viruses en el ordenador.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Cartera no encriptada, intenta encriptar primero.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Introduce la nueva contraseña para la cartera.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Reintroduce la nueva contraseña para la cartera.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Contraseña de cartera cambiada.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Nueva dirección de recepción</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Debes usar una nueva dirección para cada pago que usted recibe.
-
-Etiqueta</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Estado:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, no ha sido emitido satisfactoriamente todavía</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, emitido mediante %d nodo</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, emitido mediante %d nodos</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Fecha:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Fuente:&lt;/b&gt; Generado&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;De:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">desconocido</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Para:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete">(tuya, etiqueta: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete">(tuya)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Crédito:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s madura en %d bloques)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(no aceptada)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Débito:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Comisión transacción:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Cantidad total:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Mensaje:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Comentario:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Las monedas generadas deben esperar 120 bloques antes de ser gastadas. Cuando has generado este bloque se emitió a la red para ser agregado en la cadena de bloques. Si falla al incluirse en la cadena, cambiará a &quot;no aceptado&quot; y las monedas no se podrán gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque casi al mismo tiempo que el tuyo.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">No se puede escribir el fichero autostart/bitcoin.desktop</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Principal</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Arranca Bitcoin al iniciar el sistema</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimiza al cerrar</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">versión %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Error en la cantidad </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Envia monedas</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">La cantidad sobrepasa tu balance </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">El total sobrepasa tu balance cuando se </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete">incluyen las tasas de transacción </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Pago enviado </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Enviando...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Dirección inválida </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Enviando %s a %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">CANCELADO</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Cancelado</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Transferencia cancelada </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Error: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Fondos insuficientes</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Conectando...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">No es posible conectar</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Pidiendo clave pública...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Clave pública recibida...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">El destinatario no accepta transacciones enviadas a direcciones IP</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">La transferencia no fue aceptada</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Respuesta inválida recibida</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Creando transacción...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Esta transacción requiere una comisión de al menos %s por su cantidad, complejidad o uso de fondos recibidos recientemente</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Fallo al crear la transacción.</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transacción abortada</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Conexión perdida, transacción cancelada</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Enviando pago...</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 type="obsolete">La transacción fue rechazada. Esto puede haber ocurrido si alguna de las monedas ya estaba gastada o si ha usado una copia de wallet.dat y las monedas se gastaron en la copia pero no se han marcado como gastadas aqui.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Esperando confirmación...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">El pago se ha enviado, pero el receptor no pudo verificarlo.
-La transacción se grabó y el saldo fue transferido,
-pero la información de los comentarios quedará en blanco.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">El pago fue enviado, pero se recibió una respuesta inválida</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Pago completado</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Nombre</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Dirección</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Etiqueta</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Dirección Bitcoin</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Esta es una de sus direcciones para recibir pagos y no puede incluirse en la libreta de direcciones. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Edita dirección</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Edita etiqueta dirección</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Agrega dirección</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Generando</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (no conectado)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Abre Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Envia Bitcoins</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;pciones</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">S&amp;alir</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">El programa ha detectado un error y va a cerrarse. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
- <translation>Precaución: Por favor revisa que la fecha y hora de tu ordenador son correctas. Si tu reloj está mal Bitcoin no funcionará correctamente.</translation>
+ <translation>Precaución: Por favor revise que la fecha y hora de tu ordenador son correctas. Si tu reloj está mal configurado Bitcoin no funcionará correctamente.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="84"/>
@@ -2532,16 +2003,4 @@ pero la información de los comentarios quedará en blanco.</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts
new file mode 100644
index 0000000000..a14037f069
--- /dev/null
+++ b/src/qt/locale/bitcoin_et.ts
@@ -0,0 +1,1963 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="et" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Loo uus aadress</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Uus aadress...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>Kopeeri lõikelauale</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Kustuta</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation>Viga eksportimisel</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation>Silt</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation>Aadress</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation>(silti pole)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialoog</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Ãœlevaade</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Tehingud</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation>Sirvi tehingute ajalugu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Aadressiraamat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Valikud...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Ekspordi...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fail</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Seaded</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Abiinfo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Muuda aadressi</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>Si&amp;lt</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>Kopeeri lõikelauale</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation>Dialoog</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation>Sõnum:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation>tundmatu</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation>Sõnum:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation>Kommentaar:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation>Kuupäev</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation>Tüüp</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation>Aadress</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation>Kogus</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation>Kuupäev</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation>Tüüp</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Silt</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Aadress</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation>Kogus</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>Viga eksportimisel</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_eu_ES.ts b/src/qt/locale/bitcoin_eu_ES.ts
new file mode 100644
index 0000000000..b4e71af2e2
--- /dev/null
+++ b/src/qt/locale/bitcoin_eu_ES.ts
@@ -0,0 +1,1963 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="eu_ES" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; Bertsio</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Helbide-liburua</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Sortu helbide berria</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Ezabatu</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation>Helbidea</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation>Helbidea</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Helbidea</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts
index bcfa6e6787..ed2aff6ac2 100644
--- a/src/qt/locale/bitcoin_fa.ts
+++ b/src/qt/locale/bitcoin_fa.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="fa">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="fa" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -24,29 +22,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished"> بر نامه نویسان بیتکویین© حق چاپ 2011-2009
+ <translation>کپی رایت © 2012-2009 Bitcoin Developers
-این نرم اÙزار آزمایشی است
-توزیع می شود که همراه اراییه شده استMIT/X که با مجاوز
-http://www.opensource.org/licenses/mit-license.php.
- نرم اÙزار گراÙیک OpenSSL Toolkit (http://www.openssl.org/) برای استÙاده در OpenSSL این عبارتند از نرماÙزار
- Ùˆ نرم اÙزاری نوشته شده توسط توماس برنارد (eay@cryptsoft.com) نوشته توسط اریک یانگ {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
+این یک نرم‌اÙزار آزمایشی است.
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete"> بر نامه نویسان بیتکویین© حق چاپ 2011-2009
+توزیع شده تحت امتیاز نرم‌اÙزار MIT/X11ØŒ از Ùایل همراه با عنوان license.txt یا http://www.opensource.org/licenses/mit-license.php دیدن کنید.
-این نرم اÙزار آزمایشی است
-توزیع می شود که همراه اراییه شده استMIT/X که با مجاوز
-http://www.opensource.org/licenses/mit-license.php.
- نرم اÙزار گراÙیک OpenSSL Toolkit (http://www.openssl.org/) برای استÙاده در OpenSSL این عبارتند از نرماÙزار
- Ùˆ نرم اÙزاری نوشته شده توسط توماس برنارد (eay@cryptsoft.com) نوشته توسط اریک یانگ </translation>
+این محصول از نرم‌اÙزار ساخته شده در OpenSSL Project برای استÙاده در جعبه ابزار OpenSSL†(http://www.openssl.org/‎)ØŒ نرم‌اÙزار نهÙته نوشته شده توسط اریک یانگ (eay@cryptsoft.com) Ùˆ نرم‌اÙزار UPnP نوشته شده توسط توماس برنارد تشکیل شده است.</translation>
</message>
</context>
<context>
@@ -90,17 +72,17 @@ http://www.opensource.org/licenses/mit-license.php.
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>نمایش &amp;کد QR</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>یک پیام را امضا کنید تا ثابت کنید صاحب این نشانی هستید</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;امضای پیام</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -113,42 +95,42 @@ http://www.opensource.org/licenses/mit-license.php.
<translation>آدرس نو</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">کپی آدرس </translation>
+ <translation>کپی آدرس </translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">کپی بر چسب</translation>
+ <translation>کپی بر چسب</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>ویرایش</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>حذÙ</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>آدرس انتخاب شده در سیستم تخته رسم گیره دار کپی کنید</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Comma Ùایل جدا </translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>خطای صادرت</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>تا Ùایل %1 نمی شود نوشت</translation>
</message>
@@ -260,18 +242,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Biticon هم اکنون بسته می‌شود تا Ùرایند رمزگذاری را تمام کند. به خاطر داشته باشید Ú©Ù‡ رمزگذاری کی٠پولتان نمی‌تواند به طور کامل بیتیکون‌های شما را در برابر دزدیده شدن توسط بداÙزارهایی Ú©Ù‡ رایانه شما را آلوده می‌کنند، محاÙظت نماید.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">والت رمز بندی شد .
-یاد داشته باشید Ú©Ù‡ پنجره رمز شده نمی تواند کلا از سرقت نرم اÙزارهای مخرب محاÙظ کند </translation>
+ <translation>هشدار: کلید حرو٠بزرگ روشن است.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -318,312 +295,318 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>پنجره بیتکویین</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>همگام سازی با شبکه ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>همگام زنجیر بلوک در حال پیشرÙت</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>بررسی اجمالی</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>نمای کلی پنجره نشان بده</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;amp;معاملات</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>نمایش تاریخ معاملات</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>دÙتر آدرس</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>ویرایش لیست آدرسها و بر چسب های ذخیره ای</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>در یاÙت سکه</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>نمایش لیست آدرس ها برای در یاÙت پر داخت ها</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>رسال سکه ها</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>ارسال سکه به آدرس بیتکویین </translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>امضای &amp;پیام</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>اثبات کنید که روی یک نشانی کنترل دارید</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>خروج</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>خروج از برنامه </translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;حدود%1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>نمایش اطلاعات در مورد بیتکویین</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>درباره &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>نمایش اطلاعات درباره Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>تنظیمات...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>صلاح تنظیمات برای بیتکویین</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>باز کردن &amp;amp;بیتکویین </translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>نمایش پنجره بیتکویین</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;;صادرات</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>صادرات نمایش جاری Ùایل</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;رمز بندی پنجره</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>رمز بندی یا رمز گشایی پنجره</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>تغییر عبارت عبور</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>عبارت عبور رمز گشایی پنجره تغییر کنید</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>Ùایل</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>تنظیمات</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>Ú©Ù…Ú©</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>نوار ابزار زبانه ها</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>نوار ابزار عملیت</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>آزمایش شبکه</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>بیتکویین</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>در صد ارتباطات Ùعال بیتکویین با شبکه %n</numerusform>
- </translation>
+ <translation><numerusform>در صد ارتباطات Ùعال بیتکویین با شبکه %n</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation> %1 %2 دانلود 1% 2% بلوک معاملات</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>دانلود بلوکهای معملات %1</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n بعد از چند دقیقه</numerusform>
- </translation>
+ <translation><numerusform>%n بعد از چند دقیقه</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n بعد از چند دقیقه </numerusform>
- </translation>
+ <translation><numerusform>%n بعد از چند دقیقه </numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n بعد از چند دقیقه </numerusform>
- </translation>
+ <translation><numerusform>%n بعد از چند دقیقه </numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n بعد از چند روزز </numerusform>
- </translation>
+ <translation><numerusform>%n بعد از چند روزز </numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>تا تاریخ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>ابتلا به بالا</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>خرین بلوک در یاÙت شده تولید شده بود %1 </translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>این معامله از اندازه محدوده بیشتر است. شما Ù…ÛŒ توانید آد را با دستمزد 1% بÙرستید Ú©Ù‡ شامل گره معامله شما Ù…ÛŒ باشد Ùˆ به شبکه های اینترنتی Ú©Ù…Ú© خواهد کردو آیا شما Ù…ÛŒ خواهید این پول پر داخت%1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>ارسال...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>معامله ارسال شده</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>معامله در یاÙت شده</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">تاریخ 1%1
-مبلغ 2%2
+ <translation>تاریخ %1
+مبلغ%2
نوع %3
-آدرس4%4
- {1
-?} {2
-?} {3
-?}</translation>
+آدرس %4</translation>
</message>
<message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">تاریخ 1%1
-مبلغ 2%2
-نوع %3
-آدرس4%4</translation>
- </message>
- <message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>زمایش شبکهه</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>زمایش شبکه</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -786,7 +769,7 @@ Address: %4</source>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>هنگام معامله اختیاری برای هر کیلو بیت دستمزد پیشنهاد می شود که شما متماین باشید که بسرعت انجام خواهد شد. اصولا هر معامله یک کیلو بیت می باشد و 0.01 دستمزد پیشنهاد می شود</translation>
+ <translation>نرخ اختیاری تراکنش هر کیلوبایت که به شما کمک می‌کند اطمینان پیدا کنید که تراکنش‌ها به سرعت پردازش می‌شوند. بیشتر تراکنش‌ها ۱ کیلوبایت هستند. نرخ 0.01 پیشنهاد می‌شود.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -796,7 +779,7 @@ Address: %4</source>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>هنگام معامله اختیاری برای هر کیلو بیت دستمزد پیشنهاد می شود که شما متماین باشید که بسرعت انجام خواهد شد. اصولا هر معامله یک کیلو بیت می باشد و 0.01 دستمزد پیشنهاد می شود</translation>
+ <translation>نرخ اختیاری تراکنش هر کیلوبایت که به شما کمک می‌کند اطمینان پیدا کنید که تراکنش‌ها به سرعت پردازش می‌شوند. بیشتر تراکنش‌ها ۱ کیلوبایت هستند. نرخ 0.01 پیشنهاد می‌شود.</translation>
</message>
</context>
<context>
@@ -804,89 +787,89 @@ Address: %4</source>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>پیام</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">آدرس برای ارسال پر داخت (bijvoorbeeld: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>آدرس برای ارسال پر داخت (bijvoorbeeld: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>آدرس از دÙتر انتخاب کنید </translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">آدرس از تخته رسم گیره دار پست کنید </translation>
+ <translation>آدرس از تخته رسم گیره دار پست کنید </translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>پیامی را که می‌خواهید امضا کنید در اینجا وارد کنید</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>روی «امضای پیام» کلیک کنید تا امضا را دریاÙت نمایید</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>یک پیام را امضا کنید تا ثابت کنید صاحب این نشانی هستید</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;امضای پیام</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">آدرس انتخاب شده در سیستم تخته رسم گیره دار کپی کنید</translation>
+ <translation>آدرس انتخاب شده در سیستم تخته رسم گیره دار کپی کنید</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">کپی در تخته رسم گیره دار</translation>
+ <translation>کپی در تخته رسم گیره دار</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>خطا در امضا</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 یک نشانی معتبر نیست.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>کلید خصوصی برای %1 در دسترس نیست.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>امضا موÙÙ‚ نبود</translation>
</message>
</context>
<context>
@@ -949,7 +932,7 @@ Address: %4</source>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;âŽ
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;âŽ
@@ -983,42 +966,52 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">تگÙتگو</translation>
+ <translation>تگÙتگو</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>کد QR</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>درخواست پرداخت</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>مقدار:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>برچسب:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished"></translation>
+ <translation>پیام</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;ذخیره به عنوان...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1048,7 +1041,7 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>پاک کردن تمام ستون‌های تراکنش</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1328,7 +1321,7 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>شماره تراکنش:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1374,9 +1367,7 @@ p, li { white-space: pre-wrap; }âŽ
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>بلوک %n باز شده برای</numerusform>
- </translation>
+ <translation><numerusform>بلوک %n باز شده برای</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1401,9 +1392,7 @@ p, li { white-space: pre-wrap; }âŽ
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>و بیشتر باشند قابل قابول می شود %n تزار اصلی بعد از اینکه بلوکها</numerusform>
- </translation>
+ <translation><numerusform>و بیشتر باشند قابل قابول می شود %n تزار اصلی بعد از اینکه بلوکها</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1423,11 +1412,7 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">در یاÙت از Ø¢ÛŒ Ù¾ÛŒ :</translation>
+ <translation>دریاÙتی از</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1435,10 +1420,6 @@ p, li { white-space: pre-wrap; }âŽ
<translation>ارسال به :</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">ارسال به آی پی :</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>پر داخت به خودتان</translation>
@@ -1482,163 +1463,163 @@ p, li { white-space: pre-wrap; }âŽ
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>همه</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>امروز</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>این Ù‡Ùته</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>این ماه</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>ماه گذشته</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>امسال</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>محدوده </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>در یاÙت با</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>ارسال به</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>به خودتان </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>استخراج</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>یگر </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>برای جست‌‌وجو نشانی یا برچسب را وارد کنید</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>حد اقل مبلغ </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>کپی آدرس </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>کپی بر چسب</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>روگرÙت مقدار</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>اصلاح بر چسب</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>جزییت نشان بده</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>صادرات تاریخ معامله</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Comma Ùایل جدا </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>تایید شده</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>تاریخ </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>نوع </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>ر چسب</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>ایل جدا </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>مبلغ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>آی دی</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>خطای صادرت</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>تا Ùایل %1 نمی شود نوشت</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>&gt;محدوده</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>به</translation>
</message>
@@ -1646,7 +1627,7 @@ p, li { white-space: pre-wrap; }âŽ
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>ارسال...</translation>
</message>
@@ -1731,12 +1712,12 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>برای اتصالات به &lt;port&gt; (پیش‌Ùرض: 8333 یا تست‌نت: 18333) گوش کنید</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>حداکثر &lt;n&gt; اتصال با همکاران برقرار داشته باشید (پیش‌Ùرض: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1756,27 +1737,27 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Ùهرست همکاران را با استÙاده از DNS خودراه‌اندازی نکنید</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>آستانه برای قطع ارتباط با همکاران بدرÙتار (پیش‌Ùرض: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>مدت زمان به ثانیه برای جلوگیری از همکاران بدرÙتار برای اتصال دوباره (پیش‌Ùرض: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>حداکثر باÙر دریاÙتی در هر اتصال، 1000*&lt;n&gt; (پیش‌Ùرض: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>حداکثر باÙر ارسالی در هر اتصال، 1000*&lt;n&gt; (پیش‌Ùرض: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1791,7 +1772,7 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>پر داجت برای هر کیلو بیت برای اضاÙÙ‡ به معامله ارسال</translation>
+ <translation>نرخ هر کیلوبایت برای اضاÙÙ‡ کردن به تراکنش‌هایی Ú©Ù‡ می‌Ùرستید</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1811,22 +1792,22 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>اطلاعات اشکال‌زدایی اضاÙÛŒ خروجی</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>به خروجی اشکال‌زدایی برچسب زمان بزنید</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>اطلاعات ردگیری/اشکال‌زدایی را به جای Ùایل لاگ اشکال‌زدایی به کنسول بÙرستید</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>اطلاعات ردگیری/اشکال‌زدایی را به اشکال‌زدا بÙرستید</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1908,36 +1889,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>خطا در بارگیری addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>خطا در بارگیری blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>خطا در بارگیری wallet.dat: کی٠پول خراب شده است</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>خطا در بارگیری wallet.dat: کی٠پول به ویرایش جدیدتری از Biticon نیاز دارد</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>سلام</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">خطای بار گیری داده های آدرس ها</translation>
+ <translation>خطا در بارگیری wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1945,27 +1922,11 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>بار گیری شاخص بلوک</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">خطای بار گیری شاخص بلوک</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>بار گیری والت</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">خطای بار گیری والت: والت خراب شده</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">خطای بار گیری والت: والت نیاز نوع جدید تر بیتکویین دارد</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">خطای بار گیری والت:</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>اسکان مجدد</translation>
@@ -2006,471 +1967,6 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>وسل بندر به کامپیوتر امکان پذیر نیست. شاید بیتکویید در حال Ùعال است%d</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">این معامله از اندازه محدوده بیشتر است. شما Ù…ÛŒ توانید آد را با دستمزد 1% بÙرستید Ú©Ù‡ شامل گره معامله شما Ù…ÛŒ باشد Ùˆ به شبکه های اینترنتی Ú©Ù…Ú© خواهد کردو آیا شما Ù…ÛŒ خواهید این پول پر داخت %sکنید؟</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">عبارت عبور جاری در والت وارد کنید</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">گذرواژه</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">لطÙا عبارت عبور والت جاری ذخیره کنید</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">اموÙÙ‚ رمز بندی پنجر</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">وضعیت</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">تاریخ </translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">توضیحات</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">اعتبار</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">بدهی </translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">باز برای بلوک های در صد%d</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">%s باز تا </translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">اÙلایین است؟%d</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">تایید نشده است%d </translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">تایید%d</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">تولید شده</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">تولید شده (بالغ در بلوک )%s%d</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">تولید – هشدار این بلوک از دیگر گره ها در یاÙت نشده بدین دلیل شاید قابل قابول نیست</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">تولید شده(ولی قبول نشده )</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">از</translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">در یاÙت با </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">پر داخت به خودتان</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">به</translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete">تولید</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">وسل نشده( )</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete">معاملات %d بلوک %d ارتباط %d</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">والت رمز بندی شده است</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete"> وارد کنید..&amp;lt;br/&amp;gt عبارت عبور نو در پنجره
- 10 یا بیشتر کاراکتورهای تصادÙÛŒ استÙاده کنید &amp;lt;b&amp;gt لطÙا عبارت عبور</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">خطا: عبارت عبور خیلی کوتاه بود</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete"> هشدار اگر شما روی پنجره رمز بگذارید Ùˆ عبارت عبور Ùراموش کنید همه بیتکویینس شما Ú¯Ù… Ù…ÛŒ کنید. متماینید Ú©Ù† Ú©Ù‡ Ù…ÛŒ خواهید رمز بگذارید</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Ø·Ùا عبارت عبور مجددا وارد کنید</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">خطا: عبارت عبور تطابق نبود</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">رمز گذاری والت نا موÙÙ‚ بود</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">والت رمز بندی شد .
-یاد داشته باشید Ú©Ù‡ پنجره رمز شده نمی تواند کلا از سرقت نرم اÙزارهای مخرب محاÙظ کند </translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">والت رمز بندی نشده
-لطÙا اول آن را رمز بندی کنید</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">عبارت عبور جدید برای والت وارد کنید</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">عبارت عبور والت مجددا وارد کنید </translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">عبارت عبور والت عوض شده</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">درس در یاÙت جدید </translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">برای هر پر داخت در یاÙت شده آدرس جدید استÙاده کنید
-بر چسب</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&amp;lt;b&amp;gt;وضعیت :&amp;lt;/b&amp;gt;</translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">هنوز با موÙقیت ارسال نشده است</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">%d ارسال توسط گره</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">%d ارسال توسط گره های</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&amp;lt;b&amp;gt;تاریخ :&amp;lt;/b&amp;gt</translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&amp;lt;b&amp;gt;وضعیت :&amp;lt;/b&amp;gt; تولید شده &amp;lt;br&amp;gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&amp;lt;b&amp;gt;از :&amp;lt;/b&amp;gt;</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">مشخص نیست</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&amp;lt;b&amp;gt;به :&amp;lt;/b&amp;gt;</translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete">مال شما ، بر چس(</translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete">مال شما()</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&amp;lt;b&amp;gt;اعتبار :&amp;lt;/b&amp;gt;</translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">تولید شده (بالغ در بلوک(%s%d()</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">تولید شده(ولی قبول نشده )</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&amp;lt;b&amp;gt;بدهی :&amp;lt;/b&amp;gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&amp;lt;b&amp;gt;پر داخت معامله :&amp;lt;/b&amp;gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&amp;lt;b&amp;gt;مقدار خالص:&amp;lt;/b&amp;gt;</translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">پیام </translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">نظر</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">برای ارسال واحد های تولید شده باید 120 بلوک باشند. هنگامی Ú©Ù‡ بلون ایجاد Ù…ÛŒ شود به شبکه ارسال Ù…ÛŒ شود تا در زنجیر بلوکها اضاÙÙ‡ شود. Ùˆ گر نه بلوک به غیر قابول Ùˆ غیر ارسال عوض Ù…ÛŒ شود. این اتÙاقی Ù…ÛŒ اÙتد وقتی Ú©Ù‡ همزمان گره دیگر در بلوک ایجاد Ù…ÛŒ شود</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">ایجاد Ùایل autostart/bitcoin.desktop امکان‌پذیر نیست</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">صلی</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">شروع بیتکویین از پنجره سیستم استارت</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">حد اقل رساندن در نزدیک</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">%s نسخه</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">خطا در مبلغ</translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">ارسال سکه ها</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">مبلغ از تزار شما بیشتر است</translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">مجموعه از تزار شما بیشتر است</translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete">پو داخت معامله شامل است</translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">ر داخت ارسال شد</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">ارسال...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">آدرس نا معتبر</translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">%s به %s ارسال </translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">منتÙÛŒ شد</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">منتÙÛŒ شد</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">معامله منتÙÛŒ شد</translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">خطا:</translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">بود جه نا کاÙÛŒ </translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">وسل ..</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">وسل امکان پذیر نیست </translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">نیاز کلید </translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">کلید عمومی در یاÙت شد</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">در یاÙت کننده معامله ارسال شده از آدرس Ø¢ÛŒ Ù¾ÛŒ قبول نشده</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">معامله قبول نشده </translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">جواب نا معتبر در یاÙت شد</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">ایجاد معامله </translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">این معامله با توجه به مقدارش Ùˆ پیچیدگی اش حد اقل نیاز پر داخت یا بودجه اخرین در یاÙت شده را %sدار</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">ایجاد معامله نا موÙÙ‚ بود </translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">معامله سقط شد</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">ارتباط Ú¯Ù… شد معاملات منتÙÛŒ شد </translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">ارسال پر داخت </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 type="obsolete"> خطا . معامله رد شد.این هنگامی Ú©Ù‡ سکه ها در والت شما هنوز ارسال شده اند ولی شما Ú©Ù¾ÛŒ والت استÙاده Ù…ÛŒ کنید Ùˆ سکه ها روی Ú©Ù¾ÛŒ Ùرستاده شده اند Ùˆ به عنوان ارسال شنه مشخص نشده اتÙاقی Ù…ÛŒ اÙتد</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">منتظره تایید</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">پر داخت ارسال شد ولی در یاÙت کننده نتوادست آن را تایید کند
-&lt;/translation&gt;معامله ثبت شد Ùˆ برای در یاÙت کننده اعتبار خواهد شد
-ولی اطلاعات توضاحات خالی خواهد بود </translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">پر داخت ارسال شد ولی جواب نا معتبر رسید </translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">پر داخت تکمیل شده است</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">اسم</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">ایل جدا </translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">ر چسب</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">آدرس بیت کویین</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">این آدرس در یاÙت پر داخت های خود تان است Ùˆ نمی شود آد را وارد دÙتر آدرس ها کرد</translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">اصلاح آدرس</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">ویرایش آدرس بر چسب</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">اضاÙÙ‡ آدرس </translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">یت کویین </translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">تولید بیتکو یین</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">بیتکویین وسل نشده( )</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">شروع بیتکویین </translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">ارسال بیتک.یین ها </translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">تنظیمات </translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">خروج </translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">بر نامه سقاط شد و خاتمه خواهد شد </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>هشدار: تاریخ و ساعت کامپیوتر شما چک کنید. اگر ساعت درست نیست بیتکویین مناسب نخواهد کار کرد</translation>
@@ -2481,16 +1977,4 @@ but the comment information will be blank.</source>
<translation>بتا</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_fa_IR.ts b/src/qt/locale/bitcoin_fa_IR.ts
new file mode 100644
index 0000000000..2e8df62f04
--- /dev/null
+++ b/src/qt/locale/bitcoin_fa_IR.ts
@@ -0,0 +1,1963 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="fa_IR" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>در مورد بیتکویین</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; version</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts
index f7e99c64bf..8b6481930c 100644
--- a/src/qt/locale/bitcoin_fi.ts
+++ b/src/qt/locale/bitcoin_fi.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="fi">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="fi" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,28 +21,12 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoinin kehittäjät
-
-Tämä ohjelma on kokeellinen.
-
-Toimitetaan MIT/X11-lisenssillä, katso license.txt tai http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
+ <translation>Copyright © 2009-2012 Bitcoin Developers
This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoinin kehittäjät
-
-Tämä ohjelma on kokeellinen.
-
-Toimitetaan MIT/X11-lisenssillä, katso license.txt tai http://www.opensource.org/licenses/mit-license.php.
-
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</translation>
</message>
</context>
@@ -58,7 +40,7 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="20"/>
<source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
- <translation>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</translation>
+ <translation>Nämä ovat sinun Bitcoin-osoitteesi suoritusten vastaanottamiseen. Voit halutessasi antaa kullekin lähettäjälle eri osoitteen, jotta voit seurata kuka sinulle maksaa.</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="33"/>
@@ -88,17 +70,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Näytä &amp;QR-koodi</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Allekirjoita viesti millä todistat omistavasi tämän osoitteen</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Allekirjoita viesti</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>&amp;Poista</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Kopioi osoite</translation>
+ <translation>Kopioi osoite</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Kopioi nimi</translation>
+ <translation>Kopioi nimi</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Muokkaa</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Poista</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Vie osoitekirja</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Comma separated file (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Virhe viedessä osoitekirjaa</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Ei voida kirjoittaa tiedostoon %1.</translation>
</message>
@@ -174,13 +156,13 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/askpassphrasedialog.ui" line="26"/>
<source>Dialog</source>
- <translation type="unfinished"></translation>
+ <translation>Dialogi</translation>
</message>
<message>
<location filename="../forms/askpassphrasedialog.ui" line="32"/>
<location filename="../forms/askpassphrasedialog.ui" line="97"/>
<source>TextLabel</source>
- <translation type="unfinished"></translation>
+ <translation>TekstiMerkki</translation>
</message>
<message>
<location filename="../forms/askpassphrasedialog.ui" line="50"/>
@@ -258,13 +240,13 @@ Tahdotko varmasti salata lompakon?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin sulkeutuu lopettaessaan salausprosessin. Muista että salattu lompakko ei täysin suojaa sitä haittaohjelmien aiheuttamilta varkauksilta.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
+ <translation>Varoitus: Caps Lock on päällä.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -311,300 +293,318 @@ Tahdotko varmasti salata lompakon?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin-lompakko</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
- <translation type="unfinished"></translation>
+ <translation>Synkronoidaan verkon kanssa...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
- <translation type="unfinished"></translation>
+ <translation>Block chainin synkronointi kesken</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Yleisnäkymä</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Näyttää kokonaiskatsauksen lompakon tilanteesta</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Rahansiirrot</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Selaa rahansiirtohistoriaa</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Osoitekirja</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Muokkaa tallennettujen nimien ja osoitteiden listaa</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Bitcoinien vastaanottaminen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Näytä Bitcoinien vastaanottamiseen käytetyt osoitteet</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Lähetä Bitcoineja</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Lähetä Bitcoin-osoitteeseen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>Allekirjoita &amp;viesti</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Todista että hallitset osoitetta</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
- <translation type="unfinished"></translation>
+ <translation>L&amp;opeta</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Lopeta ohjelma</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Tietoja %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Näytä tietoa Bitcoin-projektista</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Tietoja &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Näytä tietoja QT:ta</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Asetukset...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Muokkaa asetuksia</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Avaa &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
- <translation type="unfinished"></translation>
+ <translation>Näytä Bitcoin-ikkuna</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Vie...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Vie tämä näkymä tiedostoon</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Vie aukiolevan välilehden tiedot tiedostoon</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Salaa lompakko</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
- <translation type="unfinished"></translation>
+ <translation>Kryptaa tai dekryptaa lompakko</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>&amp;Varmuuskopioi lompakko</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>Varmuuskopioi lompakko toiseen sijaintiin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Vaihda tunnuslause</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Vaihda lompakon salaukseen käytettävä tunnuslause</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Tiedosto</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Asetukset</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Apua</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
- <translation type="unfinished"></translation>
+ <translation>Välilehtipalkki</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
- <translation type="unfinished"></translation>
+ <translation>Toimintopalkki</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktiivinen yhteys Bitcoin-verkkoon</numerusform>
- <numerusform>%n aktiivista yhteyttä Bitcoin-verkkoon</numerusform>
- </translation>
+ <translation><numerusform>%n aktiivinen yhteys Bitcoin-verkkoon</numerusform><numerusform>%n aktiivista yhteyttä Bitcoin-verkkoon</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
- <translation type="unfinished"></translation>
+ <translation>Ladattu %1 of %2 rahansiirtohistorian lohkoa.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
- <translation type="unfinished"></translation>
+ <translation>Ladattu %1 lohkoa rahansiirron historiasta.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n sekunti sitten</numerusform>
- <numerusform>%n sekuntia sitten</numerusform>
- </translation>
+ <translation><numerusform>%n sekunti sitten</numerusform><numerusform>%n sekuntia sitten</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n minuutti sitten</numerusform>
- <numerusform>%n minuuttia sitten</numerusform>
- </translation>
+ <translation><numerusform>%n minuutti sitten</numerusform><numerusform>%n minuuttia sitten</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n tunti sitten</numerusform>
- <numerusform>%n tuntia sitten</numerusform>
- </translation>
+ <translation><numerusform>%n tunti sitten</numerusform><numerusform>%n tuntia sitten</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n päivä sitten</numerusform>
- <numerusform>%n päivää sitten</numerusform>
- </translation>
+ <translation><numerusform>%n päivä sitten</numerusform><numerusform>%n päivää sitten</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Ohjelmisto on ajan tasalla</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
- <translation type="unfinished"></translation>
+ <translation>Kurotaan kiinni...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Viimeisin vastaanotettu lohko tuotettu %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="unfinished"></translation>
+ <translation>Tämä rahansiirto ylittää kokorajoituksen. Voit siitä huolimatta lähettää sen %1 siirtopalkkion mikä menee solmuille jotka käsittelevät rahansiirtosi tämä auttaa myös verkostoa. Haluatko maksaa siirtopalkkion? </translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Lähetetään...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
- <translation type="unfinished"></translation>
+ <translation>Lähetetyt rahansiirrot</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Saapuva rahansiirto</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished"></translation>
+ <translation>Päivä: %1
+Määrä: %2
+Tyyppi: %3
+Osoite: %4</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Lompakko on &lt;b&gt;salattu&lt;/b&gt; ja tällä hetkellä &lt;b&gt;avoinna&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Lompakko on &lt;b&gt;salattu&lt;/b&gt; ja tällä hetkellä &lt;b&gt;lukittuna&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>Varmuuskopioi lompakko</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Lompakkodata (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>Varmuuskopio epäonnistui</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Virhe tallennettaessa lompakkodataa uuteen sijaintiin.</translation>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -616,7 +616,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="274"/>
<source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
- <translation type="unfinished"></translation>
+ <translation>Valitse oletus lisämääre mikä näkyy käyttöliittymässä ja kun lähetät kolikoita</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="281"/>
@@ -649,7 +649,7 @@ Address: %4
<message>
<location filename="../forms/editaddressdialog.ui" line="52"/>
<source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
- <translation type="unfinished"></translation>
+ <translation>Osoite, joka liittyy tämän osoitekirjan merkintään. Tätä voidaan muuttaa vain lähtevissä osoitteissa.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="20"/>
@@ -664,12 +664,12 @@ Address: %4
<message>
<location filename="../editaddressdialog.cpp" line="27"/>
<source>Edit receiving address</source>
- <translation type="unfinished"></translation>
+ <translation>Muokkaa vastaanottajan osoitetta</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="31"/>
<source>Edit sending address</source>
- <translation type="unfinished"></translation>
+ <translation>Muokkaa lähtevää osoitetta</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="91"/>
@@ -684,7 +684,7 @@ Address: %4
<message>
<location filename="../editaddressdialog.cpp" line="101"/>
<source>Could not unlock wallet.</source>
- <translation type="unfinished"></translation>
+ <translation>Lompakkoa ei voitu avata.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="106"/>
@@ -697,7 +697,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="170"/>
<source>&amp;Start Bitcoin on window system startup</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Käynnistä Bitcoin kun kirjaudutaan sisään</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="171"/>
@@ -712,7 +712,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="176"/>
<source>Show only a tray icon after minimizing the window</source>
- <translation type="unfinished"></translation>
+ <translation>Näytä ainoastaan pikkukuvake ikkunan pienentämisen jälkeen</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="180"/>
@@ -767,17 +767,17 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation type="unfinished"></translation>
+ <translation>Vapaaehtoinen rahansiirtopalkkio per kB auttaa nopeuttamaan siirtoja. Useimmat rahansiirrot ovat 1 kB. 0.01 palkkio on suositeltava.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
<source>Pay transaction &amp;fee</source>
- <translation type="unfinished"></translation>
+ <translation>Maksa rahansiirtopalkkio</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Valinnainen rahansiirtomaksu kilotavua kohden auttaa varmistamaan, että siirtosi etenevät nopeasti. Useimpien rahansiirtojen koko on 1 kilotavu. Suositus on 0,01 BTC.</translation>
+ <translation>Vapaaehtoinen rahansiirtopalkkio per kB auttaa nopeuttamaan siirtoja. Useimmat rahansiirrot ovat 1 kB. 0.01 palkkio on suositeltava.</translation>
</message>
</context>
<context>
@@ -785,89 +785,89 @@ Address: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Viesti</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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>Voit allekirjoittaa viestit omalla osoitteellasi todistaaksesi että omistat ne. Ole huolellinen, että et allekirjoita mitään epämääräistä, phishing-hyökkääjät voivat huijata sinua allekirjoittamaan luovuttamalla henkilöllisyytesi. Allekirjoita selvitys täysin yksityiskohtaisesti mihin olet sitoutunut.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Osoite, johon Bitcoinit lähetetään (esim. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Osoite, johon Bitcoinit lähetetään (esim. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Valitse osoite osoitekirjasta</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Liitä osoite leikepöydältä</translation>
+ <translation>Liitä osoite leikepöydältä</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Kirjoita tähän viesti minkä haluat allekirjoittaa</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Klikkaa &quot;Allekirjoita viesti&quot; saadaksesi allekirjoituksen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Allekirjoita viesti millä todistat omistavasi tämän osoitteen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Allekirjoita viesti</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Kopioi valittu osoite leikepöydälle</translation>
+ <translation>Kopioi valittu osoite leikepöydälle</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Kopioi leikepöydälle</translation>
+ <translation>&amp;Kopioi leikepöydälle</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Virhe allekirjoitettaessa</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 ei ole kelvollinen osoite.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Yksityisavain %1 :lle ei ole saatavilla.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Allekirjoittaminen epäonnistui</translation>
</message>
</context>
<context>
@@ -875,17 +875,17 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="79"/>
<source>Main</source>
- <translation type="unfinished"></translation>
+ <translation>Yleiset</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="84"/>
<source>Display</source>
- <translation type="unfinished"></translation>
+ <translation>Näyttö</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="104"/>
<source>Options</source>
- <translation type="unfinished"></translation>
+ <translation>Asetukset</translation>
</message>
</context>
<context>
@@ -893,7 +893,7 @@ Address: %4
<message>
<location filename="../forms/overviewpage.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Lomake</translation>
</message>
<message>
<location filename="../forms/overviewpage.ui" line="40"/>
@@ -930,7 +930,7 @@ Address: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -964,42 +964,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished"></translation>
+ <translation>Dialogi</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR-koodi</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Vastaanota maksu</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Määrä:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Tunniste:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished"></translation>
+ <translation>Viesti:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Tallenna nimellä...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>Tallenna kuva...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>PNG kuvat (*png)</translation>
</message>
</context>
<context>
@@ -1029,7 +1039,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Poista kaikki rahansiiron kentät</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1049,7 +1059,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="144"/>
<source>Confirm the send action</source>
- <translation type="unfinished"></translation>
+ <translation>Vahvista lähetys</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="147"/>
@@ -1059,7 +1069,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="94"/>
<source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="99"/>
@@ -1069,7 +1079,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="100"/>
<source>Are you sure you want to send %1?</source>
- <translation type="unfinished"></translation>
+ <translation>Haluatko varmasti lähettää %1?</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="100"/>
@@ -1099,12 +1109,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="144"/>
<source>Duplicate address found, can only send to each address once in one send operation</source>
- <translation type="unfinished"></translation>
+ <translation>Tuplaosite löytynyt, voit ainoastaan lähettää kunkin osoitteen kerran yhdessä lähetysoperaatiossa.</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="149"/>
<source>Error: Transaction creation failed </source>
- <translation type="unfinished"></translation>
+ <translation>Virhe: Rahansiirron luonti epäonnistui</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="154"/>
@@ -1117,17 +1127,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Lomake</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="29"/>
<source>A&amp;mount:</source>
- <translation type="unfinished"></translation>
+ <translation>M&amp;äärä:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="42"/>
<source>Pay &amp;To:</source>
- <translation type="unfinished"></translation>
+ <translation>Maksun saaja:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="66"/>
@@ -1148,7 +1158,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="103"/>
<source>Choose address from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Valitse osoite osoitekirjasta</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="113"/>
@@ -1181,63 +1191,63 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="18"/>
<source>Open for %1 blocks</source>
- <translation type="unfinished"></translation>
+ <translation>Avoinna %1 lohkolle</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="20"/>
<source>Open until %1</source>
- <translation type="unfinished"></translation>
+ <translation>Avoinna %1 asti</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="26"/>
<source>%1/offline?</source>
- <translation type="unfinished"></translation>
+ <translation>%1/ei linjalla?</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="28"/>
<source>%1/unconfirmed</source>
- <translation type="unfinished"></translation>
+ <translation>%1/vahvistamaton</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="30"/>
<source>%1 confirmations</source>
- <translation type="unfinished"></translation>
+ <translation>%1 vahvistusta</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="47"/>
<source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Tila:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="52"/>
<source>, has not been successfully broadcast yet</source>
- <translation type="unfinished"></translation>
+ <translation>, ei ole vielä onnistuneesti lähetetty</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="54"/>
<source>, broadcast through %1 node</source>
- <translation type="unfinished"></translation>
+ <translation>, lähetetään %1 solmun kautta</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="56"/>
<source>, broadcast through %1 nodes</source>
- <translation type="unfinished"></translation>
+ <translation>, lähetetään %1 solmunkautta</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="60"/>
<source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Päivä:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="67"/>
<source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Lähde:&lt;/b&gt; Generoitu&lt;br&gt;</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="73"/>
<location filename="../transactiondesc.cpp" line="90"/>
<source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Lähettäjä:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="90"/>
@@ -1249,17 +1259,17 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="114"/>
<location filename="../transactiondesc.cpp" line="173"/>
<source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Vast. ott.:&lt;/b&gt;</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="94"/>
<source> (yours, label: </source>
- <translation type="unfinished"></translation>
+ <translation>(sinun, tunniste: </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="96"/>
<source> (yours)</source>
- <translation type="unfinished"></translation>
+ <translation>(sinun)</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="131"/>
@@ -1267,54 +1277,54 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="190"/>
<location filename="../transactiondesc.cpp" line="207"/>
<source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Krediitti:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="133"/>
<source>(%1 matures in %2 more blocks)</source>
- <translation type="unfinished"></translation>
+ <translation>(%1 erääntyy %2 useammassa lohkossa)</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="137"/>
<source>(not accepted)</source>
- <translation type="unfinished"></translation>
+ <translation>(ei hyväksytty)</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="181"/>
<location filename="../transactiondesc.cpp" line="189"/>
<location filename="../transactiondesc.cpp" line="204"/>
<source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Debit:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="195"/>
<source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Rahansiirtomaksu:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="211"/>
<source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Nettomäärä:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="217"/>
<source>Message:</source>
- <translation type="unfinished"></translation>
+ <translation>Viesti:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="219"/>
<source>Comment:</source>
- <translation type="unfinished"></translation>
+ <translation>Kommentti:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>Rahansiirron ID:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
<source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="unfinished"></translation>
+ <translation>Luotujen kolikoiden on odotettava 120 lohkoa ennen kuin ne voidaan käyttää. Kun loit tämän lohkon, se lähetettiin verkkoon lisättäväksi lohkoketjuun. Jos se epäonnistuu ketjuun liittymisessä, se tila tulee muuttumaan &quot;ei hyväksytty&quot; eikä sitä voi käyttää. Tätä voi silloin tällöin esiintyä jos toinen solmu luo lohkon muutamia sekunteja omastasi.</translation>
</message>
</context>
<context>
@@ -1322,12 +1332,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/transactiondescdialog.ui" line="14"/>
<source>Transaction details</source>
- <translation type="unfinished"></translation>
+ <translation>Rahansiirron yksityiskohdat</translation>
</message>
<message>
<location filename="../forms/transactiondescdialog.ui" line="20"/>
<source>This pane shows a detailed description of the transaction</source>
- <translation type="unfinished"></translation>
+ <translation>Tämä ruutu näyttää yksityiskohtaisen tiedon rahansiirrosta</translation>
</message>
</context>
<context>
@@ -1355,15 +1365,12 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- </translation>
+ <translation><numerusform>Auki %n lohkolle</numerusform><numerusform>Auki %n lohkoille</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
<source>Open until %1</source>
- <translation type="unfinished"></translation>
+ <translation>Avoinna %1 asti</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="280"/>
@@ -1383,20 +1390,17 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- </translation>
+ <translation><numerusform>Louhittu saldo tulee saataville %n lohkossa</numerusform><numerusform>Louhittu saldo tulee saataville %n lohkossa</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
<source>This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="unfinished"></translation>
+ <translation>Tätä lohkoa ei vastaanotettu mistään muusta solmusta ja sitä ei mahdollisesti hyväksytty!</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="304"/>
<source>Generated but not accepted</source>
- <translation type="unfinished"></translation>
+ <translation>Generoitu mutta ei hyväksytty</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="347"/>
@@ -1406,21 +1410,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Vastaanotettu IP:stä</translation>
+ <translation>Vastaanotettu</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
<source>Sent to</source>
- <translation type="unfinished"></translation>
+ <translation>Saaja</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
- <translation type="unfinished"></translation>
+ <translation>Maksu itsellesi</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="356"/>
@@ -1461,171 +1461,171 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Kaikki</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Tänään</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Tällä viikolla</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Tässä kuussa</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Viime kuussa</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Tänä vuonna</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
- <translation type="unfinished"></translation>
+ <translation>Alue...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Vastaanotettu osoitteella</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
- <translation type="unfinished"></translation>
+ <translation>Saaja</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
- <translation type="unfinished"></translation>
+ <translation>Itsellesi</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Louhittu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
- <translation type="unfinished"></translation>
+ <translation>Muu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
- <translation type="unfinished"></translation>
+ <translation>Anna etsittävä osoite tai tunniste</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
- <translation type="unfinished"></translation>
+ <translation>Minimimäärä</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Kopioi osoite</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Kopioi nimi</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Kopioi määrä</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Muokkaa nimeä</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Näytä tarkemmat tiedot...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Vie transaktion tiedot</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Comma separated file (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Vahvistettu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Aika</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Laatu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Nimi</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Osoite</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Määrä</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Virhe tietojen viennissä</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Ei voida kirjoittaa tiedostoon %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
- <translation type="unfinished"></translation>
+ <translation>Alue:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
- <translation type="unfinished"></translation>
+ <translation>kenelle</translation>
</message>
</context>
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Lähetetään...</translation>
</message>
@@ -1635,288 +1635,289 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="3"/>
<source>Bitcoin version</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoinin versio</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="4"/>
<source>Usage:</source>
- <translation type="unfinished"></translation>
+ <translation>Käyttö:</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="5"/>
<source>Send command to -server or bitcoind</source>
- <translation type="unfinished"></translation>
+ <translation>Lähetä käsky palvelimelle tai bitcoind:lle</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="6"/>
<source>List commands</source>
- <translation type="unfinished"></translation>
+ <translation>Lista komennoista</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="7"/>
<source>Get help for a command</source>
- <translation type="unfinished"></translation>
+ <translation>Hanki apua käskyyn</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="8"/>
<source>Options:</source>
- <translation type="unfinished"></translation>
+ <translation>Asetukset:</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
<source>Specify configuration file (default: bitcoin.conf)</source>
- <translation type="unfinished"></translation>
+ <translation>Määritä asetustiedosto (oletus: bitcoin.conf)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
<source>Specify pid file (default: bitcoind.pid)</source>
- <translation type="unfinished"></translation>
+ <translation>Määritä pid-tiedosto (oletus: bitcoin.pid)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
<source>Generate coins</source>
- <translation type="unfinished"></translation>
+ <translation>Generoi kolikoita</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="12"/>
<source>Don&apos;t generate coins</source>
- <translation type="unfinished"></translation>
+ <translation>Älä generoi kolikoita</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="13"/>
<source>Start minimized</source>
- <translation type="unfinished"></translation>
+ <translation>Käynnistä pienennettynä</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
<source>Specify data directory</source>
- <translation type="unfinished"></translation>
+ <translation>Määritä data-hakemisto</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
<source>Specify connection timeout (in milliseconds)</source>
- <translation type="unfinished"></translation>
+ <translation>Määritä yhteyden aikakatkaisu (millisekunneissa)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
<source>Connect through socks4 proxy</source>
- <translation type="unfinished"></translation>
+ <translation>Yhteys socks4-proxyn kautta</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="17"/>
<source>Allow DNS lookups for addnode and connect</source>
- <translation type="unfinished"></translation>
+ <translation>Salli DNS haut lisäsolmulle ja yhdistä</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Kuuntele yhteyksiä portista &lt;port&gt; (oletus: 8333 tai testnet: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Pidä enintään &lt;n&gt; yhteyttä verkkoihin (oletus: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
<source>Add a node to connect to</source>
- <translation type="unfinished"></translation>
+ <translation>Lisää solmu mihin yhdistetään</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="21"/>
<source>Connect only to the specified node</source>
- <translation type="unfinished"></translation>
+ <translation>Ota yhteys vain tiettyyn solmuun</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="22"/>
<source>Don&apos;t accept connections from outside</source>
- <translation type="unfinished"></translation>
+ <translation>Älä hyväksy ulkopuolisia yhteyksiä</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Älä alkulataa listaa verkoista DNS:ää käyttäen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Kynnysarvo aikakatkaisulle heikosti toimiville verkoille (oletus: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Sekuntien määrä, kuinka kauan uudelleenkytkeydytään verkkoihin (oletus: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maksimi verkkoyhteyden vastaanottopuskuri, &lt;n&gt;*1000 tavua (oletus: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maksimi verkkoyhteyden lähetyspuskuri, &lt;n&gt;*1000 tavua (oletus: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
<source>Don&apos;t attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation>Älä käytä UPnP toimintoa kartoittamaan avointa porttia</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="31"/>
<source>Attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation>Yritä käyttää UPnP toimintoa kartoittamaan avointa porttia</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation type="unfinished"></translation>
+ <translation>palkkio per kB lisätty lähettämiisi rahansiirtoihin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
<source>Accept command line and JSON-RPC commands</source>
- <translation type="unfinished"></translation>
+ <translation>Hyväksy merkkipohjaiset- ja JSON-RPC-käskyt</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="34"/>
<source>Run in the background as a daemon and accept commands</source>
- <translation type="unfinished"></translation>
+ <translation>Aja taustalla daemonina ja hyväksy komennot</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="35"/>
<source>Use the test network</source>
- <translation type="unfinished"></translation>
+ <translation>Käytä test -verkkoa</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Tulosta ylimääräistä debuggaustietoa</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Lisää debuggaustiedon tulostukseen aikaleima</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Lähetä jäljitys/debug-tieto konsoliin, debug.log-tiedoston sijaan</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Lähetä jäljitys/debug-tieto debuggeriin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
<source>Username for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Käyttäjätunnus JSON-RPC-yhteyksille</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="41"/>
<source>Password for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Salasana JSON-RPC-yhteyksille</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="42"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
- <translation type="unfinished"></translation>
+ <translation>Kuuntele JSON-RPC -yhteyksiä portista &lt;port&gt; (oletus: 8332)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="43"/>
<source>Allow JSON-RPC connections from specified IP address</source>
- <translation type="unfinished"></translation>
+ <translation>Salli JSON-RPC yhteydet tietystä ip-osoitteesta</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="44"/>
<source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
- <translation type="unfinished"></translation>
+ <translation>Lähetä käskyjä solmuun osoitteessa &lt;ip&gt; (oletus: 127.0.0.1)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="45"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Aseta avainpoolin koko arvoon &lt;n&gt; (oletus: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="46"/>
<source>Rescan the block chain for missing wallet transactions</source>
- <translation type="unfinished"></translation>
+ <translation>Skannaa uudelleen lohkoketju lompakon puuttuvien rahasiirtojen vuoksi</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="47"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
- <translation type="unfinished"></translation>
+ <translation>SSL-asetukset: (lisätietoja Bitcoin-Wikistä)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="50"/>
<source>Use OpenSSL (https) for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Käytä OpenSSL:ää (https) JSON-RPC-yhteyksille</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="51"/>
<source>Server certificate file (default: server.cert)</source>
- <translation type="unfinished"></translation>
+ <translation>Palvelimen sertifikaatti-tiedosto (oletus: server.cert)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="52"/>
<source>Server private key (default: server.pem)</source>
- <translation type="unfinished"></translation>
+ <translation>Palvelimen yksityisavain (oletus: server.pem)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="53"/>
<source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
- <translation type="unfinished"></translation>
+ <translation>Hyväksyttävä salaus (oletus:
+TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="56"/>
<source>This help message</source>
- <translation type="unfinished"></translation>
+ <translation>Tämä ohjeviesti</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="57"/>
<source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
+ <translation>En pääse käsiksi data-hakemiston lukitukseen %s. Bitcoin on todennäköisesti jo käynnistetty.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="60"/>
<source>Loading addresses...</source>
- <translation type="unfinished"></translation>
+ <translation>Ladataan osoitteita...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Virhe ladattaessa addr.dat-tiedostoa</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Virhe ladattaessa blkindex.dat-tiedostoa</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Virhe ladattaessa wallet.dat-tiedostoa: Lompakko vioittunut</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Virhe ladattaessa wallet.dat-tiedostoa: Tarvitset uudemman version Bitcoinista</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Lompakko tarvitsee uudelleenkirjoittaa: käynnistä Bitcoin uudelleen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Virhe ladattaessa wallet.dat-tiedostoa</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
<source>Loading block index...</source>
- <translation type="unfinished"></translation>
+ <translation>Ladataan lohkoindeksiä...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="64"/>
@@ -1926,7 +1927,7 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
- <translation type="unfinished"></translation>
+ <translation>Skannataan uudelleen...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="70"/>
@@ -1936,22 +1937,22 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="71"/>
<source>Invalid -proxy address</source>
- <translation type="unfinished"></translation>
+ <translation>Virheellinen proxy-osoite</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="72"/>
<source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>Virheellinen määrä -paytxfee=&lt;amount&gt;</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="73"/>
<source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
- <translation type="unfinished"></translation>
+ <translation>Varoitus:-paytxfee on erittäin korkea. Tämä on palkkio siirrosta minkä suoritat rahansiirrosta.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="76"/>
<source>Error: CreateThread(StartNode) failed</source>
- <translation type="unfinished"></translation>
+ <translation>Virhe: CreateThread(StartNode) epäonnistui</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="77"/>
@@ -1961,125 +1962,7 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="78"/>
<source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Tunnuslause</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Annettu tunnuslause oli väärä.</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Päivämäärä</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/ei yhteyttä verkkoon?</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Lompakon salaus epäonnistui.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Lompakko on nyt salattu.
-Muista, että salaamalla lompakkosi et voi kokonaan suojata Bitcoinejasi haittaohjelmien varkauksilta.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Lompakko on salaamaton ja on salattava ensin</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">tuntematon</translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Lähetä Bitcoineja</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Lähetetään...</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">PERUTTU</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Peruttu</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Siirto peruttu </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Virhe: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Lompakon saldo ei riitä</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Yhdistetään...</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Pyydetään julkista avainta...</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Odotetaan vahvistusta...</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Rahansiirto on suoritettu</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Nimi</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Osoite</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Nimi</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin-osoite</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Tämä on oma vastaanottava osoitteesi, eikä sitä voi lisätä osoitekirjaan. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Muokkaa osoitetta</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Muokkaa osoitteen nimeä</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Lisää osoite</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Ohjelma kaatui ja lopettaa toiminnan. </translation>
+ <translation>En pysty varaamaan porttia %d tähän koneeseen. Ehkä Bitcoin on jo käynnissä.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="81"/>
@@ -2092,12 +1975,4 @@ Muista, että salaamalla lompakkosi et voi kokonaan suojata Bitcoinejasi haittao
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_fr_CA.ts b/src/qt/locale/bitcoin_fr_CA.ts
new file mode 100644
index 0000000000..cc0a0fd59f
--- /dev/null
+++ b/src/qt/locale/bitcoin_fr_CA.ts
@@ -0,0 +1,1963 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr_CA" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>A propos de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; version</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Carnet d&apos;adresses</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation>Ceux-ci sont vos adresses Bitcoin qui vous permettent de recevoir des paiements. Vous pouvez en donner une différente à chaque expédieur afin de savoir qui vous payent.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Double-cliquez afin de modifier l&apos;adress ou l&apos;étiquette</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Créer une nouvelle adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>$Nouvelle Adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copier l&apos;adresse surligné a votre presse-papier</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Copier dans le presse papier</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Supprimer l&apos;adresse sélectionnée dans la liste. Seules les adresses d&apos;envoi peuvent être supprimé.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Supprimer</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation>Exporter les données du carnet d&apos;adresses</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copier l&apos;adresse surligné a votre presse-papier</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Copier dans le presse papier</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_fr_FR.ts b/src/qt/locale/bitcoin_fr_FR.ts
index 2a108f991b..08cea95b93 100644
--- a/src/qt/locale/bitcoin_fr_FR.ts
+++ b/src/qt/locale/bitcoin_fr_FR.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="fr_FR">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr_FR" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Développeurs de Bitcoin
+ <translation>Copyright © 2009-2012 Développeurs de Bitcoin
Ce logiciel est en phase expérimentale.
Distribué sous licence MIT/X11, voir le fichier license.txt ou http://www.opensource.org/licenses/mit-license.php.
-Ce produit inclut des logiciels développés par OpenSSL Project pour utilisation dans le OpenSSL Toolkit (http://www.openssl.org/), un logiciel cryptographique écrit par Eric Young (eay@cryptsoft.com) et le logiciel UPnP écrit par Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Développeurs de Bitcoin
-
-Ce logiciel est en phase expérimentale.
-
-Distribué sous licence MIT/X11, voir le fichier license.txt ou http://www.opensource.org/licenses/mit-license.php.
-
-Ce produit inclut des logiciels développés par OpenSSL Project pour utilisation dans le OpenSSL Toolkit (http://www.openssl.org/), un logiciel cryptographique écrit par Eric Young (eay@cryptsoft.com) et le logiciel UPnP écrit par Thomas Bernard.</translation>
+Ce produit inclut des logiciels développés par OpenSSL Project pour utilisation dans le OpenSSL Toolkit (http://www.openssl.org/), un logiciel cryptographique écrit par Eric Young (eay@cryptsoft.com) et un logiciel UPnP écrit par Thomas Bernard.</translation>
</message>
</context>
<context>
@@ -58,7 +40,7 @@ Ce produit inclut des logiciels développés par OpenSSL Project pour utilisatio
<message>
<location filename="../forms/addressbookpage.ui" line="20"/>
<source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
- <translation>Ceux-ci sont vos adresses Bitcoin qui vous permettent de recevoir des paiements. Vous pouvez en donner une différente à chaque expédieur afin de savoir qui vous paye.</translation>
+ <translation>Voici vos adresses Bitcoin qui vous permettent de recevoir des paiements. Vous pouvez donner une adresse différente à chaque expéditeur afin de savoir qui vous paye.</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="33"/>
@@ -88,17 +70,17 @@ Ce produit inclut des logiciels développés par OpenSSL Project pour utilisatio
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Afficher le &amp;QR Code</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Signer un message pour prouver que vous détenez cette adresse</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Signer un message</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ Ce produit inclut des logiciels développés par OpenSSL Project pour utilisatio
<translation>&amp;Supprimer</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Copier l&apos;adresse</translation>
+ <translation>Copier l&apos;adresse</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Copier l&apos;étiquette</translation>
+ <translation>Copier l&apos;étiquette</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Éditer</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Effacer</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Exporter les données du carnet d&apos;adresses</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Valeurs séparées par des virgules (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Erreur lors de l&apos;exportation</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Impossible d&apos;écrire sur le fichier %1.</translation>
</message>
@@ -200,7 +182,7 @@ Ce produit inclut des logiciels développés par OpenSSL Project pour utilisatio
<message>
<location filename="../askpassphrasedialog.cpp" line="34"/>
<source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
- <translation>Entrez une nouvelle phrase de passe pour le porte-monnaie.&lt;br/&gt;Veuillez utiliser une phrase de &lt;b&gt;10 caractères au hasard ou plus&lt;/b&gt; ou bien de &lt;huit mots ou plus&lt;/b&gt;.</translation>
+ <translation>Entrez une nouvelle phrase de passe pour le porte-monnaie.&lt;br/&gt;Veuillez utiliser une phrase de &lt;b&gt;10 caractères au hasard ou plus&lt;/b&gt; ou bien de &lt;b&gt;huit mots ou plus&lt;/b&gt;.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="35"/>
@@ -240,13 +222,13 @@ Ce produit inclut des logiciels développés par OpenSSL Project pour utilisatio
<message>
<location filename="../askpassphrasedialog.cpp" line="101"/>
<source>Confirm wallet encryption</source>
- <translation>Confirmez le chiffrement du porte-monnaie</translation>
+ <translation>Confirmer le chiffrement du porte-monnaie</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="102"/>
<source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
Are you sure you wish to encrypt your wallet?</source>
- <translation>ATTENTION: Si vous chiffrez votre porte-monnaie et perdez votre phrase de passe, vous &lt;b&gt;PERDREZ TOUS VOS BITCOINS&lt;/b&gt; !
+ <translation>ATTENTION : Si vous chiffrez votre porte-monnaie et perdez votre phrase de passe, vous &lt;b&gt;PERDREZ TOUS VOS BITCOINS&lt;/b&gt; !
Êtes-vous sûr de vouloir chiffrer votre porte-monnaie ?</translation>
</message>
<message>
@@ -258,17 +240,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin va à présent se fermer pour terminer la procédure de cryptage. N&apos;oubliez pas que le chiffrement de votre porte-monnaie ne peut pas fournir une protection totale contre le vol par des logiciels malveillants qui infecteraient votre ordinateur.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">N&apos;oubliez pas que le chiffrement de votre porte-monnaie ne peut pas entièrement protéger vos bitcoins contre le vol par un logiciel malveillant qui infecterait votre ordinateur.</translation>
+ <translation>Attention : la touche Verrouiller Maj est activée.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,317 +293,319 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Porte-monnaie Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Synchronisation avec le réseau...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Synchronisation de la chaîne de blocs en cours</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Vue d&apos;ensemble</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Affiche une vue d&apos;ensemble du porte-monnaie</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transactions</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Permet de parcourir l&apos;historique des transactions</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>Carnet d&apos;&amp;adresses</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Éditer la liste des adresses et des étiquettes stockées</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Recevoir des pièces</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Affiche la liste des adresses pour recevoir des paiements</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Envoyer des pièces</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Envoyer des pièces à une adresse bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>Signer un &amp;message</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Prouver que vous contrôlez une adresse</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>Q&amp;uitter</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Quitter l&apos;application</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;À propos de %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Afficher des informations à propos de Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>À propos de &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Afficher des informations sur Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Options...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Modifier les options de configuration pour bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Ouvrir &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Afficher la fenêtre de Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Exporter...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Exporter l&apos;affichage actuel vers un fichier</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Exporter les données de l&apos;onglet courant vers un fichier</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Chiffrer le porte-monnaie</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Chiffrer ou décrypter le porte-monnaie</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>&amp;Sauvegarder le porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>Sauvegarder le porte-monnaie à un autre emplacement</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Modifier la phrase de passe</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<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>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
- <translation>&amp;Dossier</translation>
+ <translation>&amp;Fichier</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Réglages</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Aide</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Barre d&apos;outils des onglets</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Barre d&apos;outils des actions</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n connexion active avec le réseau Bitcoin</numerusform>
- <numerusform>%n connexions actives avec le réseau Bitcoin</numerusform>
- </translation>
+ <translation><numerusform>%n connexion active avec le réseau Bitcoin</numerusform><numerusform>%n connexions actives avec le réseau Bitcoin</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
- <translation>%1 blocs de l&apos;historique des transactions sur un total de %2 téléchargés.</translation>
+ <translation>%1 blocs de l&apos;historique des transactions téléchargés sur un total de %2.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>%1 blocs de l&apos;historique de transaction téléchargé.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>il y a %n seconde</numerusform>
- <numerusform>il y a %n secondes</numerusform>
- </translation>
+ <translation><numerusform>il y a %n seconde</numerusform><numerusform>il y a %n secondes</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>il y a %n minute</numerusform>
- <numerusform>il y a %n minutes</numerusform>
- </translation>
+ <translation><numerusform>il y a %n minute</numerusform><numerusform>il y a %n minutes</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>il y a %n heure</numerusform>
- <numerusform>il y a %n heures</numerusform>
- </translation>
+ <translation><numerusform>il y a %n heure</numerusform><numerusform>il y a %n heures</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>il y a %n jour</numerusform>
- <numerusform>il y a %n jours</numerusform>
- </translation>
+ <translation><numerusform>il y a %n jour</numerusform><numerusform>il y a %n jours</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>À jour</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Rattrapage...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Le dernier bloc reçu a été généré %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Cette transaction dépasse la limite de taille. Vous pouvez quand-même l&apos;envoyer en vous acquittant de frais d&apos;un montant de %1, qui iront aux nœuds qui traitent la transaction et aideront à soutenir le réseau. Voulez-vous payer les frais ?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Envoi en cours...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Transaction envoyée</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Transaction entrante</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Date : %1
+ <translation>Date : %1
Montant : %2
Type : %3
Adresse : %4
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Date : %1
-Montant : %2
-Type : %3
-Adresse : %4</translation>
+</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<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>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<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>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>Sauvegarder le porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Données de porte-monnaie (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>La sauvegarde a échoué</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Une erreur est survenue lors de l&apos;enregistrement des données de porte-monnaie à un autre emplacement.</translation>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -695,12 +675,12 @@ Adresse : %4</translation>
<message>
<location filename="../editaddressdialog.cpp" line="91"/>
<source>The entered address &quot;%1&quot; is already in the address book.</source>
- <translation>L&apos;adresse &quot;%1&quot; entrée est déjà présente dans le carnet d&apos;adresses.</translation>
+ <translation>L&apos;adresse fournie « %1 » est déjà présente dans le carnet d&apos;adresses.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="96"/>
<source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
- <translation>L&apos;adresse &quot;%1&quot; entrée n&apos;est pas une adresse bitcoin valide.</translation>
+ <translation>L&apos;adresse fournie « %1 » n&apos;est pas une adresse bitcoin valide.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="101"/>
@@ -753,7 +733,7 @@ Adresse : %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="186"/>
<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 Quit in the menu.</source>
- <translation>Minimiser au lieu de sortir de l&apos;application lorsque la fenêtre est fermée. Lorsque cette option est activée, l&apos;application ne pourra être fermée qu&apos;en sélectionnant Quitter dans le menu déroulant.</translation>
+ <translation>Minimiser au lieu quitter l&apos;application lorsque la fenêtre est fermée. Lorsque cette option est activée, l&apos;application ne pourra être fermée qu&apos;en sélectionnant Quitter dans le menu déroulant.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="190"/>
@@ -788,17 +768,17 @@ Adresse : %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Frais de transaction optionnels par Ko qui aident à garantir un traitement rapide des transactions. La plupart des transactions occupent 1 Ko. Des frais de 0.01 sont recommandés.</translation>
+ <translation>Frais de transaction optionnels par ko qui aident à garantir un traitement rapide des transactions. La plupart des transactions occupent 1 ko. Des frais de 0.01 sont recommandés.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
<source>Pay transaction &amp;fee</source>
- <translation>Payer les &amp;frais de transaction</translation>
+ <translation>Payer des &amp;frais de transaction</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Frais de transaction optionnels par Ko qui aident à garantir un traitement rapide des transactions. La plupart des transactions occupent 1 Ko. Des frais de 0.01 sont recommandés.</translation>
+ <translation>Frais de transaction optionnels par ko qui aident à garantir un traitement rapide des transactions. La plupart des transactions occupent 1 ko. Des frais de 0.01 sont recommandés.</translation>
</message>
</context>
<context>
@@ -806,89 +786,89 @@ Adresse : %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Message</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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>Vous pouvez signer des messages avec vos adresses pour prouver que les détenez. Faites attention à ne pas signer quoi que ce soit de vague car des attaques d&apos;hameçonnage peuvent essayer d&apos;obtenir votre identité par votre signature. Ne signez que des déclarations entièrement détaillées et avec lesquelles vous serez d&apos;accord.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">L&apos;adresse à laquelle le paiement sera envoyé (par ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>L&apos;adresse à laquelle le paiement sera envoyé (par ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Choisir une adresse depuis le carnet d&apos;adresses</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Coller une adresse depuis le presse-papiers</translation>
+ <translation>Coller une adresse depuis le presse-papiers</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Entrez ici le message que vous désirez signer</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Cliquez sur « Signer le message » pour obtenir la signature</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Signer le message pour prouver que vous détenez cette adresse</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Signer le message</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Copier l&apos;adresse surlignée dans votre presse-papiers</translation>
+ <translation>Copier l&apos;adresse surlignée dans votre presse-papiers</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Copier dans le presse-papiers</translation>
+ <translation>&amp;Copier dans le presse-papiers</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Une erreur est survenue lors de la signature</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 n&apos;est pas une adresse valide.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>La clef privée pour %1 n&apos;est pas disponible.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Échec de la signature</translation>
</message>
</context>
<context>
@@ -951,7 +931,7 @@ Adresse : %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -985,42 +965,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialogue</translation>
+ <translation>Dialogue</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR Code</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Demande de paiement</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Montant :</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Étiquette :</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Message :</translation>
+ <translation>Message :</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Enregistrer sous...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>Enregistrer l&apos;image...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>Images PNG (*.png)</translation>
</message>
</context>
<context>
@@ -1050,7 +1040,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Enlever tous les champs de transaction</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1247,7 +1237,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="60"/>
<source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation>&lt;b&gt;Date : &lt;/b&gt; </translation>
+ <translation>&lt;b&gt;Date :&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="67"/>
@@ -1315,7 +1305,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="211"/>
<source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation>&lt;b&gt;Montant net : &lt;/b&gt; </translation>
+ <translation>&lt;b&gt;Montant net :&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="217"/>
@@ -1330,7 +1320,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>ID de la transaction :</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1376,10 +1366,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Ouvert pour %n bloc</numerusform>
- <numerusform>Ouvert pour %n blocs</numerusform>
- </translation>
+ <translation><numerusform>Ouvert pour %n bloc</numerusform><numerusform>Ouvert pour %n blocs</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1404,10 +1391,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Le solde d&apos;extraction (mined) sera disponible dans %n bloc</numerusform>
- <numerusform>Le solde d&apos;extraction (mined) sera disponible dans %n blocs</numerusform>
- </translation>
+ <translation><numerusform>Le solde d&apos;extraction (mined) sera disponible dans %n bloc</numerusform><numerusform>Le solde d&apos;extraction (mined) sera disponible dans %n blocs</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1427,11 +1411,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Reçue depuis l&apos;IP</translation>
+ <translation>Reçue de</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1439,10 +1419,6 @@ p, li { white-space: pre-wrap; }
<translation>Envoyée à</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Envoyée à l&apos;IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Paiement à vous-même</translation>
@@ -1486,163 +1462,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Toutes</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Aujourd&apos;hui</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Cette semaine</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Ce mois</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Mois dernier</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Cette année</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Intervalle...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Reçu avec</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Envoyé à</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>À vous-même</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Extraction</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Autre</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Entrez une adresse ou une étiquette à rechercher</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Montant min</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Copier l&apos;adresse</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Copier l&apos;étiquette</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Copier le montant</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Éditer l&apos;étiquette</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Afficher les détails...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Exporter les données de transaction</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Valeurs séparées par des virgules (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Confirmée</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Date</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Type</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Étiquette</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adresse</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Montant</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Erreur lors de l&apos;exportation</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Impossible d&apos;écrire sur le fichier %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Intervalle :</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>à</translation>
</message>
@@ -1650,7 +1626,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Envoi en cours...</translation>
</message>
@@ -1690,12 +1666,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
<source>Specify configuration file (default: bitcoin.conf)</source>
- <translation>Spécifiez le fichier de configuration (par défaut : bitcoin.conf)</translation>
+ <translation>Spécifier le fichier de configuration (par défaut : bitcoin.conf)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
<source>Specify pid file (default: bitcoind.pid)</source>
- <translation>Spécifiez le fichier pid (par défaut : bitcoind.pid)</translation>
+ <translation>Spécifier le fichier pid (par défaut : bitcoind.pid)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
@@ -1715,12 +1691,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
<source>Specify data directory</source>
- <translation>Spécifiez le répertoire de données</translation>
+ <translation>Spécifier le répertoire de données</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
<source>Specify connection timeout (in milliseconds)</source>
- <translation>Spécifiez le délai d&apos;expiration de la connexion (en millisecondes)</translation>
+ <translation>Spécifier le délai d&apos;expiration de la connexion (en millisecondes)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
@@ -1735,12 +1711,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Écouter les connexions sur le &lt;port&gt; (par défaut : 8333 ou testnet : 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Garder au plus &lt;n&gt; connexions avec les pairs (par défaut : 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1760,27 +1736,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Ne pas amorcer la liste des pairs en utilisant le DNS</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Seuil de déconnexion des pairs de mauvaise qualité (par défaut : 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Délai en secondes de refus de reconnexion aux pairs de mauvaise qualité (par défaut : 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Tampon maximal de réception par connexion, &lt;n&gt;*1000 octets (par défaut : 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Tampon maximal d&apos;envoi par connexion, &lt;n&gt;*1000 octets (par défaut : 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1790,12 +1766,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="31"/>
<source>Attempt to use UPnP to map the listening port</source>
- <translation>Essayer d&apos;utiliser l&apos;UPnP pour ouvrir le port d&apos;écouter</translation>
+ <translation>Essayer d&apos;utiliser l&apos;UPnP pour ouvrir le port d&apos;écoute</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>Frais par Ko à ajouter aux transactions que vous enverrez</translation>
+ <translation>Frais par ko à ajouter aux transactions que vous enverrez</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1815,22 +1791,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Informations de débogage supplémentaires</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Faire précéder les données de débogage par un horodatage</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Envoyer les informations de débogage/trace à la console au lieu du fichier debug.log</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Envoyer les informations de débogage/trace au débogueur</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1912,36 +1888,32 @@ Options SSL : (cf. le wiki Bitcoin pour les réglages SSL)</translation>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Erreur lors du chargement de addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Erreur lors du chargement de blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Erreur lors du chargement de wallet.dat : porte-monnaie corrompu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Erreur lors du chargement de wallet.dat : le porte-monnaie nécessite une version plus récente de Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Le porte-monnaie nécessitait une réécriture. Veuillez redémarrer Bitcoin pour terminer l&apos;opération</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Erreur lors du chargement d&apos;addr.dat </translation>
+ <translation>Erreur lors du chargement de wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1949,27 +1921,11 @@ Options SSL : (cf. le wiki Bitcoin pour les réglages SSL)</translation>
<translation>Chargement de l&apos;index des blocs...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Erreur lors du chargement de blkindex.dat </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Chargement du porte-monnaie...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Erreur lors du chargement de wallet.dat : porte-monnaie corrompu </translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Erreur lors du chargement de wallet.dat : le porte-monnaie nécessite une version plus récente de Bitcoin </translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Erreur lors du chargement de wallet.dat </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Nouvelle analyse...</translation>
@@ -2010,472 +1966,6 @@ Options SSL : (cf. le wiki Bitcoin pour les réglages SSL)</translation>
<translation>Impossible de s&apos;attacher au port %d sur cet ordinateur. Bitcoin fonctionne probablement déjà.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Cette transaction dépasse la limite de taille. Vous pouvez quand-même l&apos;envoyer en vous acquittant de frais d&apos;un montant de %s, qui iront aux nœuds qui traitent la transaction et aideront à soutenir le réseau. Voulez-vous payer les frais ?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Entrez la phrase de passe actuelle pour le porte-monnaie.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Phrase de passe</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Veuillez entrer la phrase de passe actuelle pour décrypter le porte-monnaie.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">La phrase de passe entrée pour décrypter le porte-monnaie était erronée.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">État</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Date</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Description</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Débit</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Crédit</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Ouvert pour %d bloc(s)</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Ouvert jusqu&apos;à %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/hors ligne ?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/non confirmé</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d confirmations</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Généré</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Généré (%s sera considéré comme mûr suite à %d blocs de plus)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Généré - Attention : ce bloc n&apos;a été reçu par aucun autre nœud et ne sera probablement pas accepté !</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Généré (pas accepté)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">De : </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Reçu avec : </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Paiement à vous-même</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">À : </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> génération en cours</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(déconnecté)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d connexions %d blocs %d transactions</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Le porte-monnaie est déjà chiffré.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Entrez une nouvelle phrase de passe pour le porte-monnaie.
-Veuillez utiliser une phrase de 10 caractères au hasard ou plus ou bien de huit mots ou davantage.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Erreur : la phrase de passe entrée est trop courte.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">ATTENTION: Si vous chiffrez votre porte-monnaie et perdez votre phrase de passe, vous PERDREZ TOUS VOS BITCOINS !
-Êtes-vous sûr de vouloir chiffrer votre porte-monnaie ?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Veuillez entrer à nouveau votre phrase de passe pour le porte-monnaie.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Erreur : les phrases de passe ne correspondent pas.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Le chiffrement du porte-monnaie a échoué.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Le porte-monnaie a été chiffré.
-N&apos;oubliez pas que le chiffrement de votre porte-monnaie ne peut pas entièrement protéger vos bitcoins contre le vol par un logiciel malveillant qui infecterait votre ordinateur.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Le porte-monnaie n&apos;est pas chiffré, veuillez d&apos;abord le chiffrer.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Entrez la nouvelle phrase de passe pour le porte-monnaie.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Veuillez entrer à nouveau votre phrase de passe pour le porte-monnaie.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">La phrase de passe du porte-monnaie a été modifiée.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Nouvelle adresse de réception</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Vous devriez utiliser une nouvelle adresse pour chaque paiement que vous recevez.
-
-Étiquette</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;État :&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, n&apos;a pas encore été diffusée avec succès</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, diffusée à travers %d nœud</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, diffusée à travers %d nœuds</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Date : &lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Source :&lt;/b&gt; Généré&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;De :&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">inconnue</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;À :&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (vôtre, étiquette : </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (vôtre)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Crédit : &lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s sera considéré comme mûr suite à %d blocs de plus)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(pas accepté)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Débit : &lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Frais de transaction :&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Montant net : &lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Message :</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Commentaire :</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Les pièces générées doivent attendre 120 blocs avant de pouvoir être dépensées. Lorsque vous avez généré ce bloc, il a été diffusé sur le réseau pour être ajouté à la chaîne des blocs. S&apos;il échoue a intégrer la chaîne, il sera modifié en « pas accepté » et il ne sera pas possible de le dépenser. Cela peut arriver occasionnellement si un autre nœud génère un bloc quelques secondes avant ou après vous.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Impossible d&apos;écrire sur le fichier autostart/bitcoin.desktop</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Principal</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Démarrer Bitcoin avec le système de fenêtres</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimiser lors de la fermeture</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">version %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Erreur dans le montant </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Envoyer des pièces</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Le montant dépasse votre solde </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">La somme dépasse votre solde lorsque les frais de transactions </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> sont inclus </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Paiement envoyé </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Envoi en cours...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Adresse invalide </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Envoi de %s à %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ANNULÉ</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Annulé</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Le transfert a été annulé </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Erreur : </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Fonds insuffisants</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Connexion...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Impossible d&apos;établir une connexion</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Demande de la clef publique...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Clef publique reçue...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Le destinataire n&apos;accepte pas les transactions envoyées aux adresses IP</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Le transfert n&apos;a pas été accepté</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Réponse invalide reçue</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Création de la transaction...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Cette transaction requière le paiement de frais d&apos;un montant au moins égal à %s en raison de sa complexité, de son montant ou de l&apos;utilisation de fonds récemment reçus</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">La création de la transaction a échoué</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transaction annulée</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Perte de la connexion, la transaction a été annulée</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Envoi du paiement...</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 type="obsolete">La transaction a été rejetée. Cela peut arriver si certaines pièces de votre porte-monnaie ont déjà été dépensées, par exemple si vous avez utilisé une copie de wallet.dat et si des pièces ont été dépensées avec cette copie sans être marquées comme telles ici.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Attente de la confirmation...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Le paiement a été envoyé, mais le destinataire est dans l&apos;incapacité de la vérifier.
-La transaction est enregistrée et sera portée au crédit du destinataire,
-mais les commentaires seront vides.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Le paiement a été envoyé, mais une réponse invalide fut reçue</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Paiement terminé</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Nom</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adresse</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Étiquette</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Adresse Bitcoin</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">C&apos;est l&apos;une de vos adresse pour recevoir des paiement et elle ne peut être ajoutée dans le carnet d&apos;adresses. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Éditer l&apos;adresse</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Éditer l&apos;étiquette de l&apos;adresse</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Ajouter une adresse</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Génération en cours</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (hors ligne)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Ouvrir Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Envoyer des Bitcoins</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;ptions...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">Qui&amp;tter</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Le programme a planté et va se terminer. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Attention : veuillez vérifier que l&apos;heure et la date de votre ordinateur sont corrects. Si votre horloge n&apos;est pas à l&apos;heure, Bitcoin ne fonctionnera pas correctement.</translation>
@@ -2486,16 +1976,4 @@ mais les commentaires seront vides.</translation>
<translation>bêta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts
new file mode 100644
index 0000000000..627245092a
--- /dev/null
+++ b/src/qt/locale/bitcoin_he.ts
@@ -0,0 +1,1977 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="he" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>×ודות ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>גרסת &lt;b&gt;ביטקוין&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation>זכויות ×™×•×¦×¨×™× Â© 2009-2012 שמורות למפתחי ביטקוין
+
+זוהי תוכנה ניסיונית.
+
+מופץ תחת רישיון תוכנה MIT/X11, ר××” ×ת הקובץ המלווה license.txt ×ו http://www.opensource.org/licenses/mit-license.php.
+
+המוצר ×”×–×” כולל תוכנה שפותחה על ידי פרויקט OpenSSL עבור שימוש בערכת ×”×›×œ×™× ×©×œ OpenSSL (http://www.openssl.org/) ובתוכנה קריפטוגרפית שנכתבה על ידי ×ריק ×™×× ×’ (eay@cryptsoft.com) ותוכנת UPnP שנכתבה על ידי תומס ברנרד.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>פנקס כתובות</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation>×לה כתובות הביטקוין שלך עבור קבלת תשלומי×. ×תה עשוי לרצות לתת כתובת שונה לכל שולח כדי שתוכל לעקוב ×חר מי ×ž×©×œ× ×œ×š.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>לחץ לחיצה כפולה לערוך כתובת ×ו תוית</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>יצירת כתובת חדשה</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>כתובת &amp;חדשה</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>העתק ×ת הכתובת המסומנת ללוח העריכה</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;העתק ללוח</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation>הצג &amp;קוד QR</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>×—×ª×•× ×¢×œ הודעה כדי להוכיח שכתובת זו בבעלותך</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation>×—×ª×•× ×¢×œ הו&amp;דעה</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>מחק ×ת הכתובת המסומנת מהרשימה. ניתן למחוק רק כתובות לשליחה.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;מחיקה</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation>העתק כתובת</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation>העתק תוית</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation>ערוך</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation>מחק</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation>×™×¦×•× × ×ª×•× ×™ פנקס כתובות</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>קובץ מופרד ×‘×¤×¡×™×§×™× (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation>שגי××” ביצו×</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation>×œ× ×ž×¡×•×’×œ לכתוב לקובץ %1.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation>תוית</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation>כתובת</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation>(×œ×œ× ×›×ª×•×‘×ª)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>שיח</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation>טקסטתוית</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation>הכנס סיסמ×</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation>סיסמה חדשה</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation>חזור על הסיסמה החדשה</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation>הכנס ×ת הסיסמה החדשה ל×רנק. &lt;br/&gt;×× × ×”×©×ª×ž×© בסיסמה המכילה &lt;b&gt;10 ×ª×•×™× ×קר××™×™× ×ו יותר&lt;/b&gt;, ×ו &lt;b&gt;שמונה ×ž×™×œ×™× ×ו יותר&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>הצפנת ×רנק</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>הפעולה הזו דורשת ×ת סיסמת ×”×רנק שלך בשביל לפתוח ×ת ×”×רנק.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>פתיחת ×רנק</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>הפעולה הזו דורשת ×ת סיסמת ×”×רנק שלך בשביל לפענח ×ת ×”×רנק.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>פענוח ×רנק</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>שינוי סיסמה</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>הכנס ×ת הסיסמות הישנה והחדשה ל×רנק.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>×שר הצפנת ×רנק</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation>×זהרה: ×× ×ª×¦×¤×™×Ÿ ×ת ×”×רנק שלך ות×בד ×ת הסיסמה ×תה &lt;b&gt;ת×בד ×ת כל הביטקוין שלך&lt;/b&gt;!
+×תה בטוח שברצונך להצפין ×ת ×”×רנק?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation>×”×רנק הוצפן</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation>ביטקוין ייסגר עכשיו כדי ×œ×”×©×œ×™× ×ת תהליך ההצפנה. זכור שהצפנת ×”×רנק שלך ×ינו יכול להגן ב×ופן ×ž×œ× ×¢×œ ×”×‘×™×˜×§×•×™× ×™× ×©×œ×š מתוכנות זדוניות המושתלות על המחשב.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>×זהרה: מקש Caps Lock מופעל.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation>הצפנת ×”×רנק נכשלה</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>הצפנת ×”×רנק נכשלה עקב שגי××” פנימית. ×”×רנק שלך ×œ× ×”×•×¦×¤×Ÿ.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>הסיסמות שניתנו ×ינן תו×מות.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation>פתיחת ×”×רנק נכשלה</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>הסיסמה שהוכנסה לפענוח ×”×רנק שגויה.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation>פענוח ×”×רנק נכשל</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation>סיסמת ×”×רנק שונתה בהצלחה.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation>×רנק ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation>מסתנכרן ×¢× ×”×¨×©×ª...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>סנכרון ×¢× ×©×¨×©×¨×ª ×”×‘×œ×•×§×™× ×‘×¢×™×¦×•×ž×•</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;סקירה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation>הצג סקירה כללית של ×”×רנק</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;פעולות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation>דפדף בהיסטוריית הפעולות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation>פנקס &amp;כתובות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>ערוך ×ת רשימת הכתובות והתויות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;קבלת מטבעות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>הצג ×ת רשימת הכתובות לקבלת תשלומי×</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;שלח מטבעות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>שלח מטבעות לכתובת ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation>×—×ª×•× ×¢×œ הו&amp;דעה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation>הוכח ש×תה שולט בכתובת</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation>×™&amp;צי××”</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation>סגור תוכנה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;×ודות %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation>הצג מידע על ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation>×ודות Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation>הצג מידע על Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;×פשרויות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>שנה הגדרות עבור ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>פתח ×ת &amp;ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation>הצג ×ת חלון ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation>×™&amp;צ×</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>×™×¦×•× ×”× ×ª×•× ×™× ×‘×˜×ב הנוכחי לקובץ</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>הצ&amp;פן ×רנק</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>הצפן ×ו פענח ×רנק</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>&amp;גיבוי ×רנק</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>גיבוי ×”×רנק ×œ×ž×§×•× ×חר</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>שנה &amp;סיסמה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>שנה ×ת הסיסמה להצפנת ×”×רנק</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation>&amp;קובץ</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation>ה&amp;גדרות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation>&amp;עזרה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation>סרגל ×›×œ×™× ×˜×בי×</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation>סרגל ×›×œ×™× ×¤×¢×•×œ×•×ª</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation>[רשת-בדיקה]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation><numerusform>חיבור פעיל ×חד לרשת הביטקוין</numerusform><numerusform>%n ×—×™×‘×•×¨×™× ×¤×¢×™×œ×™× ×œ×¨×©×ª הביטקוין</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>הורדו %1 מתוך %2 ×‘×œ×•×§×™× ×©×œ היסטוריית פעולות.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>הורדו %1 ×‘×œ×•×§×™× ×©×œ היסטוריית פעולות.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation><numerusform>לפני שניה</numerusform><numerusform>לפני %n שניות</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation><numerusform>לפני דקה</numerusform><numerusform>לפני %n דקות</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation><numerusform>לפני שעה</numerusform><numerusform>לפני %n שעות</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation><numerusform>לפני יו×</numerusform><numerusform>לפני %n ימי×</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation>עדכני</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation>מתעדכן...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation>הבלוק ×”×חרון שהתקבל נוצר ב-%1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation>הפעולה ×”×–×ת חורגת מהמגבלה. ניתן לשלוח ×ותה תמורת עמלה בסך %1, שמגיעה ×œ×¦×ž×ª×™× ×©×ž×¢×‘×“×™× ×ת הפעולה ועוזרת לתמוך ברשת. ×”×× ×תה מעוניין ×œ×©×œ× ×ת העמלה?</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation>שולח...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation>פעולה שנשלחה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation>פעולה שהתקבלה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>ת×ריך: %1
+כמות: %2
+סוג: %3
+כתובת: %4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>×”×רנק &lt;b&gt;מוצפן&lt;/b&gt; וכרגע &lt;b&gt;פתוח&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>×”×רנק &lt;b&gt;מוצפן&lt;/b&gt; וכרגע &lt;b&gt;נעול&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>גיבוי ×רנק</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>נתוני ×רנק (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>הגיבוי נכשל</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>היתה שגי××” בניסיון לשמור ×ת מידע ×”×רנק ×œ×ž×™×§×•× ×”×—×“×©.</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;יחידת מדידה להציג בה כמויות: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>בחר ×ת יחידת החלוקה להצגה בממשק, ובעת שליחת מטבעות</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation>הצג כתובות ברשימת הפעולות</translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>ערוך כתובת</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>ת&amp;וית</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>התוית המשויכת לרשומה הזו בפנקס הכתובות</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;כתובת</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation>הכתובת המשויכת לרשומה זו בפנקס הכתובות. ניתן לשנות ×–×ת רק עבור כתובות לשליחה.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>כתובת חדשה לקבלה</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>כתובת חדשה לשליחה</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>ערוך כתובת לקבלה</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>ערוך כתובת לשליחה</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>הכתובת שהכנסת &quot;%1&quot; כבר נמצ×ת בפנקס הכתובות.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>הכתובת שהכנסת &quot;%1&quot; ××™× ×” כתובת ביטקוין תקינה.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>פתיחת ×”×רנק נכשלה.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>יצירת מפתח חדש נכשלה.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>התח&amp;ל ×ת ביטקוין בהפעלת מערכת חלונות</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>התחל ×ת ביטקוין ×וטומטית כשהמחשב נדלק</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>מ&amp;זער למגש ×‘×ž×§×•× ×œ×©×•×¨×ª המשימות</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>הצג ×ייקון מגש בלבד ל×חר מזעור החלון</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>מיפוי פורט ב×מצעות UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation>פתח ×ת פורט ביטקוין בנתב ב×ופן ×וטומטי. עובד רק ×× UPnP מ×ופשר ונתמך ×¢&quot;×™ הנתב.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>מז&amp;ער בעת סגירה</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation>מזער ×ת התוכנה ×‘×ž×§×•× ×œ×¦×ת ממנה כשהחלון נסגר. כש×פשרות זו פעילה, התוכנה תיסגר רק ל×חר בחירת יצי××” מהתפריט.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>התח&amp;בר דרך פרוקסי SOCKS4:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>התחבר לרשת הביטקוין דרך פרוקסי SOCKS4 (למשל, בעת חיבור דרך Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>IP של פרוקסי:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>כתובת ×”×ינטרנט של הפרוקסי (למשל 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;פורט: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>הפורט של הפרוקסי (למשל 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation>עמלת פעולה ×ופציונלית לכל kB תבטיח שהפעולה שלך תעובד בזריזות. רוב הפעולות הן 1 kB. מומלצת עמלה בסך 0.01.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>×©×œ× &amp;עמלת פעולה</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation>עמלת פעולה ×ופציונלית לכל kB תבטיח שהפעולה שלך תעובד בזריזות. רוב הפעולות הן 1 kB. מומלצת עמלה בסך 0.01.</translation>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation>הודעה</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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>×תה יכול ×œ×—×ª×•× ×¢×œ הודעות ×¢× ×”×›×ª×•×‘×•×ª שלך כדי להוכיח שהן בבעלותך. היזהר ×œ× ×œ×—×ª×•× ×¢×œ משהו מעורפל, שכן התקפות פישינג עשויות ×œ×’×¨×•× ×œ×š בעורמה למסור ×ת זהותך. ×—×ª×•× ×¨×§ על ×מרות מפורטות לחלוטין ש×תה ×ž×¡×›×™× ×¢×™×ž×Ÿ.</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>הכתובת ×ליה יישלח ×”×ª×©×œ×•× (למשל 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation>בחר כתובת מפנקס הכתובות</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation>הדבק כתובת מהלוח</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation>הכנס ×›×ן ×ת ההודעה שעליך ברצונך לחתו×</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation>לחץ על &quot;×—×ª×•× ×¢×œ הודעה&quot; לקבלת חתימה</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>×—×ª×•× ×¢×œ הודעה כדי להוכיח שכתובת זו בבעלותך</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation>×—×ª×•× ×¢×œ הו&amp;דעה</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>העתק ×ת הכתובת שסומנה ללוח המערכת</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>ה&amp;עתק ללוח</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation>שגי××” בחתימה</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation>%1 ××™× ×” כתובת תקינה.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation>המפתח הפרטי עבור %1 ×ינו זמין.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation>החתימה נכשלה</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>ר×שי</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>תצוגה</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>×פשרויות</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>טופס</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>יתרה:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>מספר פעולות:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>ממתין ל×ישור:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation>0 ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;פעולות ×חרונות&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>היתרה הנוכחית שלך</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation>×”×¡×›×•× ×”×›×•×œ×œ של פעולות ×©×˜×¨× ×ושרו, ועוד ×ינן נספרות בחישוב היתרה הנוכחית</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>המספר הכולל של פעולות ב×רנק</translation>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation>שיח</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation>קוד QR</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation>בקש תשלו×</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation>כמות:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation>ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation>תוית:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation>הודעה:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation>&amp;שמור בש×...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>שמור תמונה...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>תמונות PNG (*.png)</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation>שלח מטבעות</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>שלח למספר ×ž×§×‘×œ×™× ×‘×•-זמנית</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;הוסף מקבל...</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>הסר ×ת כל השדות בפעולה</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>נקה הכל</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>יתרה:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation>×שר ×ת פעולת השליחה</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation>&amp;שלח</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; ל- %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation>×שר שליחת מטבעות</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>×”×× ×תה בטוח שברצונך לשלוח %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation> ו- </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation>כתובת המקבל ××™× ×” תקינה, ×× × ×‘×“×•×§ שנית.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>הכמות ×œ×©×œ× ×—×™×™×‘×ª להיות גדולה מ-0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation>הכמות חורגת מהיתרה שלך.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation>×”×¡×›×•× ×—×•×¨×’ מהיתרה ל×חר הכללת עמלת פעולה בסך %1.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation>כתובת כפולה נמצ××”, ניתן לשלוח לכל כתובת רק ×¤×¢× ×חת בכל פעולה שליחה</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>שגי××”: יצירת הפעולה נכשלה </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation>שגי××”: הפעולה נדחתה. ×–×” עשוי לקרות ×× ×—×œ×§ מהמטבעות ב×רנק שלך כבר נוצלו, למשל ×× ×”×©×ª×ž×©×ª בעותק של הקובץ wallet.dat ומטבעות נוצלו בהעתק ×ך ×œ× ×¡×•×ž× ×• כמנוצלות ×›×ן.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>טופס</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>כ&amp;מות:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>×©×œ× &amp;ל:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation>הכנס תוית לכתובת ×”×–×ת כדי להכניס לפנקס הכתובות</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>ת&amp;וית:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>הכתובת ×ליה יישלח ×”×ª×©×œ×•× (למשל 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>בחר כתובת מפנקס הכתובות</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>הדבר כתובת מהלוח</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation>הסר ×ת המקבל ×”×–×”</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>הכנס כתובת ביטקוין (למשל 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation>פתוח למשך %1 בלוקי×</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation>פתוח עד %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation>%1/×œ× ×ž×—×•×‘×¨?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/ממתין ל×ישור</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation>%1 ×ישורי×</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;מצב:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, ×˜×¨× ×©×•×“×¨ בהצלחה</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, שודר דרך צומת %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, שודר דרך %1 צמתי×</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;ת×ריך:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;מקור:&lt;/b&gt; נוצר&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;מ×ת:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation>×œ× ×™×“×•×¢</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;×ל:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation> (שלך, תוית: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation>(שלך)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;זיכוי:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 יבגור עוד %2 בלוקי×)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation>(×œ× ×”×ª×§×‘×œ)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&lt;חיוב:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;עמלת פעולה:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;כמות נטו:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation>הודעה:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation>הערה:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation>מזהה פעולה:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation>מטבעות שנוצרו ×—×™×™×‘×™× ×œ×—×›×•×ª 120 ×‘×œ×•×§×™× ×œ×¤× ×™ שניתן לנצל ×ות×. כשיצרת ×ת הבלוק ×”×–×”, ×”×•× ×©×•×“×¨ לרשת כדי להתווסף לשרשרת הבלוקי×. ×× ×”×•× ×ינו מצליח להיכנס לשרשרת, ×”×•× ×™×©×ª× ×” ל&quot;×œ× ×”×ª×§×‘×œ&quot; ×•×œ× × ×™×ª×Ÿ ×™×”×™×” לנצל ×ותו. ×–×” יכול לקרות מדי ×¤×¢× ×× ×¦×•×ž×ª ×חר מייצר בלוק בהפרש של מספר שניות מהבלוק שלך.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>פרטי הפעולה</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>חלונית זו מציגה תי×ור מפורט של הפעולה</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation>ת×ריך</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation>סוג</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation>כתובת</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation>כמות</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation><numerusform>פתוח למשך בלוק ×חד</numerusform><numerusform>פתוח למשך %n בלוקי×</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation>פתוח עד %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>×œ× ×ž×—×•×‘×¨ (%1 ×ישורי×)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>ממתין ל×ישור (%1 מתוך %2 ×ישורי×)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>מ×ושר (%1 ×ישורי×)</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation><numerusform>יתרה שנכרתה תהיה זמינה עוד בלוק ×חד</numerusform><numerusform>יתרה שנכרתה תהיה זמינה עוד %n בלוקי×</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>הבלוק ×”×–×” ×œ× × ×§×œ×˜ על ידי ××£ צומת ×חר, וכנר××” ×œ× ×™×ª×§×‘×œ!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation>נוצר ×ך ×œ× ×”×ª×§×‘×œ</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation>התקבל ×¢×</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation>התקבל מ×ת</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation>נשלח ל</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation>×ª×©×œ×•× ×œ×¢×¦×ž×š</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation>נכרה</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation>(n/a)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>מצב הפעולה. השהה ×ת הסמן מעל שדה ×–×” כדי לר×ות ×ת מספר ×”×ישורי×.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>הת×ריך והשעה בה הפעולה ×”×–×ת התקבלה.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation>סוג הפעולה.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation>כתובת היעד של הפעולה.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>הכמות שהתווספה ×ו הוסרה מהיתרה.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation>הכל</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>היו×</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>השבוע</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>החודש</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>החודש שעבר</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>השנה</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>טווח...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>התקבל ×¢×</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>נשלח ל</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>לעצמך</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>נכרה</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>×חר</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>הכנס כתובת ×ו תוית לחפש</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>כמות מזערית</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation>העתק כתובת</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation>העתק תוית</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation>העתק כמות</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>ערוך תוית</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>הצג פרטי×...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation>×™×¦×•× × ×ª×•× ×™ פעולות</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>קובץ מופרד ×‘×¤×¡×™×§×™× (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation>מ×ושר</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation>ת×ריך</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation>סוג</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>תוית</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>כתובת</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation>כמות</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation>מזהה</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>שגי××” ביצו×</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation>×œ× ×ž×¡×•×’×œ לכתוב לקובץ %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation>טווח:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation>×ל</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation>שולח...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation>גרסת ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation>שימוש:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation>שלח פקודה ל -server ×ו bitcoind</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation>רשימת פקודות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation>קבל עזרה עבור פקודה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation>×פשרויות:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation>ציין קובץ הגדרות (ברירת מחדל: bitcoin.conf)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation>ציין קובץ pid (ברירת מחדל: bitcoind.pid)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation>צור מטבעות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation>×ל תייצר מטבעות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation>התחל ממוזער</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation>ציין תיקיית נתוני×</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation>ציין הגבלת זמן לחיבור (במילישניות)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation>התחבר דרך פרוקסי socks4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation>×פשר עיון ב-DNS להוספת צומת וחיבור</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation>×”×זן ×œ×—×™×‘×•×¨×™× ×‘&lt;פורט&gt; (ברירת מחדל: 8333 ×ו ברשת הבדיקה: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation>החזק לכל היותר &lt;n&gt; ×—×™×‘×•×¨×™× ×œ×¢×ž×™×ª×™× (ברירת מחדל: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation>הוסף צומת להתחבר ×ליו</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation>התחבר רק לצומת המצוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation>×ל תקבל ×—×™×‘×•×¨×™× ×ž×‘×—×•×¥</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation>×ל תשתמש ב-DNS ל×תחול רשימת עמיתי×</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation>סף להתנתקות ×ž×¢×ž×™×ª×™× ×”× ×•×”×’×™× ×©×œ× ×›×”×œ×›×” (ברירת מחדל: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation>מספר שניות למנוע ×ž×¢×ž×™×ª×™× ×”× ×•×”×’×™× ×©×œ× ×›×”×œ×›×” מלהתחבר מחדש (ברירת מחדל: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>חוצץ מירבי לקבלה לכל חיבור, &lt;n&gt;*1000 ×‘×ª×™× (ברירת מחדל: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>חוצץ מירבי לשליחה לכל חיבור, &lt;n&gt;*1000 ×‘×ª×™× (ברירת מחדל: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation>×ל תנסה להשתמש ב-UPnP כדי למפות ×ת הפורט לה××–× ×”</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation>נסה להשתמש ב-UPnP כדי למפות ×ת הפורט לה××–× ×”</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation>עמלה לכל kB להוסיף לפעולות ש×תה שולח</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation>קבל פקודות משורת הפקודה ו- JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation>רוץ ברקע כדימון וקבל פקודות</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation>השתמש ברשת הבדיקה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation>פלוט מידע דיב××’ נוסף </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation>הוסף חותמת זמן לפני פלט דיב××’</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation>שלח מידע דיב××’ ועקבה לקונסולה ×‘×ž×§×•× ×œ×§×•×‘×¥ debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation>שלח מידע דיב××’ ועקבה לכלי דיב××’</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation>×©× ×ž×©×ª×ž×© לחיבורי JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation>סיסמה לחיבורי JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation>×”×זן לחיבורי JSON-RPC ב&lt;פורט&gt; (ברירת מחדל: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation>×פשר חיבורי JSON-RPC מכתובת ×”×ינטרנט המצוינת</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation>שלח פקודות לצומת ב-&lt;ip&gt; (ברירת מחדל: 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation>קבע ×ת גודל המ×גר ל -&lt;n&gt; (ברירת מחדל: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation>סרוק מחדש ×ת שרשרת ×”×‘×œ×•×§×™× ×œ×ž×¦×™×ת פעולות חסרות ב×רנק</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation>×פשרויות SSL: (ר××” ×ת הויקי של ביטקוין עבור הור×ות להתקנת SSL)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation>השתמש ב-OpenSSL (https( עבור חיבורי JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation>קובץ תעודת שרת (ברירת מחדל: server.cert)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation>מפתח פרטי של השרת (ברירת מחדל: server.pem)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation>×¦×¤× ×™× ×§×‘×™×œ×™× (ברירת מחדל: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation>הודעת העזרה הזו</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>×ינו מסוגל לנעול ×ת תיקיית ×”× ×ª×•× ×™× %s. כנר××” שביטקוין כבר רץ.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation>טוען כתובות...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation>שגי××” בטעינת הקובץ addr.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation>שגי××” בטעינת הקובץ blkindex.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation>שגי××” בטעינת הקובץ wallet.dat: ×”×רנק מושחת</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation>שגי××” בטעינת הקובץ wallet.dat: ×”×רנק דורש גרסה חדשה יותר של ביטקוין</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation>יש לכתוב מחדש ×ת ×”×רנק: ×תחל ×ת ביטקוין לסיו×</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation>שגי××” בטעינת הקובץ wallet.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation>טוען ×ת ×ינדקס הבלוקי×...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation>טוען ×רנק...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation>סורק מחדש...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation>טעינה הושלמה</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation>כתובת פרוקסי ×œ× ×ª×§×™× ×”</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>כמות ×œ× ×ª×§×™× ×” בפרמטר -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>×זהרה: ערך גבוה מדי ×”×•×©× ×‘×¤×¨×ž×˜×¨ -paytxfee. זו העמלה ×©×ª×©×œ× ×× ×תה שולח פעולה.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>שגי××”: כישלון ב- CreateThread(StartNode)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation>×זהרה: מעט ×ž×§×•× ×‘×“×™×¡×§ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>×œ× ×ž×¡×•×’×œ להיקשר לפורט %d במחשב ×”×–×”. כנר××” שביטקוין כבר רץ.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation>×זהרה: ×× × ×‘×“×•×§ שהת×ריך והשעה של המחשב ×”×–×” נכוני×. ×× ×”×©×¢×•×Ÿ שלך שגוי ביטקוין ×œ× ×™×¤×¢×œ כהלכה.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation>בט×</translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/bitcoin_hr.ts
index 8bd78703f3..9d9e2695ae 100644
--- a/src/qt/locale/bitcoin_hr.ts
+++ b/src/qt/locale/bitcoin_hr.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="hr">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="hr" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,7 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin Developers
-
-Ovo je eksperimentalni program.
-
-Distribuirano pod MIT/X11 licencom za softver, pogledajte popratnu datoteku license.txt ili http://www.opensource.org/licenses/mit-license.php.
-
-Ovaj proizvod sadrži softver kojeg je razvio OpenSSL Project za upotrebu u OpenSSL Toolkit (http://www.openssl.org/) i kriptografski softver kojeg je napisao Eric Young (eay@cryptsoft.com) i UPnP softver kojeg je napisao Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin Developers
-
-Ovo je eksperimentalni program.
-
-Distribuirano pod MIT/X11 licencom za softver, pogledajte popratnu datoteku license.txt ili http://www.opensource.org/licenses/mit-license.php.
-
-Ovaj proizvod sadrži softver kojeg je razvio OpenSSL Project za upotrebu u OpenSSL Toolkit (http://www.openssl.org/) i kriptografski softver kojeg je napisao Eric Young (eay@cryptsoft.com) i UPnP softver kojeg je napisao Thomas Bernard.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -88,17 +64,17 @@ Ovaj proizvod sadrži softver kojeg je razvio OpenSSL Project za upotrebu u Open
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +87,42 @@ Ovaj proizvod sadrži softver kojeg je razvio OpenSSL Project za upotrebu u Open
<translation>&amp;Brisanje</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Kopirati adresu</translation>
+ <translation>Kopirati adresu</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Kopirati oznaku</translation>
+ <translation>Kopirati oznaku</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Izvoz podataka adresara</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Datoteka vrijednosti odvojenih zarezom (*. csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Pogreška kod izvoza</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Ne mogu pisati u datoteku %1.</translation>
</message>
@@ -258,17 +234,13 @@ Jeste li sigurni da želite Å¡ifrirati svoj novÄanik?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Zapamtite da Å¡ifriranje vaÅ¡eg novÄanika ne može u potpunosti zaÅ¡tititi vaÅ¡e bitcoinove od zloćudnog softvera kojim se zarazi vaÅ¡e raÄunalo.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,322 +287,319 @@ Jeste li sigurni da želite Å¡ifrirati svoj novÄanik?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin novÄanik</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Usklađivanje s mrežom ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Sinkronizacija lanca blokova u tijeku</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Pregled</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Prikaži opći pregled novÄanika</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transakcije</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Pretraži povijest transakcija</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Adresar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Uređivanje popisa pohranjenih adresa i oznaka</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Primanje novca</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Prikaži popis adresa za primanje isplate</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Pošalji novac</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Slanje novca na bitcoin adresu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Izlaz</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Izlazak iz programa</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;Više o %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Prikaži informacije o Bitcoinu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Postavke</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Promijeni postavke konfiguracije za bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Otvori &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Prikaži Bitcoin prozor</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Izvoz...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Izvoz trenutnog prikaza u datoteku</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Å ifriraj novÄanik</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Å ifriranje ili deÅ¡ifriranje novÄanika</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Promijena lozinke</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Promijenite lozinku za Å¡ifriranje novÄanika</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Datoteka</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Konfiguracija</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Pomoć</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Traka kartica</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Traka akcija</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktivna veza na Bitcoin mrežu</numerusform>
- <numerusform>%n aktivne veze na Bitcoin mrežu</numerusform>
- <numerusform>%n aktivnih veza na Bitcoin mrežu</numerusform>
- </translation>
+ <translation><numerusform>%n aktivna veza na Bitcoin mrežu</numerusform><numerusform>%n aktivne veze na Bitcoin mrežu</numerusform><numerusform>%n aktivnih veza na Bitcoin mrežu</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Preuzeto %1 od %2 blokova povijesti transakcije.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Preuzeto %1 blokova povijesti transakcije.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>prije %n sekunde</numerusform>
- <numerusform>prije %n sekunde</numerusform>
- <numerusform>prije %n sekundi</numerusform>
- </translation>
+ <translation><numerusform>prije %n sekunde</numerusform><numerusform>prije %n sekunde</numerusform><numerusform>prije %n sekundi</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>prije %n minute</numerusform>
- <numerusform>prije %n minute</numerusform>
- <numerusform>prije %n minuta</numerusform>
- </translation>
+ <translation><numerusform>prije %n minute</numerusform><numerusform>prije %n minute</numerusform><numerusform>prije %n minuta</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>prije %n sata</numerusform>
- <numerusform>prije %n sata</numerusform>
- <numerusform>prije %n sati</numerusform>
- </translation>
+ <translation><numerusform>prije %n sata</numerusform><numerusform>prije %n sata</numerusform><numerusform>prije %n sati</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>prije %n dana</numerusform>
- <numerusform>prije %n dana</numerusform>
- <numerusform>prije %n dana</numerusform>
- </translation>
+ <translation><numerusform>prije %n dana</numerusform><numerusform>prije %n dana</numerusform><numerusform>prije %n dana</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Ažurno</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Ažuriranje...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Zadnji primljeni blok je generiran %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Ova transakcija je preko ograniÄenja veliÄine. Možete ju ipak poslati za naknadu od %1, koja se daje Ävorovima koji procesiraju vaÅ¡e transakcije i tako podržavate mrežu. Želite li platiti naknadu?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Slanje...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Poslana transakcija</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Dolazna transakcija</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Datum: %1
-Iznos: %2
-Vrsta: %3
-Adresa: %4
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Datum: %1
-Iznos: %2
-Vrsta: %3
-Adresa: %4</translation>
+ <translation>Datum:%1
+Iznos:%2
+Tip:%3
+Adresa:%4
+</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>NovÄanik je &lt;b&gt;Å¡ifriran&lt;/b&gt; i trenutno &lt;b&gt;otkljuÄan&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>NovÄanik je &lt;b&gt;Å¡ifriran&lt;/b&gt; i trenutno &lt;b&gt;zakljuÄan&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -793,7 +762,7 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Opcionalni troÅ¡ak transakcije po kB pospjeÅ¡uje bržu obradu vaÅ¡e transakcije. Većina transakcija je 1 kB. PreporuÄujemo transakcijski troÅ¡ak od 0,01.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -803,7 +772,7 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Opcionalni troÅ¡ak transakcije po kB pospjeÅ¡uje bržu obradu vaÅ¡e transakcije. Većina transakcija je 1 kB. PreporuÄujemo transakcijski troÅ¡ak od 0,01.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -811,89 +780,89 @@ Adresa: %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Adresa za slanje plaćanja (npr. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Adresa za slanje plaćanja (npr. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Odaberite adresu iz adresara</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Zalijepi adresu iz međuspremnika</translation>
+ <translation>Zalijepi adresu iz međuspremnika</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Kopiraj trenutno odabranu adresu u međuspremnik</translation>
+ <translation>Kopiraj trenutno odabranu adresu u međuspremnik</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Kopiraj u međuspremnik</translation>
+ <translation>&amp;Kopiraj u međuspremnik</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -956,7 +925,7 @@ Adresa: %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -990,42 +959,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dijalog</translation>
+ <translation>Dijalog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Poruka:</translation>
+ <translation>Poruka:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1055,7 +1034,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1335,7 +1314,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1381,11 +1360,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Otvoren za %n bloka</numerusform>
- <numerusform>Otvoren za %n blokova</numerusform>
- <numerusform>Otvoren za %n blokova</numerusform>
- </translation>
+ <translation><numerusform>Otvoren za %n bloka</numerusform><numerusform>Otvoren za %n blokova</numerusform><numerusform>Otvoren za %n blokova</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1410,11 +1385,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Saldo iskovanih novÄićća bit de dostupan nakon %n dodatnog bloka</numerusform>
- <numerusform>Saldo iskovanih novÄićća bit de dostupan nakon %n dodatnih blokova</numerusform>
- <numerusform>Saldo iskovanih novÄićća bit de dostupan nakon %n dodatnih blokova</numerusform>
- </translation>
+ <translation><numerusform>Saldo iskovanih novÄićća bit de dostupan nakon %n dodatnog bloka</numerusform><numerusform>Saldo iskovanih novÄićća bit de dostupan nakon %n dodatnih blokova</numerusform><numerusform>Saldo iskovanih novÄićća bit de dostupan nakon %n dodatnih blokova</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1434,11 +1405,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Primljeno s IP adrese</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1446,10 +1413,6 @@ p, li { white-space: pre-wrap; }
<translation>Poslano za</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Poslano na IP adresu</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Plaćanje samom sebi</translation>
@@ -1493,163 +1456,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Sve</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Danas</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Ovaj tjedan</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Ovaj mjesec</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Prošli mjesec</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Ove godine</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Raspon...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Primljeno s</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Poslano za</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Tebi</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Rudareno</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Ostalo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Unesite adresu ili oznaku za pretraživanje</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Min iznos</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Kopirati adresu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Kopirati oznaku</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Izmjeniti oznaku</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Prikazati detalje...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Izvoz podataka transakcija</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Datoteka podataka odvojenih zarezima (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Potvrđeno</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Tip</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Oznaka</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adresa</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Iznos</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Izvoz pogreške</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Ne mogu pisati u datoteku %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Raspon:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>za</translation>
</message>
@@ -1657,7 +1620,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Slanje...</translation>
</message>
@@ -1742,12 +1705,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1767,27 +1730,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1802,7 +1765,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>Naknada posredniku po kB-u koja će biti dodana svakoj transakciji koju pošalješ</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1822,22 +1785,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1918,36 +1881,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">GreÅ¡ka prilikom uÄitavanja datoteke addr.dat</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1955,27 +1914,11 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>UÄitavanje indeksa blokova...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">GreÅ¡ka prilikom uÄitavanja datoteke blkindex.dat</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>UÄitavanje novÄanika...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">GreÅ¡ka prilikom uÄitavanja datoteke wallet.dat: lisnica je korumpirana</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">GreÅ¡ka prilikom uÄitavanja datoteke wallet.dat: lisnica zahtjeva noviju verziju programa Bitcoin </translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">GreÅ¡ka prilikom uÄitavanja datoteke wallet.dat</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Rescaniranje</translation>
@@ -2016,472 +1959,6 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>Program ne može koristiti port %d na ovom raÄunalu. Bitcoin program je vjerojatno već pokrenut.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Transakcija ima prekomjernu veliÄinu. JoÅ¡ uvijek ju možeÅ¡ poslati uz transakcijski troÅ¡ak %s, koji će primiti nodovi koji obrade transakciju i ona pomaže održanju mreže. Da li želiÅ¡ platiti taj troÅ¡ak?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Unesite važeću lozinku za lisnicu.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Lozinka</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Molimo unesite važeću lozinku za dešifriranje lisnice</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Lozinka za deÅ¡ifriranje novÄanika nije toÄna.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Status</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Datum</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Opis</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Zaduženje</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Uplaćeno</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Otvoren za %d blokova</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Otvoren do %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/nije dostupan?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/nepotvrđen</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d potvrda</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Generiran</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Generirano (%s stasava za %d dodatnih blokova)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Generirano - Upozorenje: ovaj blok nije bio primljen od strane bilo kojeg drugog noda i vjerojatno neće biti prihvaćen!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Generirano (nije prihvaćen)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Od:</translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Primljeno s:</translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Plaćanje samom sebi</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Adresa primatelja:</translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Generiranje</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(nije povezan)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d veza %d blokova %d transakcija</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">NovÄanik već Å¡ifriran.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Unesite novu lozinku za pristup lisnici.
-Molimo koristite lozinku s 10 ili viÅ¡e nasumiÄnih znakova, ili osam ili viÅ¡e rijeÄi.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Pogreška: upisana lozinka prekratka.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">UPOZORENJE: Eko šifrirate svoju lisnicu i izgubite lozinku, izgubit ćete SVE VAŠE BITCOINE!
-Da li ste sigurni da želite šifrirati vašu lisnicu?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Molimo ponovno unesite novu lozinku za lisnicu.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Greška: ponuđene lozinke nisu iste.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Å ifriranje lisnice nije uspjelo.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Lisnica je Å¡ifrirana.
-Ne zaboravite da Å¡ifriranje lisnice ne može potpuno zaÅ¡tititi VaÅ¡e bitcoine od kraÄ‘e od strane trojanskih konja i sliÄnih programa.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Lisnica nije Å¡ifrirana, molimo najprije ju Å¡ifrirajte.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Unesite novu lozinku za lisnicu.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Ponovno unesite novu lozinku za lisnicu.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Šifra za lisnicu uspješno je promjenjena.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Nova adresa za primanje</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Trebali bi koristiti novu adresu za svaku uplatu koju primite.
-
-Oznaka</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Status:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, još nije bio uspješno emitiran</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, emitiran kroz %d nod</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, emitiran kroz %d nodova</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Datum:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Izvor:&lt;/b&gt; Generiran&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Adresa pošiljatelja::&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">nepoznato</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Adresa primatelja::&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete">(tvoje, oznaka:</translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete">(tvoje)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Uplata:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s stasava za %d dodatnih blokova)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(Nije prihvaćeno)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Debitna:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Trošak transakcije:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Neto iznos:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Poruka:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Komentar:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Generirani novÄići moraju priÄekati nastanak 120 blokova prije nego Å¡to ih je moguće potroÅ¡iti. Kad ste generirali taj blok, on je bio emitiran u mrežu kako bi bio dodan postojećim lancima blokova. Ako ne uspije biti dodan, njegov status bit će promijenjen u &quot;nije prihvatljiv&quot; i on neće biti potroÅ¡iv. S vremena na vrijeme tako neÅ¡to se može desiti ako neki drugi nod približno istovremeno generira blok.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Program može pisati u autostart/bitcoin.desktop datoteku</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Glavno</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Pokreni Bitcoin kod pokretanja sustava</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimiziraj na akciju zatvaranja</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">verzija %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Greška u iznosu </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Pošalji novac</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Iznos je veći od dostupnog novca </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Ukupni iznos veći je od Vašeg salda kad je </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> troÅ¡ak transakcije ukljuÄen </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Plaćanje je poslano </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Slanje...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Nevaljala adresa </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Å aljem %s prema %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">OTKAZANO</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Otkazano</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Transfer otkazan</translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Pogreška:</translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Nedovoljna sredstva</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Spajanje...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Ne mogu se spojiti</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Zahtjev za javnim kljuÄem...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Primljeni javni kljuÄ...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Primatelj ne prihvaća transakcije poslane sa IP adrese</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Prijenos nije prihvaćen</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Dobiven neispravan odgovor</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Stvaranje transakcije...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Ova transakcija zahtijeva naknadu od najmanje %s zbog svoje koliÄine, složenosti, ili koriÅ¡tenja nedavno primljenih sredstava</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Stvaranje transakcije nije uspjelo</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transakcija prekinuta</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Izgubljena veza, transakcija otkazana</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Slanje plaćanja...</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 type="obsolete">Transakcija je odbijena. To se može dogoditi ako se dio novca u novÄaniku već potroÅ¡io, kao Å¡to bi bilo da se koristi kopija wallet.dat datoteke i novac se potroÅ¡io na kopiji, ali nije oznaÄen kao potroÅ¡en ovdje.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">ÄŒekanje na potvrdu...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Uplata je izvršena, ali primatelj nije bio u mogućnosti to potvrditi.
-Transakcija je evidentirana i stavit će se na raÄun primatelja,
-ali komentar će biti prazan.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Plaćanje je poslano, ali primljen je nevažeći odgovor</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Plaćanje završeno</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Ime</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adresa</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Oznaka</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin adresa</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Ovo je jedna od vaših adresa za primanje uplata i ne može se upisati u adresar.</translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Izmjeni adresu</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Izmjeni oznaku adrese</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Dodaj adresu</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Stvaranje</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (nije povezan)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Otvori Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">Pošalji &amp;Bitcoinse</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;pcije...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">&amp;Izlaz</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Program se srušio te će prekinuti.</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Upozorenje: Molimo provjerite jesu li datum i vrijeme na vaÅ¡em raÄunalu toÄni. Ako vaÅ¡ sat ide krivo, Bitcoin neće raditi ispravno.</translation>
@@ -2492,16 +1969,4 @@ ali komentar će biti prazan.</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts
index 39517a8fa8..7a66fa6c10 100644
--- a/src/qt/locale/bitcoin_hu.ts
+++ b/src/qt/locale/bitcoin_hu.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="hu">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="hu" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,27 +21,7 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Szerzői jog © 2009-2011 Bitcoin Developers
-
-Ez egy kísérleti program.
-MIT/X11 szoftverlicenc alatt kiadva, lásd a mellékelt fájlt license.txt vagy http://www.opensource.org/licenses/mit-license.php.
-
-Ez a termék az OpenSSL Project által lett kifejlesztve az OpenSSL Toolkit (http://www.openssl.org/) és kriptográfiai szoftvertben való felhasználásra, írta Eric Young (eay@cryptsoft.com) és UPnP szoftver, írta Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Szerzői jog © 2009-2011 Bitcoin Developers
-
-Ez egy kísérleti program.
-MIT/X11 szoftverlicenc alatt kiadva, lásd a mellékelt fájlt license.txt vagy http://www.opensource.org/licenses/mit-license.php.
-
-Ez a termék az OpenSSL Project által lett kifejlesztve az OpenSSL Toolkit (http://www.openssl.org/) és kriptográfiai szoftvertben való felhasználásra, írta Eric Young (eay@cryptsoft.com) és UPnP szoftver, írta Thomas Bernard.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -86,17 +64,17 @@ Ez a termék az OpenSSL Project által lett kifejlesztve az OpenSSL Toolkit (htt
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -109,42 +87,42 @@ Ez a termék az OpenSSL Project által lett kifejlesztve az OpenSSL Toolkit (htt
<translation>&amp;Törlés</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Cím másolása</translation>
+ <translation>Cím másolása</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Címke másolása</translation>
+ <translation>Címke másolása</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Címjegyzék adatainak exportálása</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Vesszővel elválasztott fájl (*. csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Hiba exportálás közben</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>%1 nevű fájl nem írható.</translation>
</message>
@@ -256,17 +234,13 @@ Biztosan kódolni akarod a tárcát?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Ne feledd, hogy a tárca titkosítása sem nyújt teljes védelmet az adathalász programok fertőzésével szemben.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -313,314 +287,319 @@ Biztosan kódolni akarod a tárcát?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin-tárca</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Szinkronizálás a hálózattal...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Blokklánc-szinkronizálás folyamatban</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Ãttekintés</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Tárca általános áttekintése</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Tranzakciók</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Tranzakciótörténet megtekintése</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>Cím&amp;jegyzék</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Tárolt címek és címkék listájának szerkesztése</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>Érmék &amp;fogadása</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Kiizetést fogadó címek listája</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>Érmék &amp;küldése</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Érmék küldése megadott címre</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Kilépés</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Kilépés</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;A %1-ról</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Információk a Bitcoinról</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Opciók...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Bitcoin konfigurációs opciók</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>A &amp;Bitcoin megnyitása</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>A Bitcoin-ablak mutatása</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Exportálás...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Jelenlegi nézet exportálása fájlba</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>Tárca &amp;kódolása</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Tárca kódolása vagy dekódolása</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>Jelszó &amp;megváltoztatása</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Tárcakódoló jelszó megváltoztatása</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Fájl</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Beállítások</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Súgó</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Fül eszköztár</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Parancsok eszköztár</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[teszthálózat]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktív kapcsolat a Bitcoin-hálózattal</numerusform>
- </translation>
+ <translation><numerusform>%n aktív kapcsolat a Bitcoin-hálózattal</numerusform><numerusform>%n aktív kapcsolat a Bitcoin-hálózattal</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>%1 blokk letöltve a tranzakciótörténet %2 blokkjából.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>%1 blokk letöltve a tranzakciótörténetből.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n másodperccel ezelőtt</numerusform>
- </translation>
+ <translation><numerusform>%n másodperccel ezelőtt</numerusform><numerusform>%n másodperccel ezelőtt</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n perccel ezelőtt</numerusform>
- </translation>
+ <translation><numerusform>%n perccel ezelőtt</numerusform><numerusform>%n perccel ezelőtt</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n órával ezelőtt</numerusform>
- </translation>
+ <translation><numerusform>%n órával ezelőtt</numerusform><numerusform>%n órával ezelőtt</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n nappal ezelőtt</numerusform>
- </translation>
+ <translation><numerusform>%n nappal ezelőtt</numerusform><numerusform>%n nappal ezelőtt</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Naprakész</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Frissítés...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Az utolsóként kapott blokk generálva: %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Ez a tranzakció túllépi a mérethatárt, de %1 tranzakciós díj ellenében így is elküldheted. Ezt a plusz összeget a tranzakcióidat feldolgozó csomópontok kapják, így magát a hálózatot támogatod vele. Hajlandó vagy megfizetni a díjat?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Küldés...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Tranzakció elküldve.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Beérkező tranzakció</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Dátum: %1
-Összeg: %2
-Típus: %3
-Cím: %4
-
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Dátum: %1
+ <translation>Dátum: %1
Összeg: %2
Típus: %3
Cím: %4
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Tárca &lt;b&gt;kódolva&lt;/b&gt; és jelenleg &lt;b&gt;nyitva&lt;/b&gt;.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Tárca &lt;b&gt;kódolva&lt;/b&gt; és jelenleg &lt;b&gt;zárva&lt;/b&gt;.</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -783,7 +762,7 @@ Cím: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Opcionális, kB-onkénti tranzakciós díj a tranzakcióid minél gyorsabb feldolgozásának elősegítésére. A legtöbb tranzakció 1 kB-os. 0,01 BTC ajánlott.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -793,7 +772,7 @@ Cím: %4
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Opcionális, kB-onkénti tranzakciós díj a tranzakcióid minél gyorsabb feldolgozásának elősegítésére. A legtöbb tranzakció 1 kB-os. 0,01 BTC ajánlott.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -801,89 +780,89 @@ Cím: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Címzett címe (pl.: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L )</translation>
+ <translation>Címzett címe (pl.: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L )</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Válassz egy címet a címjegyzékből</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Cím beillesztése a vágólapról</translation>
+ <translation>Cím beillesztése a vágólapról</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">A kiválasztott cím másolása a vágólapra</translation>
+ <translation>A kiválasztott cím másolása a vágólapra</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Másolás a vágólapra</translation>
+ <translation>&amp;Másolás a vágólapra</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -946,7 +925,7 @@ Cím: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -980,42 +959,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Párbeszéd</translation>
+ <translation>Párbeszéd</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Ãœzenet:</translation>
+ <translation>Ãœzenet:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1045,7 +1034,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1326,7 +1315,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1372,9 +1361,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>%n blokkra megnyitva</numerusform>
- </translation>
+ <translation><numerusform>%n blokkra megnyitva</numerusform><numerusform>%n blokkra megnyitva</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1399,9 +1386,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>%n blokk múlva lesz elérhető a bányászott egyenleg.</numerusform>
- </translation>
+ <translation><numerusform>%n blokk múlva lesz elérhető a bányászott egyenleg.</numerusform><numerusform>%n blokk múlva lesz elérhető a bányászott egyenleg.</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1421,11 +1406,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Erről az IP-címről</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1433,10 +1414,6 @@ p, li { white-space: pre-wrap; }
<translation>Erre a címre</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Erre az IP-címre:</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Magadnak kifizetve</translation>
@@ -1480,163 +1457,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Mind</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Mai</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Ezen a héten</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Ebben a hónapban</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Múlt hónapban</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Ebben az évben</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Tartomány ...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Erre a címre</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Erre a címre</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Magadnak</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Kibányászva</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Más</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Ãrd be a keresendÅ‘ címet vagy címkét</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Minimális összeg</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Cím másolása</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Címke másolása</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Címke szerkesztése</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Részletek...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Tranzakció adatainak exportálása</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Vesszővel elválasztott fájl (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Megerősítve</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Dátum</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Típus</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Címke</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Cím</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Összeg</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>Azonosító</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Hiba lépett fel exportálás közben</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>%1 fájlba való kiírás sikertelen.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Tartomány:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>meddig</translation>
</message>
@@ -1644,7 +1621,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Küldés ...</translation>
</message>
@@ -1742,12 +1719,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1770,27 +1747,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1807,8 +1784,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>kB-onként felajánlandó díj az általad küldött tranzakciókhoz
-</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1831,22 +1807,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1941,37 +1917,32 @@ SSL-opciók: (lásd a Bitcoin Wiki SSL-beállítási instrukcióit)
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Hiba az addr.dat betöltése közben
-</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1979,31 +1950,11 @@ SSL-opciók: (lásd a Bitcoin Wiki SSL-beállítási instrukcióit)
<translation>Blokkindex betöltése...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Hiba a blkindex.dat betöltése közben
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Tárca betöltése...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Hiba a wallet.dat betöltése közben: meghibásodott tárca
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Hiba a wallet.dat betöltése közben: ehhez a tárcához újabb verziójú Bitcoin-kliens szükséges
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Hiba a wallet.dat betöltése közben
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Újraszkennelés...</translation>
@@ -2044,472 +1995,6 @@ SSL-opciók: (lásd a Bitcoin Wiki SSL-beállítási instrukcióit)
<translation>A %d port nem elérhető ezen a gépen. A Bitcoin valószínűleg fut már.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Ez a tranzakció túllépi a mérethatárt, de %s tranzakciós díj ellenében így is elküldheted. Ezt a plusz összeget a tranzakcióidat feldolgozó csomópontok kapják, így magát a hálózatot támogatod vele. Hajlandó vagy megfizetni a díjat?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Add meg a tárca jelenlegi jelszavát.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Jelszó:</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Add meg a tárca jelenlegi dekódoló jelszavát.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">A megadott tárca-dekódoló jelszó helytelen.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Ãllapot</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Dátum</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Leírás</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Terhelés</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Jóváírás</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">%d blokkra megnyitva</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">%s-ig megnyitva</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/offline?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/megerősítetlen</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d megerősítés</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Legenerálva</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Legenerálva (%s érett %d blokkból)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Legenerálva - Figyelem: Ezt a blokkot egyetlen másik csomópont sem kapta meg, így valószínűleg nem lesz elfogadva!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Legenerálva (elutasítva)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Küldő: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Erre a címre: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Magadnak kifizetve</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Címzett: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Generálás</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(nincs kapcsolat)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d kapcsolat %d blokk %d tranzakció</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">A tárca már kódolt.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Add meg a tárca új jelszavát.
-Használj 10 vagy több véletlenszerű karaktert, vagy nyolc vagy több szót.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Hiba: a megadott jelszó túl rövid.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">FIGYELEM: Ha lekódolod a tárcátm és elveszíted a jelszavad, úgy AZ ÖSSZES BITCOINODAT IS EL FOGOD VESZÃTENI!
-Valóban szeretnéd lekódolni a tárcádat?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Add meg az új jelszavadat a tárcádhoz.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Hiba: a megadott jelszavak nem egyeznek.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Tárcakódolás sikertelen.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Tárca lekódolva.
-Ne feledd, hogy a gépedet megfertőző ártalmas programokkal szemben a tárcakódolás sem nyújt teljes védelmet.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">A tárca még nincs lekódolva. Előbb kódold le.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Add meg a tárca új jelszavát.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Add meg újra a tárca jelszavát.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Tárca jelszava megváltoztatva.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Új fogadó cím.</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Érdemes minden fizetést új címmel fogadnod.
-
-Címke</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Ãllapot&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, még nem sikerült elküldeni.</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, elküldve %d csomóponton keresztül</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, elküldve %d csomóponton keresztül</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Dátum:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Forrás:&lt;/b&gt; Legenerálva&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Küldő:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">ismeretlen</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Címzett:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (tiéd, címke: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (tiéd)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Jóváírás:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s, %d blokk múlva készül el)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(elutasítva)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Terhelés:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Tranzakciós díj:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Nettó összeg:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Ãœzenet:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Megjegyzés:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">A frissen generált érméket csak 120 blokkal később tudod elkölteni. Ez a blokk nyomban szétküldésre került a hálózatba, amint legeneráltad, hogy hozzáadhassák a blokklánchoz. Ha nem kerül be a láncba, úgy az állapota &quot;elutasítva&quot;-ra módosul, és nem költheted el az érméket. Ez akkor következhet be időnként, ha egy másik csomópont mindössze néhány másodperc különbséggel generált le egy blokkot a tiédhez képest.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Az autostart/bitcoin.desktop fájl nem írható.</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">FÅ‘</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">A Bitcoin &amp;indítása a rendszer indulásakor</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Kicsinyítés záráskor</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">%s verzió</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Hiba az összegben </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Érmék küldése</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Nincs ennyi bitcoinod. </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Az összeg és a tranzakciós díj együtt </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> meghaladja az egyenlegedet. </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Elküldve. </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Küldés...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Érvénytelen cím </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">%s küldése ide: %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">MEGSZAKÃTVA</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Megszakítva</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Ãtutalás megszakítva </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Hiba: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Nincs elég bitcoinod.</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Csatlakozás...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Csatlakozás sikertelen.</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Nyilvános kulcs kérése...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Nyilvános kulcs fogadva...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">A címzett nem fogad IP-címre küldött tranzakciókat.</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Az átutalást elutasították.</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Érvénytelen válasz</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Tranzakció létrehozása...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Ehhez a tranzakcióhoz legalább %s díj szükséges az összege, az összetettsége vagy frissen kapott bitcoinok használata miatt.</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Tranzakció létrehozása sikertelen.</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Tranzakció megszakítva.</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Megszakadt a kapcsolat, tranzakció megszakítva.</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Küldés...</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 type="obsolete">A tranzakciót elutasították. Ezt az okozhatja, ha már elköltöttél valamennyi érmét a tárcádból - például ha a wallet.dat-od egy másolatát használtad, és így az elköltés csak abban lett jelölve, de itt nem.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Várakozás megerősítésre...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">A bitcoinok el lettek küldve, de a címzett nem tudta ellenőrizni.
-A tranzakció feljegyzésre került és jóvá lesz írva a címzettnek,
-de a megjegyzés-információ üres lesz.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">A bitcoinok el lettek küldve, de érvénytelen válasz érkezett a küldésre.</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Sikeresen elküldve.</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Név</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Cím</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Címke</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin-cím</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Ez az egyik saját fogadó címed, ezért nem jegyezhető be a címtárba. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Cím szerkesztése</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Cím címkéjének szerkesztése</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Cím hozzáadása</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - generálás</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (nincs kapcsolat)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">Bitcoin megnyitása</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">Küldés</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;pciók...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">&amp;Kilépés</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">A program összeomlott és kikapcsol. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Figyelem: Ellenőrizd, hogy helyesen van-e beállítva a gépeden a dátum és az idő. A Bitcoin nem fog megfelelően működni, ha rosszul van beállítvaaz órád.</translation>
@@ -2520,16 +2005,4 @@ de a megjegyzés-információ üres lesz.</translation>
<translation>béta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts
index 334355be6f..98dc47e5ed 100644
--- a/src/qt/locale/bitcoin_it.ts
+++ b/src/qt/locale/bitcoin_it.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="it">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="it" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin Developers
+ <translation>Copyright © 2009-2012 Bitcoin Developers
Questo è un software sperimentale.
-Distribuito sotto la licenza software MIT/X11, guarda il file license.txt incluso oppure su http://www.opensource.org/licenses/mit-license.php.
+Distribuito sotto la licenza software MIT/X11, vedi il file license.txt incluso oppure su http://www.opensource.org/licenses/mit-license.php.
-Questo prodotto include software sviluppato dal progetto OpenSSL per l&amp;apos;uso del Toolkit OpenSSL (http://www.openssl.org/), software crittografico scritto da Eric Young (eay@cryptsoft.com) e software UPnP scritto da Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin Developers
-
-Questo è un software sperimentale.
-
-Distribuito sotto la licenza software MIT/X11, guarda il file license.txt incluso oppure su http://www.opensource.org/licenses/mit-license.php.
-
-Questo prodotto include software sviluppato dal progetto OpenSSL per l&amp;apos;uso del Toolkit OpenSSL (http://www.openssl.org/), software crittografico scritto da Eric Young (eay@cryptsoft.com) e software UPnP scritto da Thomas Bernard.</translation>
+Questo prodotto include software sviluppato dal progetto OpenSSL per l&apos;uso del Toolkit OpenSSL (http://www.openssl.org/), software crittografico scritto da Eric Young (eay@cryptsoft.com) e software UPnP scritto da Thomas Bernard.</translation>
</message>
</context>
<context>
@@ -88,17 +70,17 @@ Questo prodotto include software sviluppato dal progetto OpenSSL per l&amp;apos;
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Mostra il codice &amp;QR</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Firma un messaggio per dimostrare di possedere questo indirizzo</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Firma il messaggio</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ Questo prodotto include software sviluppato dal progetto OpenSSL per l&amp;apos;
<translation>&amp;Cancella</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Copia l&apos;indirizzo</translation>
+ <translation>Copia l&apos;indirizzo</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Copia l&apos;etichetta</translation>
+ <translation>Copia l&apos;etichetta</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Modifica</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Cancella</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Esporta gli indirizzi della rubrica</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Testo CSV (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Errore nell&apos;esportazione</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Impossibile scrivere sul file %1.</translation>
</message>
@@ -258,17 +240,13 @@ Si è sicuri di voler cifrare il portamonete?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin verrà ora chiuso per finire il processo di crittazione. Ricorda che criptare il tuo portamonete non può fornire una protezione totale contro furti causati da malware che dovessero infettare il tuo computer.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Ricorda che la cifratura del portamonete non protegge del tutto i tuoi bitcoin dal furto da parte di malware che infettasse il tuo computer.</translation>
+ <translation>Attenzione: tasto Blocco maiuscole attivo.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,305 +293,284 @@ Si è sicuri di voler cifrare il portamonete?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Portamonete di bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Sto sincronizzando con la rete...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>sincronizzazione della catena di blocchi in corso</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Sintesi</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Mostra lo stato generale del portamonete</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transazioni</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Cerca nelle transazioni</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Rubrica</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Modifica la lista degli indirizzi salvati e delle etichette</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Ricevi monete</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Mostra la lista di indirizzi su cui ricevere pagamenti</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Invia monete</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Invia monete ad un indirizzo bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>Firma il &amp;messaggio</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Dimostra di controllare un indirizzo</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Esci</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Chiudi applicazione</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;Informazioni su %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Mostra informazioni su Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Informazioni su &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Mostra informazioni su Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Opzioni...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Modifica configurazione opzioni per bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Apri &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Mostra la finestra Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Esporta...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Esporta la visualizzazione corrente su file</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Cifra il portamonete</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Cifra o decifra il portamonete</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Cambia la passphrase</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Cambia la passphrase per la cifratura del portamonete</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;File</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Impostazioni</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Aiuto</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Barra degli strumenti &quot;Tabs&quot;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Barra degli strumenti &quot;Azioni&quot;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n connessione attiva alla rete Bitcoin</numerusform>
- <numerusform>%n connessioni attive alla rete Bitcoin</numerusform>
- </translation>
+ <translation><numerusform>%n connessione attiva alla rete Bitcoin</numerusform><numerusform>%n connessioni attive alla rete Bitcoin</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Scaricati %1 dei %2 blocchi dello storico transazioni.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Scaricati %1 blocchi dello storico transazioni.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n secondo fa</numerusform>
- <numerusform>%n secondi fa</numerusform>
- </translation>
+ <translation><numerusform>%n secondo fa</numerusform><numerusform>%n secondi fa</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n minuto fa</numerusform>
- <numerusform>%n minuti fa</numerusform>
- </translation>
+ <translation><numerusform>%n minuto fa</numerusform><numerusform>%n minuti fa</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n ora fa</numerusform>
- <numerusform>%n ore fa</numerusform>
- </translation>
+ <translation><numerusform>%n ora fa</numerusform><numerusform>%n ore fa</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n giorno fa</numerusform>
- <numerusform>%n giorni fa</numerusform>
- </translation>
+ <translation><numerusform>%n giorno fa</numerusform><numerusform>%n giorni fa</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Aggiornato</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>In aggiornamento...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>L&apos;ultimo blocco ricevuto è stato generato %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Questa transazione è superiore al limite di dimensione. È comunque possibile inviarla con una commissione di %1, che va ai nodi che processano la tua transazione e contribuisce a sostenere la rete. Vuoi pagare la commissione?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Invio...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Transazione inviata</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Transazione ricevuta</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Data: %1
-Quantità: %2
-Tipo: %3
-Indirizzo: %4
-
-
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Data: %1
+ <translation>Data: %1
Quantità: %2
Tipo: %3
Indirizzo: %4
@@ -621,15 +578,35 @@ Indirizzo: %4
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Il portamonete è &lt;b&gt;cifrato&lt;/b&gt; e attualmente &lt;b&gt;sbloccato&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Il portamonete è &lt;b&gt;cifrato&lt;/b&gt; e attualmente &lt;b&gt;bloccato&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -792,7 +769,7 @@ Indirizzo: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Commissione di transazione per ogni kB; è opzionale e contribuisce ad assicurare che le transazioni siano elaborate velocemente. La maggior parte delle transazioni è 1 kB. Commissione raccomandata 0,01.</translation>
+ <translation>Commissione di transazione per kB; è opzionale e contribuisce ad assicurare che le transazioni siano elaborate velocemente. Le transazioni sono per la maggior parte da 1 kB. Commissione raccomandata 0,01.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -802,7 +779,7 @@ Indirizzo: %4
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Commissione di transazione per ogni kB; è opzionale e contribuisce ad assicurare che le transazioni siano elaborate velocemente. La maggior parte delle transazioni è 1 kB. Commissione raccomandata 0,01.</translation>
+ <translation>Commissione di transazione per kB; è opzionale e contribuisce ad assicurare che le transazioni siano elaborate velocemente. Le transazioni sono per la maggior parte da 1 kB. Commissione raccomandata 0,01.</translation>
</message>
</context>
<context>
@@ -810,89 +787,89 @@ Indirizzo: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Messaggio</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">L&apos;indirizzo del beneficiario cui inviare il pagamento (ad esempio 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>L&apos;indirizzo del beneficiario cui inviare il pagamento (ad esempio 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Scegli l&apos;indirizzo dalla rubrica</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Incollare l&apos;indirizzo dagli appunti</translation>
+ <translation>Incollare l&apos;indirizzo dagli appunti</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Inserisci qui il messaggio che vuoi firmare</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Clicca &quot;Firma il messaggio&quot; per ottenere la firma</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Firma un messaggio per dimostrare di possedere questo indirizzo</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Firma il messaggio</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Copia l&apos;indirizzo attualmente selezionato nella clipboard</translation>
+ <translation>Copia l&apos;indirizzo attualmente selezionato nella clipboard</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Copia nella clipboard</translation>
+ <translation>&amp;Copia nella clipboard</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Errore nel firmare</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 non è un indirizzo valido.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>La chiave privata per %1 non è disponibile.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Firma non riuscita</translation>
</message>
</context>
<context>
@@ -955,7 +932,7 @@ Indirizzo: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;âŽ
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;âŽ
@@ -989,42 +966,52 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialogo</translation>
+ <translation>Dialogo</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Codice QR</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Richiedi pagamento</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Importo:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Etichetta:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Messaggio:</translation>
+ <translation>Messaggio:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Salva come...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1054,7 +1041,7 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Rimuovi tutti i campi della transazione</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1334,7 +1321,7 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>ID della transazione:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1380,10 +1367,7 @@ p, li { white-space: pre-wrap; }âŽ
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Aperto per %n blocco</numerusform>
- <numerusform>Aperto per %n blocchi</numerusform>
- </translation>
+ <translation><numerusform>Aperto per %n blocco</numerusform><numerusform>Aperto per %n blocchi</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1408,10 +1392,7 @@ p, li { white-space: pre-wrap; }âŽ
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Il saldo generato sarà disponibile tra %n altro blocco</numerusform>
- <numerusform>Il saldo generato sarà disponibile tra %n altri blocchi</numerusform>
- </translation>
+ <translation><numerusform>Il saldo generato sarà disponibile tra %n altro blocco</numerusform><numerusform>Il saldo generato sarà disponibile tra %n altri blocchi</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1431,11 +1412,7 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Ricevuto da IP</translation>
+ <translation>Ricevuto da</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1443,10 +1420,6 @@ p, li { white-space: pre-wrap; }âŽ
<translation>Spedito a</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Inviato a IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Pagamento a te stesso</translation>
@@ -1490,163 +1463,163 @@ p, li { white-space: pre-wrap; }âŽ
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Tutti</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Oggi</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Questa settimana</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Questo mese</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Il mese scorso</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Quest&apos;anno</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Intervallo...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Ricevuto tramite</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Spedito a</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>A te</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Ottenuto dal mining</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Altro</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Inserisci un indirizzo o un&apos;etichetta da cercare</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Importo minimo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Copia l&apos;indirizzo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Copia l&apos;etichetta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Copia l&apos;importo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Modifica l&apos;etichetta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Mostra i dettagli...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Esporta i dati della transazione</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Testo CSV (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Confermato</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Data</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Tipo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Etichetta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Indirizzo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Importo</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Errore nell&apos;esportazione</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Impossibile scrivere sul file %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Intervallo:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>a</translation>
</message>
@@ -1654,7 +1627,7 @@ p, li { white-space: pre-wrap; }âŽ
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Invio...</translation>
</message>
@@ -1752,12 +1725,12 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Ascolta le connessioni JSON-RPC su &lt;porta&gt; (default: 8333 o testnet: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Mantieni al massimo &lt;n&gt; connessioni ai peer (default: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1780,27 +1753,27 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Non avviare la lista dei peer usando il DNS</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Soglia di disconnessione dei peer di cattiva qualità (default: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Numero di secondi di sospensione che i peer di cattiva qualità devono trascorrere prima di riconnettersi (default: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Buffer di ricezione massimo per connessione, &lt;n&gt;*1000 byte (default: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Buffer di invio massimo per connessione, &lt;n&gt;*1000 byte (default: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1817,8 +1790,7 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>Commissione al kB da aggiungere alle transazioni in uscita
-</translation>
+ <translation>Commissione per kB da aggiungere alle transazioni in uscita</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1841,22 +1813,22 @@ p, li { white-space: pre-wrap; }âŽ
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Produci informazioni extra utili al debug</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Anteponi all&apos;output di debug una marca temporale</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Invia le informazioni di trace/debug alla console invece che al file debug.log</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Invia le informazioni di trace/debug al debugger</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1951,37 +1923,32 @@ Opzioni SSL: (vedi il wiki di Bitcoin per le istruzioni di configurazione SSL)
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Errore caricamento addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Errore caricamento blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Errore caricamento wallet.dat: Wallet corrotto</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Errore caricamento wallet.dat: il wallet richiede una versione nuova di Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Il portamonete deve essere riscritto: riavviare Bitcoin per completare</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Errore nel caricamento di addr.dat
-</translation>
+ <translation>Errore caricamento wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1989,31 +1956,11 @@ Opzioni SSL: (vedi il wiki di Bitcoin per le istruzioni di configurazione SSL)
<translation>Caricamento dell&apos;indice del blocco...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Errore nel caricamento di blkindex.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Caricamento portamonete...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Errore nel caricamento di wallet.dat: il portamonete è danneggiato
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Errore nel caricamento di wallet.dat: il portamonete richiede una versione più recente di Bitcoin
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Errore nel caricamento di wallet.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Ripetere la scansione...</translation>
@@ -2054,471 +2001,6 @@ Opzioni SSL: (vedi il wiki di Bitcoin per le istruzioni di configurazione SSL)
<translation>Impossibile collegarsi alla porta %d su questo computer. Probabilmente Bitcoin è già in esecuzione.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">La dimensione della transazione è fuori limite. Puoi ancora spedirla con una commissione di %s, che andrà ai nodi che processano la tua transazione e aiuterà a supportare il network. Vuoi pagare la commissione?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Inserisci la frase d&apos;ordine attuale per il portamonete.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Passphrase</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Si prega di fornire la passphrase per la decifrazione del portamonete attuale.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">La passphrase inserita per la decifrazione del portamonete è errata.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Stato</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Data</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Descrizione</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debito</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Credito</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Aperto per %d blocchi</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Aperto fino a %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/offline?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/non confermati</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d conferme</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Generato</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Generato (%s matura in altri %d blocchi)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Generato - Attenzione: questo blocco non è stato ricevuto da altri nodi e probabilmente non sarà accettato!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Generato (non accettato)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Da: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Ricevuto su: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Pagamento a te stesso</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Per: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Generazione</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(non collegato)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d connessioni %d blocchi %d transazioni</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Portamonete già codificato.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Inserisci una nuova passphrase per il portamonete.
-Si prega di utilizzare una frase di 10 o più caratteri casuali, o di almeno otto parole.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Errore: la passphrase è troppo breve.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">ATTENZIONE: se si cifra il portamonete e si perde la propria passphrase, si perdono tutti i BITCOIN! Sei sicuro di voler cifrare il portamonete?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Si prega di inserire ancora la nuova passphrase per il portamonete.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Errore: le passphrase fornite non coincidono.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Cifratura del portamonete fallita.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Portamonete cifrato.
-Ricorda che cifrare il portamonete non protegge completamente i bitcoin dal furto ad opera di malware che infettassero il computer.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Il portamonete non è cifrato, per piacere prima cifralo.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Inserisci la nuova passphrase per il portamonete.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Inserisci ancora la nuova passphrase per il portamonete.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Passphrase del portamonete cambiata.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Nuovo indirizzo di ricezione</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Si dovrebbe usare un nuovo indirizzo per ciascun pagamento che si riceve.
-
-Etichetta</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Stato:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, non è stato ancora trasmesso con successo</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, trasmesso attraverso %d nodo</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, trasmesso attraverso %d nodi</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Data:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Fonte:&lt;/b&gt; Generato&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Da:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">sconosciuto</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Per:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (vostro, etichetta: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> ( vostro)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Credito:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s matura in altri %d blocchi)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(non accettata)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Debito:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Commissione:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Importo netto:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Messaggio:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Commento:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Bisogna aspettare 120 blocchi prima di spendere i bitcoin generati. Quando hai generato questo blocco, è stato trasmesso al network per aggiungerlo alla catena dei blocchi. Se non entra nella catena, sarà modificato in &quot;non accettato&quot; e non risulterà spendibile. Questo potrebbe accadere a volte, quando un altro nodo genera un blocco entro pochi secondi da quando l&apos;hai generato tu.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Impossibile scrivere sul file autostart/bitcoin.desktop</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Principale</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Fai partire Bitcoin all&apos;avvio del sistema</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimizza alla chiusura del programma</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">versione %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Errore nell&apos;importo </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Spedisci Bitcoin</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">L&apos;importo supera la tua disponibilità </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">L&apos;importo supera la tua disponibilità se </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> si include la commissione di transazione </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Pagamento inviato </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Invio...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Indirizzo non valido </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Invio di %s a %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ANNULLATO</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Annullato</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Trasferimento annullato </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Errore: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Fondi insufficienti</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Collegamento...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Impossibile connettersi</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Richiesta chiave pubblica...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">chiave pubblica ricevuta...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Il destinatario non accetta transazioni effettuate dall&apos;indirizzo IP</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">L&apos;invio non è stato accettato</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Risposta non valida ricevuta</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Creazione della transazione...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Questa operazione richiede una commissione di transazione di almeno %s a causa del suo importo, della complessità, o per l&apos;utilizzo di fondi ricevuti recentemente</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Creazione transazione non riuscita</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transazione interrotta</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Persa la connessione, operazione annullata</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Invio del pagamento...</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 type="obsolete">La transazione è stata rifiutata. Ciò può accadere se alcuni dei bitcoin nel tuo portamonete erano stati già spesi, ad esempio se hai usato una copia del wallet.dat e i bitcoin sono stati spesi nella copia ma non nella versione corrente.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">In attesa di conferma...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Il pagamento è stato spedito ma il destinatario non è riuscito a verificarlo.
-La transazione è registrata e sarà trasferita al destinatario,
-ma le informazioni a commento saranno vuote.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Il pagamento è stato inviato, ma è stata ricevuta una risposta non valida</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Pagamento completato</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Nome</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Indirizzo</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Etichetta</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Indirizzo Bitcoin</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Questo è uno dei tuoi indirizzi per ricevere pagamenti e non può essere inserito nella rubrica. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Modifica indirizzo</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Modifica etichetta indirizzo</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Aggiungi indirizzo</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Generazione</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (non collegato)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Apri Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Invia Bitcoin</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;pzioni...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">&amp;Esci</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Il programma è andato in crash e si concluderà. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Attenzione: si prega di controllare che la data del computer e l&apos;ora siano corrette. Se il vostro orologio è sbagliato Bitcoin non funziona correttamente.</translation>
@@ -2529,16 +2011,4 @@ ma le informazioni a commento saranno vuote.</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts
new file mode 100644
index 0000000000..d733f1a725
--- /dev/null
+++ b/src/qt/locale/bitcoin_lt.ts
@@ -0,0 +1,1978 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="lt" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Apie BitcoinÄ…</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; versija</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation>Autorystės teisės© 2009-2012 Bitcoin Developers
+DÄ–MESIO: programa eksperimentinÄ—!
+
+Platinama pagal licenzijÄ… MIT/X11, papildomÄ… informacijÄ… rasite faile license.txt arba dokumente pagal nuorodÄ…: http://www.opensource.org/licenses/mit-license.php.
+
+Šiame produkte yra projekto OpenSSL (http://www.openssl.org/), Eriko Jango (eay@cryptsoft.com) parašyti kriptografinės funkcijos ir algoritmai ir UPnP darbui skirtos funkcijos parašytos Tomo Bernardo.
+ </translation>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Adresų knygelė</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation>Čia yra Jūsų adresai skirti mokėjimams gauti. Jūs galite skirtingiems žmonėms duoti skirtingus adresus. Tai Jums palengvins kontroliuoti mokėjimus bei padidins anonimiškumą.
+ </translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Tam, kad pakeisti ar redaguoti adresą arba žymę turite objektą dukart spragtelti pele.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Sukurti naujÄ… adresÄ…</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Naujas adresas...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Kopijuoti esamą adresą į mainų atmintį</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;C Kopijuoti į mainų atmintų</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation>Rodyti &amp;QR kodÄ…</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Registruotis žinute įrodanÄia, kad turite šį adresÄ…</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;S Registruotis žinute</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Pašalinti iš sąrašo pažymėtą adresą(gali būti pašalinti tiktai adresų knygelės įrašai).</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;D Pašalinti</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation>Copijuoti adresÄ…</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation>Kopijuoti žymę</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation>Redaguoti</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation>Pašalinti</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation>Eksportuoti adresų knygelės duomenis</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kableliais išskirtas failas (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation>Eksportavimo klaida</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation>Nepavyko įrašyti į failą %1.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation>Žymė</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation>Adresas</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation>(nėra žymės)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialogas</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation>Teksto žymė</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation>Įvesti slaptažodį</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation>Naujas slaptažodis</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation>Pakartoti naują slaptažodį</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation>Įveskite naują slaptažodį piniginei &lt;br/&gt; Prašome naudoti slaptažodį iš &lt;b&gt; 10 ar daugiau atsitiktinių simbolių &lt;/b&gt; arba &lt;b&gt; aštuonių ar daugiau žodžių &lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Užšifruoti piniginę</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Ši operacija reikalauja jūsų piniginės slaptažodžio jai atrakinti.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Atrakinti piniginÄ™</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Ši operacija reikalauja jūsų piniginės slaptažodžio jai iššifruoti.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>IÅ¡Å¡ifruoti piniginÄ™</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Pakeisti slaptažodį</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Įveskite seną ir naują piniginės slaptažodžius</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Patvirtinkite piniginės užšifravimą</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation>ĮSPĖJIMAS: Jei užšifruosite savo piniginę ir prarasite savo slaptažodį, Jūs &lt;b&gt; PRARASITE VISUS SAVO BITKOINUS, &lt;/b&gt;!
+Ar jūs tikrai norite užšifruoti savo piniginę?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation>Piniginė užšifruota</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation>Bitcoin dabar užsidarys Å¡ifravimo proceso pabaigai. Atminkite, kad piniginÄ—s Å¡ifravimas negali pilnai apsaugoti bitcoinų vagysÄių kai tinkle esanÄios kenkÄ—jiÅ¡kos programos patenka į jÅ«sų kompiuterį.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>ĮSPĖJIMAS: Įjungtos didžiosios raidės</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation>Nepavyko užšifruoti piniginę</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Dėl vidinės klaidos nepavyko užšifruoti piniginę.Piniginė neužšifruota.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Įvestas slaptažodis nesutampa</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation>Nepavyko atrakinti piniginÄ™</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation> Neteisingai įvestas slaptažodis piniginės iššifravimui</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation>Nepavyko iššifruoti piniginę</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation>Sėkmingai pakeistas piniginės slaptažodis</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitkoinų piniginė</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation>Sinchronizavimas su tinklu ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Vyksta blokų grandinės sinchronizavimas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;O Apžvalga</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation>Rodyti piniginės bendrą apžvalgą</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;T Sandoriai</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation>Apžvelgti sandorių istoriją</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Adresų knygelė</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Redaguoti išsaugotus adresus bei žymes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;R Gautos monetos</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Parodyti adresų sąraša mokėjimams gauti</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Siųsti monetas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Siųsti monetas bitkoinų adresu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation>Registruoti praneši&amp;mą</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation>Įrodyti, kad jūs valdyti adresą</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;x išėjimas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation>IÅ¡jungti programÄ…</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;Apie %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Rodyti informacijÄ… apie BitkoinÄ…</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation>Apie &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation>Rodyti informacijÄ… apie Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opcijos...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Keisti bitcoin konfigūracijos galimybes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Atidaryti &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Rodyti Bitcoin langÄ…</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Eksportas...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;E Užšifruoti piniginę</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Užšifruoti ar iššifruoti piniginę</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;C Pakeisti slaptažodį</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Pakeisti slaptažodį naudojamą piniginės užšifravimui</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation>&amp;Failas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation>Nu&amp;Statymai</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation>&amp;H Pagelba</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation>Tabs įrankių juosta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation>Veiksmų įrankių juosta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation>[testavimotinklas]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation><numerusform>%n Bitcoin tinklo aktyvus ryšys</numerusform><numerusform>%n Bitcoin tinklo aktyvūs ryšiai</numerusform><numerusform>%n Bitcoin tinklo aktyvūs ryšiai</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>Atsisiuntė %1 iš %2 sandorių istorijos blokų</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Atsisiuntė %1 iš %2 sandorių istorijos blokų</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation><numerusform>Prieš %n sekundę</numerusform><numerusform>Prieš %n sekundes</numerusform><numerusform>Prieš %n sekundžių</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation><numerusform>PrieÅ¡ %n minutÄ™</numerusform><numerusform>PrieÅ¡ %n minutes</numerusform><numerusform>PrieÅ¡ %n minutÄių</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation><numerusform>Prieš %n valandą</numerusform><numerusform>Prieš %n valandas</numerusform><numerusform>Prieš %n valandų</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation><numerusform>Prieš %n dieną</numerusform><numerusform>Prieš %n dienas</numerusform><numerusform>Prieš %n dienų</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation>Iki Å¡iol</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation>Gaudo...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Paskutinis gautas blokas buvo sukurtas %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation>Å is sandoris virÅ¡ija leistinÄ… dydį. JÅ«s galite įvykdyti jį papildomai sumokÄ—jÄ™ %1 mokesÄių, kurie bus iÅ¡siųsti tais paÄiais mazgais kuriais vyko sandoris ir padÄ—s palaikyti tinklÄ…. Ar jÅ«s norite apmokÄ—ti papildomÄ… mokestį?</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation>SiunÄiama...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation>Sandoris nusiųstas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation>Ateinantis sandoris</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Data: %1
+Suma: %2
+Tipas: %3
+Adresas: %4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>Piniginė &lt;b&gt;užšifruota&lt;/b&gt; ir šiuo metu &lt;b&gt;atrakinta&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>Piniginė &lt;b&gt;užšifruota&lt;/b&gt; ir šiuo metu &lt;b&gt;užrakinta&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;U vienetų rodyti sumas:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Rodomų ir siunÄiamų monetų kiekio matavimo vienetai</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation>Rodyti adresus sandorių sąraše </translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Redaguoti adresÄ…</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;L Žymė</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>Žymė yra susieta su šios adresų knygelęs turiniu</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Adresas</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation>Adresas yra susietas su Å¡ios adresų knygelÄ™s turiniu. Tai gali bÅ«ti keiÄiama tik siuntimo adresams.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Naujas gavimo adresas</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Naujas siuntimo adresas</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Taisyti gavimo adresÄ…</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Taisyti siuntimo adresÄ…</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Įvestas adresas &quot;%1&quot;yra adresų knygelėje</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>Įvestas adresas &quot;%1&quot;nėra galiojantis bitkoinų adresas</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Neįmanoma atrakinti piniginės</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Naujas raktas nesukurtas</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;S Paleisti Bitcoin programÄ… su window sistemos paleidimu</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Automatiškai paleisti Bitkoin programą kai yra įjungiamas kompiuteris</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;M sumažinti langÄ… bet ne užduoÄių juostÄ…</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Po programos lango sumažinimo rodyti tik programos ikoną.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Prievado struktūra naudojant &amp; UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation>Automatiškai atidaryti Bitcoin kliento maršrutizatoriaus prievadą. Tai veikia tik tada, kai jūsų maršrutizatorius palaiko UPnP ir ji įjungta.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>&amp;i Sumažinti uždarant</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation>Uždarant langą neuždaryti programos. Kai ši parinktis įjungta, programa bus uždaryta tik pasirinkus meniu komandą Baigti.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;C Jungtis per socks4 proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Jungtis į Bitkoin tinklą per socks4 proxy (pvz. jungiantis per Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>Proxy &amp;IP: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>IP adresas proxy (pvz. 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Prievadas: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Proxy prievadas (pvz. 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation>Neprivaloma sandorio mokestis už KB, kuris padeda įsitikinti, kad jūsų sandoriai tvarkomi greitai. Daugelis sandorių yra tik 1KB dydžio. Rekomenduojamas 0,01 mokestis.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>&amp;f Mokėti sandorio mokestį</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation>Neprivaloma sandorio mokestis už KB, kuris padeda įsitikinti, kad jūsų sandoriai tvarkomi greitai. Daugelis sandorių yra tik 1KB dydžio. Rekomenduojamas 0,01 mokestis.</translation>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation>Žinutė</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Nurodyti adresą mokėjimui siųsti (pvz. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation>Pasirinkite adresą iš adresų knygelės</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation>Įvesti adresą iš mainų atminties</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation>Ä®veskite praneÅ¡imÄ…, kurį norite pasiraÅ¡yti Äia</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation>Spragtelėkite &quot;Registruotis žinutę&quot; tam, kad gauti parašą</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Registruotis žinute įrodymuii, kad turite šį adresą</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;S Registravimosi žinutė</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Kopijuoti pasirinktą adresą į sistemos mainų atmintį</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>Kopijuoti į mainų atmintį</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation>Klaida pasirašant</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation>%1 tai negaliojantis adresas</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation>Privataus rakto %1 nÄ—ra</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation>Registravimas nepavyko</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Pagrindinis</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Ekranas</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Opcijos</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Forma</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Balansas</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Sandorių kiekis</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Nepatvirtinti:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation>0 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Naujausi sandoris&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Jūsų einamasis balansas</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation>IÅ¡ viso sandorių, įskaitant tuos kurie dar turi bÅ«ti patvirtinti, ir jie dar nÄ—ra įskaiÄiuotii į einamosios sÄ…skaitos balansÄ…</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Bandras sandorių kiekis piniginėje</translation>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation>Dialogas</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation>QR kodas</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation>Prašau išmokėti</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation>Suma:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation>BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation>Žymė:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation>Žinutė:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation>&amp;S išsaugoti kaip...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation>Siųsti monetas</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Siųsti keliems gavėjams vienu metu</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;A PridÄ—ti gavÄ—jÄ…</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Pašalinti visus sandorio laukus</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>IÅ¡trinti viskÄ…</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Balansas:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation>Patvirtinti siuntimo veiksmÄ…</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation>&amp;Siųsti</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation>Patvirtinti siuntimui monetas</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Ar esate įsitikinę, kad norite siųsti %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation>ir</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation>Negaliojantis gavÄ—jo adresas. Patikrinkite.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Apmokėjimo suma turi būti didesnė negu 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation>Suma viršija jūsų balansą</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation>Jei pridedame sandorio mokestį %1 bendra suma viršija jūsų balansą</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation>Rastas adreso dublikatas</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>KLAIDA:nepavyko sudaryti sandorio</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation>Klaida: sandoris buvo atmestas.Tai gali įvykti, jei kai kurios monetos iÅ¡ jÅ«sų piniginÄ—je jau buvo panaudotos, pvz. jei naudojote wallet.dat kopijÄ… ir monetos buvo iÅ¡leistos kopijoje, bet nepažymÄ—tos kaip skirtos iÅ¡leisti Äia.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Forma</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>Su&amp;ma:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>MokÄ—ti &amp;T gavÄ—jui:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation>Įveskite žymę šiam adresui kad galėtumėte įtraukti ją į adresų knygelę</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;L žymė:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Adresas mokÄ—jimo siuntimui (pvz. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Pasirinkite adresą iš adresų knygelės</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Įvesti adresą iš mainų atminties</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation>Pašalinti šitą gavėją</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Įveskite bitkoinų adresą (pvz. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation>Atidaryta %1 blokams</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation>Atidaryta iki %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation>%1/atjungtas?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/nepatvirtintas</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation>%1 patvirtinimai</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;BÅ«sena:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, transliavimas dar nebuvo sÄ—kmingas</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, transliuota per %1 mazgÄ…</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, transliuota per %1 mazgus</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Data:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Å altinis:&lt;/b&gt; Sukurta&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Nuo:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation>nežinomas</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Skirta:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation> (jūsų, žymė: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation> (jūsų)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Kreditas:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 apmokÄ—tinas %2 daugiau blokais)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation>(nepriimta)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Debitas:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Sandorio mokestis:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Neto suma:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation>Žinutė:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation>Komentaras:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation>Sandorio ID:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation>Išgautos monetos turi sulaukti 120 blokų, kol jos gali būti naudojamos. Kai sukūrėte šį bloką, jis buvo transliuojamas tinkle ir turėjo būti įtrauktas į blokų grandinę. Jei nepavyksta patekti į grandinę, bus pakeista į &quot;nepriėmė&quot;, o ne &quot;vartojamas&quot;. Tai kartais gali atsitikti, jei kitas mazgas per keletą sekundžių sukuria bloką po jūsų bloko.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Sandorio išsami informacija</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Šis langas sandorio detalų aprašymą</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation>Data</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation>Tipas</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation>Adresas</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation>Suma</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation><numerusform>Atidaryta %n blokui</numerusform><numerusform>Atidaryta %n blokams</numerusform><numerusform>Atidaryta %n blokų</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation>Atidaryta kol %n</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Atjungta (%1 patvirtinimai)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Nepatvirtintos (%1 iš %2 patvirtinimų)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Patvirtinta (%1 patvirtinimai)</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation><numerusform>Išgautas balansas bus pasiekiamas po %n bloko</numerusform><numerusform>Išgautas balansas bus pasiekiamas po %n blokų</numerusform><numerusform>Išgautas balansas bus pasiekiamas po %n blokų</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Šis blokas negautas nė vienu iš mazgų ir matomai nepriimtas</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation>IÅ¡gauta bet nepriimta</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation>Gauta su</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation>Gauta iš</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation>Siųsta </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation>MokÄ—jimas sau</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation>IÅ¡gauta</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation>nepasiekiama</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Sandorio bÅ«klÄ—. Užvedus pelÄ—s žymeklį ant Å¡ios srities matysite patvirtinimų skaiÄių.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Sandorio gavimo data ir laikas</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation>Sandorio tipas</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation>Sandorio paskirties adresas</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Suma pridÄ—ta ar iÅ¡skaiÄiuota iÅ¡ balanso</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation>Visi</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Å iandien</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Å iÄ… savaitÄ™</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Šį mėnesį</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Paskutinį mėnesį</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Å iais metais</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>GrupÄ—</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Gauta su</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Išsiųsta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Skirta sau</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>IÅ¡gauta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Kita</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>Įveskite adresą ar žymę į paiešką</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Minimali suma</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation>Kopijuoti adresÄ…</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation>Kopijuoti žymę</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation>Kopijuoti sumÄ…</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Taisyti žymę</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Parodyti išsamiai</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation>Sandorio duomenų eksportavimas</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kableliais atskirtų duomenų failas (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation>Patvirtintas</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation>Data</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation>Tipas</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Žymė</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Adresas</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation>Suma</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>Eksportavimo klaida</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation>Neįmanoma įrašyti į failą %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation>GrupÄ—:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation>skirta</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation>SiunÄiama</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation>Bitcoin versija</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation>Naudojimas:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation>Siųsti komandą serveriui arba bitcoind</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation>Komandų sąrašas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation>Suteikti pagalba komandai</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation>Opcijos:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation>Nurodyti konfigūracijos failą (pagal nutylėjimąt: bitcoin.conf)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation>Nurodyti pid failÄ… (pagal nutylÄ—jimÄ…: bitcoind.pid)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation>Sukurti monetas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation>Neišgavinėti monetų</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation>Pradžia sumažinta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation>Nustatyti duomenų direktoriją</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation>Nustatyti sujungimo trukmÄ™ (milisekundÄ—mis)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation>Prisijungti per socks4 proxy</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation>Leisti DNS paiešką sujungimui ir mazgo pridėjimui</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation>Sujungimo klausymas prijungÄiai &lt;port&gt; (pagal nutylÄ—jimÄ…: 8333 arba testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation>Palaikyti ne daugiau &lt;n&gt; jungÄių kolegoms (pagal nutylÄ—jimÄ…: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation>PridÄ—ti mazgÄ… prie sujungti su</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation>Prisijungti tik prie nurodyto mazgo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation>Nepriimti išorinio sujungimo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation>Neleisti kolegų sąrašo naudojant DNS</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation>Atjungimo dėl netinkamo kolegų elgesio riba (pagal nutylėjimą: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation>Sekundžių kiekis eikiamas palaikyti ryšį dėl lygiarangių nestabilumo (pagal nutylėjimą: 86.400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>Maksimalus buferis priėmimo sujungimui &lt;n&gt;*1000 bitų (pagal nutylėjimą: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>Maksimalus buferis siuntimo sujungimui &lt;n&gt;*1000 bitų (pagal nutylėjimą: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation>Nenaudoti UPnP klausymo prievado struktūros</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation>Bandymas naudoti UPnP struktūra klausymosi prievadui</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation> Ä®traukti mokestį už kB siunÄiamiems sandoriams</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation>Priimti komandinÄ™ eilutÄ™ ir JSON-RPC komandas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation>Dirbti fone kaip šešėlyje ir priimti komandas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation>Naudoti testavimo tinklÄ…</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation>IÅ¡Ä—jimo papildomas derinimo informacija</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation>Prideėti laiko žymę derinimo rezultatams</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation>Siųsti atsekimo/derinimo info į konsolę vietoj debug.log failo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation>Siųsti sekimo/derinimo info derintojui</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation>Vartotojo vardas JSON-RPC jungimuisi</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation>Slaptažodis JSON-RPC sujungimams</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation>Klausymas JSON-RPC sujungimui prijungÄiai &lt;port&gt; (pagal nutylÄ—jimÄ…: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation>Leisti JSON-RPC tik iš nurodytų IP adresų</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation>Siųsti komandÄ… mazgui dirbanÄiam &lt;ip&gt; (pagal nutylÄ—jimÄ…: 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation>Nustatyti rakto apimties dydį &lt;n&gt; (pagal nutylėjimą: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation>Ieškoti prarastų piniginės sandorių blokų grandinėje</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation>SSL opcijos (žr.e Bitcoin Wiki for SSL setup instructions)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation>Naudoti OpenSSL (https) jungimuisi JSON-RPC </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation>Serverio sertifikato failas (pagal nutylÄ—jimÄ…: server.cert)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation>Serverio privatus raktas (pagal nutylÄ—jimÄ…: server.pem)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation>Priimtini Å¡ifrai (pagal nutylÄ—jimÄ…: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation>Pagelbos žinutė</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Negali gauti duomenų katalogo %s rakto. Bitcoin tikriausiai jau veikia.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation>Užkraunami adresai...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation>addr.dat pakrovimo klaida</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation>blkindex.dat pakrovimo klaida</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation> wallet.dat pakrovimo klaida, wallet.dat sugadintas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation> wallet.dat pakrovimo klaida, wallet.dat reikalauja naujasnÄ—s Bitcoin versijos</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation>Piniginė turi būti prrašyta: įvykdymui perkraukite Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation> wallet.dat pakrovimo klaida</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation>Užkraunami blokų indeksai...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation>Užkraunama piniginė...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation>Peržiūra</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation>Pakrovimas baigtas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation>Neteisingas proxy adresas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Neteisinga suma -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Įspėjimas: -paytxfee yra nustatytas per didelis. Tai sandorio mokestis, kurį turėsite mokėti, jei siųsite sandorį.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Klaida: nepasileidžia CreateThread(StartNode) </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation>Įspėjimas: nepakanka vietos diske</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>Nepavyko susieti Å¡iame kompiuteryje prievado %d. Bitcoin tikriausiai jau veikia.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation>Įspėjimas: Patikrinkite, kad kompiuterio data ir laikas yra teisingi.Jei Jūsų laikrodis neteisingai nustatytas Bitcoin, veiks netinkamai.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation>beta</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 0df6605cb3..eac291c846 100644
--- a/src/qt/locale/bitcoin_nb.ts
+++ b/src/qt/locale/bitcoin_nb.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="nb">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="nb" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin Developers
+ <translation>Copyright © 2009-2012 Bitcoin Utviklerne
Dette er eksperimentell programvare.
-Distribuert under MIT/X11 programvarelisens. Se den medfølgende filen license.txt eller http://www.opensource.org/licenses/mit-license.php.
+Distribuert under MIT/X11 programvarelisensen, se medfølgende fil license.txt eller http://www.opensource.org/licenses/mit-license.php.
-Dette produktet inneholder programvare utviklet av OpenSSL Prosjektet for bruk i OpenSSL Toolkit (http://www.openssl.org/) og kryptografisk programvare skrevet av Eric Young (eay@cryptsoft.com) og UPnP programvare skrevet av Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin Developers
-
-Dette er eksperimentell programvare.
-
-Distribuert under MIT/X11 programvarelisens. Se den medfølgende filen license.txt eller http://www.opensource.org/licenses/mit-license.php.
-
-Dette produktet inneholder programvare utviklet av OpenSSL Prosjektet for bruk i OpenSSL Toolkit (http://www.openssl.org/) og kryptografisk programvare skrevet av Eric Young (eay@cryptsoft.com) og UPnP programvare skrevet av Thomas Bernard.</translation>
+Dette produktet inneholder programvare utviklet av OpenSSL prosjektet for bruk i OpenSSL Toolkit (http://www.openssl.org/) og kryptografisk programvare skrevet av Eric Young (eay@cryptsoft.com) og UPnP programvare skrevet av Thomas Bernard.</translation>
</message>
</context>
<context>
@@ -88,17 +70,17 @@ Dette produktet inneholder programvare utviklet av OpenSSL Prosjektet for bruk i
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Vis &amp;QR Kode</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Signér en melding for å bevise at du eier denne adressen</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Signér Melding</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ Dette produktet inneholder programvare utviklet av OpenSSL Prosjektet for bruk i
<translation>&amp;Slett</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Kopier adresse</translation>
+ <translation>Kopier adresse</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Kopier merkelapp</translation>
+ <translation>Kopier merkelapp</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Rediger</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Slett</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Eksporter adressebok</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommaseparert fil (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Feil ved eksportering</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Kunne ikke skrive til filen %1.</translation>
</message>
@@ -258,17 +240,13 @@ Er du sikker på at du vil kryptere lommeboken?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin vil nå lukkes for å fullføre krypteringsprosessen. Husk at kryptering av lommeboken ikke fullt ut kan beskytte dine bitcoins fra å bli stjålet om skadevare infiserer datamaskinen.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Husk at å kryptere lommeboken ikke vil beskytte dine bitcoins fullstendig fra å bli stjålet av skadevare som infiserer datamaskinen din.</translation>
+ <translation>Advarsel: Caps lock tasten er på.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,317 +293,319 @@ Er du sikker på at du vil kryptere lommeboken?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin Lommebok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Synkroniserer med nettverk...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Synkronisering av blokk-kjede igang</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Oversikt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Vis generell oversikt over lommeboken</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transaksjoner</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Vis transaksjonshistorikk</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Adressebok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Rediger listen over adresser og deres merkelapper</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Motta bitcoins</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Vis listen over adresser for mottak av betalinger</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Send bitcoins</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Send bitcoins til en adresse</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>Signér &amp;melding</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Bevis at du kontrollerer en adresse</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Avslutt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Avslutt applikasjonen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation> &amp;Om %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Vis informasjon om Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Om &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Vis informasjon om Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Innstillinger...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Endre innstillinger for bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Ã…pne &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Vis Bitcoin-vinduet</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Eksporter...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Eksporter visningen til en fil</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Krypter Lommebok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Krypter eller dekrypter lommebok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Endre Adgangsfrase</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Endre adgangsfrasen brukt for kryptering av lommebok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Fil</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Innstillinger</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Hjelp</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Verktøylinje for faner</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Verktøylinje for handlinger</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnett]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktiv forbindelse til Bitcoin-nettverket</numerusform>
- <numerusform>%n aktive forbindelser til Bitcoin-nettverket</numerusform>
- </translation>
+ <translation><numerusform>%n aktiv forbindelse til Bitcoin-nettverket</numerusform><numerusform>%n aktive forbindelser til Bitcoin-nettverket</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Lastet ned %1 av %2 blokker med transaksjonshistorikk.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Lastet ned %1 blokker med transaksjonshistorikk.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>for %n sekund siden</numerusform>
- <numerusform>for %n sekunder siden</numerusform>
- </translation>
+ <translation><numerusform>for %n sekund siden</numerusform><numerusform>for %n sekunder siden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>for %n minutt siden</numerusform>
- <numerusform>for %n minutter siden</numerusform>
- </translation>
+ <translation><numerusform>for %n minutt siden</numerusform><numerusform>for %n minutter siden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>for %n time siden</numerusform>
- <numerusform>for %n timer siden</numerusform>
- </translation>
+ <translation><numerusform>for %n time siden</numerusform><numerusform>for %n timer siden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>for %n dag siden</numerusform>
- <numerusform>for %n dager siden</numerusform>
- </translation>
+ <translation><numerusform>for %n dag siden</numerusform><numerusform>for %n dager siden</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Ajour</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Kommer ajour...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Siste mottatte blokk ble generert %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Denne transaksjonen overstiger størrelsesbegrensningen. Du kan likevel sende den med et gebyr på %1, som går til nodene som prosesserer transaksjonen din og støtter nettverket. Vil du betale gebyret?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Sender...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Sendt transaksjon</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Innkommende transaksjon</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Dato: %1
+ <translation>Dato: %1
Beløp: %2
Type: %3
Adresse: %4
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Dato: %1
-Beløp: %2
-Type: %3
-Adresse: %4</translation>
+</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Lommeboken er &lt;b&gt;kryptert&lt;/b&gt; og for tiden &lt;b&gt;ulåst&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Lommeboken er &lt;b&gt;kryptert&lt;/b&gt; og for tiden &lt;b&gt;låst&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -788,7 +768,7 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Valgfritt transaksjonsgebyr per kB som hjelper for å sikre at transaksjonene dine blir raskt prosessert. De fleste transaksjoner er 1 kB. Et gebyr på 0.01 anbefales.</translation>
+ <translation>Valgfritt transaksjonsgebyr per kB som sikrer at dine transaksjoner blir raskt prosessert. De fleste transaksjoner er 1 kB. Et gebyr på 0.01 er anbefalt.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -798,7 +778,7 @@ Adresse: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Valgfritt transaksjonsgebyr per kB som hjelper for å sikre at transaksjonene dine blir raskt prosessert. De fleste transaksjoner er 1 kB. Et gebyr på 0.01 anbefales.</translation>
+ <translation>Valgfritt transaksjonsgebyr per kB som sikrer at dine transaksjoner blir raskt prosessert. De fleste transaksjoner er 1 kB. Et gebyr på 0.01 er anbefalt.</translation>
</message>
</context>
<context>
@@ -806,89 +786,89 @@ Adresse: %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Melding</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Adressen betalingen skal sendes til (f.eks. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Adressen betalingen skal sendes til (f.eks. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Velg adresse fra adresseboken</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Lim inn adresse fra utklippstavlen</translation>
+ <translation>Lim inn adresse fra utklippstavlen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Skriv inn meldingen du vil signere her</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Klikk &quot;Signér Melding&quot; for signatur</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Signér en melding for å bevise at du eier denne adressen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Signér Melding</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Kopier den valgte adressen til systemets utklippstavle</translation>
+ <translation>Kopier den valgte adressen til systemets utklippstavle</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Kopier til utklippstavle</translation>
+ <translation>&amp;Kopier til utklippstavle</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Feil ved signering</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 er ikke en gyldig adresse</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Privat nøkkel for %1 er ikke tilgjengelig.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Signering feilet</translation>
</message>
</context>
<context>
@@ -951,7 +931,7 @@ Adresse: %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -985,42 +965,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialog</translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR Kode</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Etterspør Betaling</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Beløp:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Merkelapp:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Melding:</translation>
+ <translation>Melding:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Lagre Som...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1050,7 +1040,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Fjern alle transaksjonsfelter</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1330,7 +1320,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>Transaksjons-ID:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1376,10 +1366,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Ã…pen for %n blokk</numerusform>
- <numerusform>Ã…pen for %n blokker</numerusform>
- </translation>
+ <translation><numerusform>Ã…pen for %n blokk</numerusform><numerusform>Ã…pen for %n blokker</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1404,10 +1391,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Utvunnet saldo vil bli tilgjengelig om %n blokk</numerusform>
- <numerusform>Utvunnet saldo vil bli tilgjengelig om %n blokker</numerusform>
- </translation>
+ <translation><numerusform>Utvunnet saldo vil bli tilgjengelig om %n blokk</numerusform><numerusform>Utvunnet saldo vil bli tilgjengelig om %n blokker</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1427,11 +1411,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Mottatt fra IP</translation>
+ <translation>Mottatt fra</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1439,10 +1419,6 @@ p, li { white-space: pre-wrap; }
<translation>Sendt til</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Sendt til IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Betaling til deg selv</translation>
@@ -1486,163 +1462,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Alle</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>I dag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Denne uken</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Denne måneden</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Forrige måned</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Dette året</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Intervall...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Mottatt med</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Sendt til</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Til deg selv</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Utvunnet</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Andre</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Skriv inn adresse eller merkelapp for søk</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Minimumsbeløp</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Kopier adresse</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Kopier merkelapp</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiér beløp</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Rediger merkelapp</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Vis detaljer...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Eksporter transaksjonsdata</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommaseparert fil (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Bekreftet</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Dato</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Type</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Merkelapp</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adresse</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Beløp</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Feil ved eksport</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Kunne ikke skrive til filen %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Intervall:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>til</translation>
</message>
@@ -1650,7 +1626,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Sender...</translation>
</message>
@@ -1736,12 +1712,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Lytt etter tilkoblinger på &lt;port&gt; (standardverdi: 8333 eller testnet: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Hold maks &lt;n&gt; koblinger åpne til andre noder (standardverdi: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1761,27 +1737,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Ikke lag initiell nodeliste ved hjelp av DNS</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Grenseverdi for å koble fra noder med dårlig oppførsel (standardverdi: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Antall sekunder noder med dårlig oppførsel hindres fra å koble til på nytt (standardverdi: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maksimum mottaksbuffer per tilkobling, &lt;n&gt;*1000 bytes (standardverdi: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maksimum sendebuffer per tilkobling, &lt;n&gt;*1000 bytes (standardverdi: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1816,22 +1792,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Gi ut ekstra debuginformasjon</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Sett tidsstempel på debugmeldinger</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Send spor/debug informasjon til konsollet istedenfor debug.log filen</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Send spor/debug informasjon til debugger</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1913,36 +1889,32 @@ SSL innstillinger: (se Bitcoin Wiki for instruksjoner om SSL oppsett)</translati
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Feil ved lasting av addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Feil ved lasting av blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Feil ved lasting av wallet.dat: Lommeboken er skadet</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Feil ved lasting av wallet.dat: Lommeboken krever en nyere versjon av Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Lommeboken måtte skrives om: start Bitcoin på nytt for å fullføre</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Feil ved lasting av addr.dat </translation>
+ <translation>Feil ved lasting av wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1950,27 +1922,11 @@ SSL innstillinger: (se Bitcoin Wiki for instruksjoner om SSL oppsett)</translati
<translation>Laster blokkindeks...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Feil ved lasting av blkindex.dat </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Laster lommebok...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Feil ved lasting av wallet.dat: Skadet lommebok </translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Feil ved lasting av wallet.dat: Lommeboken krever en nyere versjon av Bitcoin </translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Feil ved lasting av wallet.dat </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Leser gjennom...</translation>
@@ -2011,472 +1967,6 @@ SSL innstillinger: (se Bitcoin Wiki for instruksjoner om SSL oppsett)</translati
<translation>Klarer ikke binde til port %d på denne datamaskinen. Bitcoin kjører sannsynligvis allerede.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Denne transaksjonen er over maks-størrelsen. Du kan likevel sende med et gebyr på %s, som vil bli gitt til noder som prosesserer transaksjonen din og støtter nettverket. Vil du betale gebyret?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Skriv inn nåværende adgangsfrase for lommeboken.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Adgangsfrase</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Vennligst oppgå nåværende adgangsfrase for dekryptering.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Adgangsfrasen angitt for dekryptering av lommeboken var feil.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Status</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Dato</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Beskrivelse</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debet</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Kredit</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Ã…pen for %d blokker</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Ã…pen til %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/frakoblet?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/ubekreftet</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d bekreftelser</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Generert</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Generert (%s modnes om %d blokker)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Generert - Advarsel: Denne blokken ble ikke mottatt av noen andre noder og vil sannsynligvis ikke bli akseptert!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Generert (ikke akseptert)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Fra: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Mottatt med: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Betaling til deg selv</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Til: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Genererer</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(ikke tilkoblet)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d forbindelser %d blokker %d transaksjoner</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Lommebok allerede kryptert.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Skriv inn adgangsfrasen for lommeboken.
-Vennligst bruk en adgangsfrase på 10 eller flere tilfeldige tegn, eller åtte eller flere ord.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Feil: Angitt adgangsfrase var for kort.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">ADVARSEL: Hvis du krypterer lommeboken din og mister adgangsfrasen vil du MISTE ALLE DINE BITCOINS!
-Er du sikker på at du vil kryptere lommeboken?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Vennligst gjenta adgangsfrasen for lommeboken.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Feil: de angitte adgangsfrasene er ulike.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Kryptering av lommebok feilet.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Lommebok kryptert.
-Husk at det å kryptere lommeboken ikke kan beskytte dine bitcoins fullstendig fra å bli stjålet av skadevare som infiserer datamaskinen din.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Lommeboken er ukryptert, vennligst krypter den først.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Skriv inn ny adgangsfrase for lommeboken.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Gjenta adgangsfrasen for lommeboken.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Adgangsfrasen for Lommeboken er Endret.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Ny Mottaksadresse</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Du bør bruke en ny adresse for hver betaling du mottar.
-
-Merkelapp</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Status:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, har ikke blitt kringkastet uten problemer enda.</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, kringkastet gjennom %d node</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, kringkast gjennom %d noder</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Dato:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Kilde:&lt;/b&gt; Generert&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Fra:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">ukjent</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Til:&lt;/b&gt;</translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (din, merkelapp: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (din)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Kredit:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s modnes om %d blokker)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(ikke akseptert)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Debet:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Transaksjonsgebyr:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Nettobeløp:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Melding:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Kommentar:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Genererte mynter må vente 120 blokker før de kan brukes. Da du genererte denne blokken ble den kringkastet til nettverket for å legges til i blokk-kjeden. Hvis den ikke kommer med i kjeden vil den endres til &quot;ikke akseptert&quot; og ikke kunne brukes. Dette vil skje noen ganger når en annen node genererer en blokk bare sekunder fra din egen i tid.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Kan ikke skrive til autostart/bitcoin.desktop filen</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Hoved</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Start Bitcoin ved oppstart</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimer ved lukking</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">versjon %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Feil i beløp </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Send Bitcoins</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Beløpet overstiger saldoen </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Totalbeløpet overstiger saldoen når </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> transaksjonsgebyret tas med </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Betaling sendt </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Sender...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Ugyldig adresse </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Sender %s til %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">AVBRUTT</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Avbrutt</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Overføring avbrutt </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Feil: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Utilstrekkelige midler</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Kobler til...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Kunne ikke koble til</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Ber om offentlig nøkkel...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Mottok offentlig nøkkel...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Mottaker tar ikke imot transaksjoner sendt via IP-adresse</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Overføring ble ikke akseptert</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Ugyldig svar mottatt</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Oppretter transaksjon...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Denne transaksjonen krever et gebyr på minst %s pga. beløpet, kompleksiteten, eller bruk av nylig mottatte midler</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Opprettelse av transaksjon feilet</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transaksjon avbrutt</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Mistet forbindelsen, transaksjonen avbrutt</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Sender betaling...</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 type="obsolete">Transaksjonen ble avvist. Dette kan skje hvis noen av myntene i lommeboken allerede er brukt, f.eks. hvis du kopierte wallet.dat og mynter ble brukt i kopien uten å bli markert som brukt her.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Venter på bekreftelse...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Betalingen ble sendt, men mottaker kunne ikke verifisere den.
-Transaksjonen er lagret og beløpet vil bli kreditert mottaker,
-men kommentaren vil bli blank.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Betaling ble sendt, men et ugyldig svar kom tilbake</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Betaling fullført</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Navn</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adresse</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Merkelapp</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin-Adresse</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Dette er en av dine egne adresser for mottak av betalinger og kan ikke legges inn i adresseboken. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Rediger adresse</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Rediger Merkelapp</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Legg til Adresse</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Genererer</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (ikke tilkoblet)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Ã…pne Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Send Bitcoins</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">&amp;Innstillinger...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">&amp;Avslutt</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Programmet har kræsjet og vil avslutte. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Advarsel: Vennligst sjekk at dato og klokke er riktig innstilt på datamaskinen. Hvis klokken er feil vil ikke Bitcoin fungere ordentlig.</translation>
@@ -2487,16 +1977,4 @@ men kommentaren vil bli blank.</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts
index 30bd54f089..7425d21563 100644
--- a/src/qt/locale/bitcoin_nl.ts
+++ b/src/qt/locale/bitcoin_nl.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="nl">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="nl" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -24,29 +22,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin-ontwikkelaars
+ <translation>Copyright © 2009-2012 Bitcoin Ontwikkelaars
Dit is experimentele software.
-Gedistributeerd onder de MIT/X11 software licentie, zie het bijgevoegde bestand license.txt of kijk op http://www.opensource.org/licenses/mit-license.php.
+Gedistribueerd onder de MIT/X11 software licentie, zie het bijgevoegde bestand license.txt of http://www.opensource.org/licenses/mit-license.php.
-Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in de OpenSSL Toolkit (http://www.openssl.org/), en cryptografische software geschreven door Eric Young (eay@cryptsoft.com) en UPnP software geschreven door Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin-ontwikkelaars
-
-Dit is experimentele software.
-
-Gedistributeerd onder de MIT/X11 software licentie, zie het bijgevoegde bestand license.txt of kijk op http://www.opensource.org/licenses/mit-license.php.
-
-Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in de OpenSSL Toolkit (http://www.openssl.org/), en cryptografische software geschreven door Eric Young (eay@cryptsoft.com) en UPnP software geschreven door Thomas Bernard.</translation>
+Dit product bevat software ontwikkeld door het OpenSSL Project voor gebruik in de OpenSSL Toolkit (http://www.openssl.org/) en cryptografische software gemaakt door Eric Young (eay@cryptsoft.com) en UPnP software geschreven door Thomas Bernard.</translation>
</message>
</context>
<context>
@@ -64,7 +46,7 @@ Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in d
<message>
<location filename="../forms/addressbookpage.ui" line="33"/>
<source>Double-click to edit address or label</source>
- <translation>Dubbelklik om adres of etiket te wijzigen</translation>
+ <translation>Dubbelklik om adres of label te wijzigen</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="57"/>
@@ -89,22 +71,22 @@ Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in d
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Toon &amp;QR-Code</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Onderteken een bericht om te bewijzen dat u dit adres bezit</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Onderteken Bericht</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
<source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
- <translation>Verwijder het huidige geselecteerde adres van de lijst. Alleen afzenderadressen kunnen verwijderd worden.</translation>
+ <translation>Verwijder het huidige geselecteerde adres van de lijst. Alleen zend-adressen kunnen verwijderd worden, niet uw ontvangstadressen.</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="113"/>
@@ -112,42 +94,42 @@ Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in d
<translation>&amp;Verwijder</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Kopieer adres</translation>
+ <translation>Kopieer adres</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Kopieer etiket</translation>
+ <translation>Kopieer label</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Bewerk</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Verwijder</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Exporteer Gegevens van het Adresboek</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommagescheiden bestand (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Fout bij exporteren</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Kon niet schrijven naar bestand %1.</translation>
</message>
@@ -157,7 +139,7 @@ Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in d
<message>
<location filename="../addresstablemodel.cpp" line="77"/>
<source>Label</source>
- <translation>Etiket</translation>
+ <translation>Label</translation>
</message>
<message>
<location filename="../addresstablemodel.cpp" line="77"/>
@@ -167,7 +149,7 @@ Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in d
<message>
<location filename="../addresstablemodel.cpp" line="113"/>
<source>(no label)</source>
- <translation>(geen etiket)</translation>
+ <translation>(geen label)</translation>
</message>
</context>
<context>
@@ -181,12 +163,12 @@ Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in d
<location filename="../forms/askpassphrasedialog.ui" line="32"/>
<location filename="../forms/askpassphrasedialog.ui" line="97"/>
<source>TextLabel</source>
- <translation>TekstEtiket</translation>
+ <translation>TekstLabel</translation>
</message>
<message>
<location filename="../forms/askpassphrasedialog.ui" line="50"/>
<source>Enter passphrase</source>
- <translation>Enter wachtwoord</translation>
+ <translation>Huidig wachtwoord</translation>
</message>
<message>
<location filename="../forms/askpassphrasedialog.ui" line="64"/>
@@ -201,7 +183,7 @@ Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in d
<message>
<location filename="../askpassphrasedialog.cpp" line="34"/>
<source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
- <translation>Vul een nieuw wachtwoord in voor uw portemonnee. &lt;br/&gt; Gebruik een wachtwoord van &lt;b&gt;10 of meer lukrake karakters&lt;/b&gt;, of &lt;8&gt; acht of meer woorden&lt;/b&gt; . </translation>
+ <translation>Vul een nieuw wachtwoord in voor uw portemonnee. &lt;br/&gt; Gebruik een wachtwoord van &lt;b&gt;10 of meer lukrake karakters&lt;/b&gt;, of &lt;b&gt; acht of meer woorden&lt;/b&gt; . </translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="35"/>
@@ -231,12 +213,12 @@ Dit product bevat software ontwikkeld door het OpenSSL project voor gebruik in d
<message>
<location filename="../askpassphrasedialog.cpp" line="54"/>
<source>Change passphrase</source>
- <translation>Verander wachtwoord</translation>
+ <translation>Wijzig wachtwoord</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="55"/>
<source>Enter the old and new passphrase to the wallet.</source>
- <translation>vul uw oude en nieuwe portemonneewachtwoord in.</translation>
+ <translation>Vul uw oude en nieuwe portemonneewachtwoord in.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="101"/>
@@ -259,17 +241,13 @@ Bent u er zeker van uw dat u uw portemonnee wilt versleutelen?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin zal nu afsluiten om het versleutelingsproces te voltooien. Onthoud dat het versleutelen van uw portemonnee u niet volledig kan beschermen: Malware kan uw computer infecteren en uw bitcoins stelen.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Onthoud dat het versleutelen van uw portemonnee uw bitcoins niet volledig kan beschermen tegen diefstal, bijvoorbeeld door malware die uw computer infecteert.</translation>
+ <translation>Waarschuwing: De Caps-Lock-toets staat aan.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -310,325 +288,325 @@ Bent u er zeker van uw dat u uw portemonnee wilt versleutelen?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="161"/>
<source>Wallet passphrase was succesfully changed.</source>
- <translation>Portemonneewachtwoord is succesvol veranderd</translation>
+ <translation>Portemonneewachtwoord is succesvol gewijzigd</translation>
</message>
</context>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin-portemonnee</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Synchroniseren met netwerk...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
- <translation>Bezig met blokkenketting-synchronisatie</translation>
+ <translation>Bezig met blokkenketen-synchronisatie</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Overzicht</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Toon algemeen overzicht van de portemonnee</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transacties</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Blader door transactieverleden</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Adresboek</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
- <translation>Bewerk de lijst van opgeslagen adressen en etiketten</translation>
+ <translation>Bewerk de lijst van opgeslagen adressen en labels</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Ontvang munten</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Toon lijst van adressen om betalingen mee te ontvangen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Verstuur munten</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Verstuur munten naar een bitcoin-adres</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Onderteken Bericht</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Bewijs dat u een adres bezit</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Afsluiten</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Programma afsluiten</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;Over %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Laat informatie zien over Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Over &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Toon informatie over Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Opties...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
- <translation>Verander instellingen van Bitcoin</translation>
+ <translation>Wijzig instellingen van Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Open &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Toon Bitcoin-venster </translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Exporteer...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Exporteer huidige overzicht naar een bestand</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Exporteer de data in de huidige tab naar een bestand</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Versleutel Portemonnee</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Versleutel of ontsleutel portemonnee</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>Backup &amp;Portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>&amp;Backup portemonnee naar een andere locatie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
- <translation>&amp;Verander wachtwoord</translation>
+ <translation>&amp;Wijzig Wachtwoord</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
- <translation>Verander het wachtwoord voor uw portemonneversleuteling</translation>
+ <translation>wijzig het wachtwoord voor uw portemonneversleuteling</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Bestand</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Instellingen</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Hulp</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Tab-werkbalk</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Actie-werkbalk</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnetwerk]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n actieve connectie(s) naar Bitcoinnetwerk</numerusform>
- <numerusform>%n actieve connectie(s) naar Bitcoinnetwerk</numerusform>
- </translation>
+ <translation><numerusform>%n actieve connectie naar Bitcoinnetwerk</numerusform><numerusform>%n actieve connecties naar Bitcoinnetwerk</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
- <translation>%1 van %2 blokken van transactiehistorie opgehaald</translation>
+ <translation>%1 van %2 blokken van transactiehistorie opgehaald.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>%1 blokken van transactiehistorie opgehaald.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n seconde(n) geleden</numerusform>
- <numerusform>%n seconde(n) geleden</numerusform>
- </translation>
+ <translation><numerusform>%n seconde geleden</numerusform><numerusform>%n seconden geleden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n minu(u)t(en) geleden</numerusform>
- <numerusform>%n minu(u)t(en) geleden</numerusform>
- </translation>
+ <translation><numerusform>%n minuut geleden</numerusform><numerusform>%n minuten geleden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n u(u)r(en) geleden</numerusform>
- <numerusform>%n u(u)r(en) geleden</numerusform>
- </translation>
+ <translation><numerusform>%n uur geleden</numerusform><numerusform>%n uur geleden</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n dag(en) geleden</numerusform>
- <numerusform>%n dag(en) geleden</numerusform>
- </translation>
+ <translation><numerusform>%n dag geleden</numerusform><numerusform>%n dagen geleden</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Bijgewerkt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Aan het bijwerken...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
- <translation>Laatst ontvangen blok gegenereerd is %1</translation>
+ <translation>Laatst ontvangen blok is %1 gegenereerd.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Deze transactie overschrijdt de groottelimiet. Om de transactie alsnog te versturen kunt u transactiekosten betalen van %1. Deze transactiekosten gaan naar de nodes die uw transactie verwerken en het helpt op deze manier bij het ondersteunen van het netwerk. Wilt u de transactiekosten betalen?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Versturen...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Verzonden transactie</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Binnenkomende transactie</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Datum: %1
-Bedrag: %2
-Type: %3
-Adres: %4
-
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Datum: %1
+ <translation>Datum: %1
Bedrag: %2
Type: %3
Adres: %4
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Portemonnee is &lt;b&gt;versleuteld&lt;/b&gt; en momenteel &lt;b&gt;geopend&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Portemonnee is &lt;b&gt;versleuteld&lt;/b&gt; en momenteel &lt;b&gt;gesloten&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>Backup Portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Portemonnee-data (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>Backup Mislukt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Er is een fout opgetreden bij het wegschrijven van de portemonnee-data naar de nieuwe locatie.</translation>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -658,12 +636,12 @@ Adres: %4
<message>
<location filename="../forms/editaddressdialog.ui" line="25"/>
<source>&amp;Label</source>
- <translation>&amp;Etiket</translation>
+ <translation>&amp;Label</translation>
</message>
<message>
<location filename="../forms/editaddressdialog.ui" line="35"/>
<source>The label associated with this address book entry</source>
- <translation>Het etiket dat geassocieerd is met dit adres</translation>
+ <translation>Het label dat geassocieerd is met dit adres</translation>
</message>
<message>
<location filename="../forms/editaddressdialog.ui" line="42"/>
@@ -673,27 +651,27 @@ Adres: %4
<message>
<location filename="../forms/editaddressdialog.ui" line="52"/>
<source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
- <translation>Het adres dat geassocieerd is met deze adresboek-opgave. Dit kan alleen worden veranderd voor afzenderadressen.</translation>
+ <translation>Het adres dat geassocieerd is met deze adresboek-opgave. Dit kan alleen worden veranderd voor zend-adressen.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="20"/>
<source>New receiving address</source>
- <translation>Nieuw ontvangst-adres</translation>
+ <translation>Nieuw ontvangstadres</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="24"/>
<source>New sending address</source>
- <translation>Nieuw afzender-adres</translation>
+ <translation>Nieuw adres om naar te verzenden</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="27"/>
<source>Edit receiving address</source>
- <translation>Bewerk ontvangst-adres</translation>
+ <translation>Bewerk ontvangstadres</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="31"/>
<source>Edit sending address</source>
- <translation>Bewerk afzender-adres</translation>
+ <translation>Bewerk adres om naar te verzenden</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="91"/>
@@ -721,7 +699,7 @@ Adres: %4
<message>
<location filename="../optionsdialog.cpp" line="170"/>
<source>&amp;Start Bitcoin on window system startup</source>
- <translation>&amp;Start Bitcoin wanneer het systeem opstart</translation>
+ <translation>Start &amp;Bitcoin wanneer het systeem opstart</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="171"/>
@@ -751,7 +729,7 @@ Adres: %4
<message>
<location filename="../optionsdialog.cpp" line="185"/>
<source>M&amp;inimize on close</source>
- <translation>&amp;Minimaliseer bij sluiten van het venster</translation>
+ <translation>Minimaliseer bij &amp;sluiten van het venster</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="186"/>
@@ -791,17 +769,17 @@ Adres: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Optionele transactiekosten per kB die helpen ervoor te zorgen dat uw transacties snel verwerkt worden. De meeste transacties zijn 1 kB. Transactiekosten van 0.01 wordt aangeraden.</translation>
+ <translation>Optionele transactiekosten per kB die helpen om uw transacties snel te verwerken. De meeste transacties zijn 1 kB. Transactiekosten van 0,01 wordt aangeraden</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
<source>Pay transaction &amp;fee</source>
- <translation>Betaal transactie&amp;kosten</translation>
+ <translation>Betaal &amp;transactiekosten</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Optionele transactiekosten per kB die helpen ervoor te zorgen dat uw transacties snel verwerkt worden. De meeste transacties zijn 1 kB. Transactiekosten van 0.01 wordt aangeraden.</translation>
+ <translation>Optionele transactiekosten per kB die helpen om uw transacties snel te verwerken. De meeste transacties zijn 1 kB. Transactiekosten van 0,01 wordt aangeraden</translation>
</message>
</context>
<context>
@@ -809,89 +787,89 @@ Adres: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Bericht</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
+ <translation>U kunt berichten ondertekenen met een van uw adressen om te bewijzen dat u dit adres bezit. Pas op dat u geen onduidelijke dingen ondertekent, want phishingaanvallen zouden u voor de gek kunnen houden om zo uw identiteit te stelen. Onderteken alleen berichten waarmee u het volledig eens bent.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Het adres waaraan u wilt betalen (bijv. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Het adres waaraan u wilt betalen (bijv. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Kies adres uit adresboek</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Plak adres vanuit klembord</translation>
+ <translation>Plak adres vanuit klembord</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Typ hier het bericht dat u wilt ondertekenen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Klik &quot;Onderteken Bericht&quot; om de handtekening te verkrijgen</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Onderteken een bericht om te bewijzen dat u dit adres bezit</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Onderteken Bericht</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Kopieer het huidig geselecteerde adres naar het klembord</translation>
+ <translation>Kopieer het huidig geselecteerde adres naar het klembord</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Kopieer naar Klembord</translation>
+ <translation>&amp;Kopieer naar Klembord</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Fout bij het ondertekenen</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 is geen geldig adres.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Geheime sleutel voor %1 is niet beschikbaar.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Ondertekenen mislukt</translation>
</message>
</context>
<context>
@@ -954,7 +932,7 @@ Adres: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -988,42 +966,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialoog</translation>
+ <translation>Dialoog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR-code</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Vraag betaling aan</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Bedrag:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Label:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Bericht:</translation>
+ <translation>Bericht:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Opslaan Als...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>Afbeelding Opslaan...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>PNG-Afbeeldingen (*.png)</translation>
</message>
</context>
<context>
@@ -1048,12 +1036,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="67"/>
<source>&amp;Add recipient...</source>
- <translation>&amp;Voeg ontvanger toe...</translation>
+ <translation>Voeg &amp;ontvanger toe...</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Verwijder alle transactievelden</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1103,7 +1091,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="123"/>
<source>The recepient address is not valid, please recheck.</source>
- <translation>Het ontvangstadres is niet geldig, controleer ingave.</translation>
+ <translation>Het ontvangstadres is niet geldig, controleer uw opgave.</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="128"/>
@@ -1146,7 +1134,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="29"/>
<source>A&amp;mount:</source>
- <translation>B&amp;edrag:</translation>
+ <translation>Bedra&amp;g:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="42"/>
@@ -1157,12 +1145,12 @@ p, li { white-space: pre-wrap; }
<location filename="../forms/sendcoinsentry.ui" line="66"/>
<location filename="../sendcoinsentry.cpp" line="26"/>
<source>Enter a label for this address to add it to your address book</source>
- <translation>Vul een etiket in voor dit adres om het toe te voegen aan uw adresboek</translation>
+ <translation>Vul een label in voor dit adres om het toe te voegen aan uw adresboek</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="75"/>
<source>&amp;Label:</source>
- <translation>&amp;Etiket:</translation>
+ <translation>&amp;Label:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="93"/>
@@ -1235,17 +1223,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="52"/>
<source>, has not been successfully broadcast yet</source>
- <translation>,is nog niet succesvol uitgezonden</translation>
+ <translation>, is nog niet succesvol uitgezonden</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="54"/>
<source>, broadcast through %1 node</source>
- <translation>, uitzending langs %1 node</translation>
+ <translation>, uitgezonden naar %1 node</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="56"/>
<source>, broadcast through %1 nodes</source>
- <translation>,uitzending langs %1 nodes</translation>
+ <translation>, uitgezonden naar %1 nodes</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="60"/>
@@ -1278,7 +1266,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="94"/>
<source> (yours, label: </source>
- <translation>(Uw, etiket:</translation>
+ <translation>(Uw adres, label:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="96"/>
@@ -1291,12 +1279,12 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="190"/>
<location filename="../transactiondesc.cpp" line="207"/>
<source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation>&lt;b&gt;Tegoed:&lt;/b&gt;</translation>
+ <translation>&lt;b&gt;Bij:&lt;/b&gt;</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="133"/>
<source>(%1 matures in %2 more blocks)</source>
- <translation>(%1 verwezenlijkt in %2 meer blokken)</translation>
+ <translation>(%1 komt beschikbaar na %2 blokken)</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="137"/>
@@ -1308,7 +1296,7 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="189"/>
<location filename="../transactiondesc.cpp" line="204"/>
<source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation>&lt;b&gt;Debet:&lt;/b&gt;</translation>
+ <translation>&lt;b&gt;Af:&lt;/b&gt;</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="195"/>
@@ -1333,12 +1321,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>Transactie-ID:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
<source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation>Gegeneerde munten moeten 120 blokken wachten voor ze kunnen worden uitgegeven. Je net gegenereerde blok is uitgezonden aan het netwerk om te worden toegevoegd aan de blokkenketting. Als het niet wordt geaccepteerd in de ketting, zal het blok als &quot;ongeldig&quot; worden aangemerkt en kan het niet worden uitgegeven. Dit kan soms gebeuren als een andere node net iets sneller een blok heeft gegenereerd; een paar seconden voor de uwe.</translation>
+ <translation>Gegeneerde munten moeten 120 blokken wachten voor ze kunnen worden uitgegeven. Uw net gegenereerde blok is uitgezonden aan het netwerk om te worden toegevoegd aan de blokkenketen. Als het niet wordt geaccepteerd in de keten, zal het blok als &quot;ongeldig&quot; worden aangemerkt en kan het niet worden uitgegeven. Dit kan soms gebeuren als een andere node net iets sneller een blok heeft gegenereerd; een paar seconden voor het uwe.</translation>
</message>
</context>
<context>
@@ -1379,10 +1367,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Open gedurende %n blok(ken)</numerusform>
- <numerusform>Open gedurende %n blok(ken)</numerusform>
- </translation>
+ <translation><numerusform>Open gedurende %n blok</numerusform><numerusform>Open gedurende %n blokken</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1407,10 +1392,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Ontgonnen saldo word beschikbaar na %n blokken meer</numerusform>
- <numerusform>Ontgonnen saldo word beschikbaar na %n blokken meer</numerusform>
- </translation>
+ <translation><numerusform>Ontgonnen saldo komt beschikbaar na %n blok</numerusform><numerusform>Ontgonnen saldo komt beschikbaar na %n blokken</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1430,11 +1412,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Ontvangen van IP</translation>
+ <translation>Ontvangen van</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1442,10 +1420,6 @@ p, li { white-space: pre-wrap; }
<translation>Verzonden aan</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Verzonden aan IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Betaling aan uzelf</translation>
@@ -1489,163 +1463,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Alles</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Vandaag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Deze week</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Deze maand</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Vorige maand</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Dit jaar</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Bereik...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Ontvangen met</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Verzonden aan</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Aan uzelf</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Ontgonnen</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Anders</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
- <translation>Vul adres of etiket in om te zoeken</translation>
+ <translation>Vul adres of label in om te zoeken</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Min. bedrag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Kopieer adres</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
- <translation>Kopieer etiket</translation>
+ <translation>Kopieer label</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Kopieer bedrag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
- <translation>Verander Etiket</translation>
+ <translation>Bewerk label</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Toon details...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Exporteer transactiegegevens</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommagescheiden bestand (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Bevestigd</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Type</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
- <translation>Etiket</translation>
+ <translation>Label</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adres</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Bedrag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Fout bij exporteren</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Kon niet schrijven naar bestand %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Bereik:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>naar</translation>
</message>
@@ -1653,7 +1627,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Versturen...</translation>
</message>
@@ -1751,12 +1725,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Luister voor verbindingen op &lt;poort&gt; (standaard: 8333 of testnet: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Onderhoud maximaal &lt;n&gt; verbindingen naar peers (standaard: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1779,27 +1753,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Gebruik geen DNS om de lijst met peers op te starten</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Drempel om verbinding te verbreken naar zich misdragende peers (standaard: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Aantal seconden dat zich misdragende peers niet opnieuw mogen verbinden (standaard: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximale ontvangstbuffer per connectie, &lt;n&gt;*1000 bytes (standaard: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximale zendbuffer per connectie, &lt;n&gt;*1000 bytes (standaard: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1816,8 +1790,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>Kosten per kB om aan transacties toe te voegen die u verstuurt
-</translation>
+ <translation>Transactiekosten per kB om toe te voegen aan transacties die u verzendt</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1840,22 +1813,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Toon extra debuggingsinformatie</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Voorzie de debuggingsuitvoer van een tijdsaanduiding</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Stuur trace/debug-info naar de console in plaats van het debug.log bestand</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Stuur trace/debug-info naar debugger</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1896,8 +1869,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="46"/>
<source>Rescan the block chain for missing wallet transactions</source>
- <translation>Doorzoek de blokkenketting op ontbrekende portemonnee-transacties
-</translation>
+ <translation>Doorzoek de blokkenketen op ontbrekende portemonnee-transacties</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="47"/>
@@ -1949,37 +1921,32 @@ SSL opties: (zie de Bitcoin wiki voor SSL instructies)
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Fout bij laden addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Fout bij laden blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Fout bij laden wallet.dat: Portemonnee corrupt</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Fout bij laden wallet.dat: Portemonnee vereist een nieuwere versie van Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Portemonnee moest herschreven worden: Herstart Bitcoin om te voltooien</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Fout bij laden van bestand addr.dat
-</translation>
+ <translation>Fout bij laden wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1987,30 +1954,11 @@ SSL opties: (zie de Bitcoin wiki voor SSL instructies)
<translation>Blokindex aan het laden...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Fout bij laden van bestand addr.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Portemonnee aan het laden...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Fout bij het laden van wallet.dat: Portemonnee corrupt
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Fout bij het laden van wallet.dat: Portemonnee vereist nieuwere versie van Bitcoin</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Fout bij laden van bestand wallet.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Opnieuw aan het scannen ...</translation>
@@ -2051,470 +1999,6 @@ SSL opties: (zie de Bitcoin wiki voor SSL instructies)
<translation>Kan niet binden aan poort %d op deze computer. Bitcoin draait vermoedelijk reeds.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Deze transactie overschrijdt de groottelimiet. Om de transactie alsnog te versturen kunt u transactiekosten betalen van %s. Deze transactiekosten gaan naar de nodes die uw transactie verwerken en het helpt op deze manier bij het ondersteunen van het netwerk. Wilt u de transactiekosten betalen?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Voer het huidige portemonneewachtwoord in.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Wachtwoordzin</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Voer het huidige portemonnee-ontsleutel-wachtwoord in.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Het wachtwoord voor de portemonnee-ontsleuteling was incorrect.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Status</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Datum</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Omschrijving</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debet</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Credit</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Open voor %d blokken</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Open tot %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/niet verbonden?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/onbevestigd</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d bevestigingen</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Gegenereerd</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Gegenereerd (%s wordt volwassen in %d meer blokken)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Gegenereerd - Waarschuwing: Dit blok werd door geen enkele andere node ontvangen en zal waarschijnlijk niet worden geaccepteerd!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Gegenereerd (niet geaccepteerd)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Van:</translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Ontvangen met:</translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Betaling aan uzelf</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Aan:</translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete">Aan het genereren</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(Niet verbonden)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete">%d verbindingen %d blokken %d transacties</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Portemonnee reeds versleuteld.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Voer het nieuwe portemonneewachtwoord in. Gebruik een wachtwoord van 10 of meer willekeurige tekens, of acht of meer woorden.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Fout: Het opgegeven wachtwoord was te kort.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">WAARSCHUWING: Als u uw portemonnee versleutelt en uw wachtwoord verliest, verliest u AL UW BITCOINS! Bent u er zeker van dat u uw portemonnee wilt versleutelen?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Voer uw nieuwe portemonneewachtwoord nogmaals in.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Fout: De opgegeven wachtwoorden kwamen niet overeen.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Portemonneeversleuteling mislukt.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Portemonnee versleuteld.
-Onthoud dat het versleutelen van uw portemonnee uw bitcoins niet volledig kan beschermen tegen diefstal, bijvoorbeeld door malware die uw computer infecteert.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Portemonnee is onversleuteld, gelieve deze eerst te versleutelen.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Voer het nieuwe portemonneewachtwoord in.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Voer het nieuwe portemonneewachtwoord opnieuw in.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Portemonnewachtwoord veranderd.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Nieuw Ontvangstadres</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Het is aan te raden om een nieuw adres te gebruiken voor elke betaling die u ontvangt.
-
-Etiket</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Status:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, is nog niet succesvol uitgezonden</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, uitgezonden door %d node</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, uitgezonden door %d nodes</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Datum:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Bron:&lt;/b&gt; Gegenereerd &lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Uit:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">onbekend</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Aan:&lt;/b&gt;</translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete">(uw, etiket:</translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete">(uw)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Credit:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s wordt verwezenlijkt in %d meer blokken)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(Niet geaccepteerd)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Debet:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Transactiekosten:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Netto bedrag:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Bericht:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Commentaar:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Gegeneerde munten moeten 120 blokken wachten voor ze kunnen worden uitgegeven. Je net gegenereerde blok is uitgezonden aan het netwerk om te worden toegevoegd aan de blokkenketting. Als het niet wordt geaccepteerd in de ketting, zal het blok als &quot;ongeldig&quot; worden aangemerkt en kan het niet worden uitgegeven. Dit kan soms gebeuren als een andere node net iets sneller een blok heeft gegenereerd; een paar seconden voor de uwe.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Kan niet schrijven naar bestand autostart/bitcoin.desktop</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Algemeen</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Start Bitcoin bij het opstarten van het systeem</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimaliseer bij afsluiten</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">versie %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Fout in bedrag</translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Verstuur munten</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Bedrag is hoger dan uw saldo</translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Totaal is hoger dan uw saldo als de</translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete">transactiekosten zijn meegerekend</translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Betaling verzonden</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Aan het versturen...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Ongeldig adres</translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">%s aan het versturen naar %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">GEANNULEERD</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Geannuleerd</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Overschrijving geannuleerd</translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Fout:</translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Ontoereikend saldo</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Aan het verbinden...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Kan geen verbinding maken</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Publieke sleutel aan het aanvragen ...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Publieke sleutel ontvangen...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Ontvanger accepteert geen transacties verzonden per IP-adres</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Overschrijving was niet geaccepteerd</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Ongeldig antwoord ontvangen</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Transactie aan het creëren...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Deze transactie vereist transactiekosten van tenminste %s vanwege het bedrag, de complexiteit, of het gebruik van recentelijk ontvangen munten</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Transactiecreatie mislukt</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transactie geannuleerd</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Verbinding verbroken, transactie geannuleerd</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Betaling aan het versturen...</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 type="obsolete">De transactie was afgewezen. Dit kan gebeuren als u eerder uitgegeven munten opnieuw wilt versturen, zoals wanneer u een kopie van uw wallet.dat heeft gebruikt en in de kopie deze munten zijn gemarkeerd als uitgegeven, maar in de huidige nog niet.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Aan het wachten voor bevestiging...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">De betaling was verzonden, maar de ontvanger was niet in staat om deze te verifiëren.
-De transactie is opgeslagen en zal ten goede komen aan de ontvanger,
-maar het commentaarveld zal leeg zijn</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Betaling is verzonden, maar een ongeldig antwoord was ontvangen</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Betaling voltooid</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Naam</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adres</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Etiket</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoinadres</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Dit is een van uw eigen adressen voor het ontvangen van betalingen en kan niet worden ingevoerd in het adresboek.</translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Bewerk Adres</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Bewerk Adresetiket</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Voeg Adres Toe</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Aan het genereren</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (niet verbonden)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Open Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Verstuur Bitcoins</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;pties...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">A&amp;fsluiten</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Het programma is gecrasht en zal worden beëindigd. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Waarschuwing: Controleer dat de datum en tijd op uw computer correct zijn ingesteld. Als uw klok fout staat zal Bitcoin niet correct werken.</translation>
@@ -2525,16 +2009,4 @@ maar het commentaarveld zal leeg zijn</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts
index 13d3d2fdf5..af42dc0249 100644
--- a/src/qt/locale/bitcoin_pl.ts
+++ b/src/qt/locale/bitcoin_pl.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="pl">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="pl" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,7 +21,18 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished"></translation>
+ <translation>Copyright © 2009-2012 Bitcoin Developers
+
+Oprogramowanie eksperymentalne.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.
+
+
+
+Pomóż w tłumaczeniu:
+www.transifex.net/projects/p/bitcoin/</translation>
</message>
</context>
<context>
@@ -66,17 +75,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż Kod &amp;QR</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Podpisz wiadomość aby dowieść, że ten adres jest twój</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>Podpi&amp;sz Wiadomość</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -89,42 +98,42 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>&amp;Usuń</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Kopiuj adres</translation>
+ <translation>Kopiuj adres</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Kopiuj etykietÄ™</translation>
+ <translation>Kopiuj etykietÄ™</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Eksportuj książkę adresową</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>CSV (rozdzielany przecinkami)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>BÅ‚Ä…d podczas eksportowania</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>BÅ‚Ä…d zapisu do pliku %1.</translation>
</message>
@@ -152,7 +161,7 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/askpassphrasedialog.ui" line="26"/>
<source>Dialog</source>
- <translation type="unfinished"></translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/askpassphrasedialog.ui" line="32"/>
@@ -224,7 +233,7 @@ This product includes software developed by the OpenSSL Project for use in the O
<location filename="../askpassphrasedialog.cpp" line="102"/>
<source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
Are you sure you wish to encrypt your wallet?</source>
- <translation>UWAGA: Jeśli zaszyfrujesz portfel i zgubisz hasło, wtedy &lt;b&gt;STRACISZ WSZYSTKIE SWOJE BITMONETY&lt;/b&gt;
+ <translation>OSTRZEŻENIE: Jeśli zaszyfrujesz portfel i zgubisz hasło, wtedy &lt;b&gt;STRACISZ WSZYSTKIE SWOJE BITMONETY&lt;/b&gt;
Czy na pewno chcesz zaszyfrować swój portfel?</translation>
</message>
<message>
@@ -236,13 +245,13 @@ Czy na pewno chcesz zaszyfrować swój portfel?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
+ <translation>Ostrzeżenie: Caps Lock jest włączony.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -289,305 +298,319 @@ Czy na pewno chcesz zaszyfrować swój portfel?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Portfel Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Synchronizacja z sieciÄ…...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Synchronizacja bloku łańcucha w toku.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>P&amp;odsumowanie</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Pokazuje ogólny zarys portfela</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transakcje</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>PrzeglÄ…daj historiÄ™ transakcji</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>Książka &amp;adresowa</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Edytuj listę zapisanych adresów i i etykiet</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>Odbie&amp;rz monety</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Pokaż listę adresów do otrzymywania płatności</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>Wy&amp;syłka monet</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Wyślij monety na adres bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>Podpisz wiado&amp;mość</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Udowodnij, że kontrolujesz adres</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Zakończ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Zamknij program</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;O %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Pokaż informację o Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>O &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Pokazuje informacje o Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Opcje...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Zmienia opcje konfiguracji bitcoina</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
- <translation>twórz &amp;Bitcoin</translation>
+ <translation>Otwórz &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Pokaż okno Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Eksportuj...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Eksportuj obecny widok do pliku</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>Zaszyfruj portf&amp;el</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Zaszyfruj lub odszyfruj portfel</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>Zmień h&amp;asło</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Zmień hasło użyte do szyfrowania portfela</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Plik</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>P&amp;referencje</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>Pomo&amp;c</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
- <translation type="unfinished"></translation>
+ <translation>Pasek zakładek</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Pasek akcji</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktywne połączenie do sieci Bitcoin</numerusform>
- <numerusform>%n aktywne połączenia do sieci Bitcoin</numerusform>
- <numerusform>%n aktywnych połączeń do sieci Bitcoin</numerusform>
- </translation>
+ <translation><numerusform>%n aktywne połączenie do sieci Bitcoin</numerusform><numerusform>%n aktywne połączenia do sieci Bitcoin</numerusform><numerusform>%n aktywnych połączeń do sieci Bitcoin</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Pobrano %1 z %2 bloków z historią transakcji.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Pobrano %1 bloków z historią transakcji.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n sekundÄ™ temu</numerusform>
- <numerusform>%n sekundy temu</numerusform>
- <numerusform>%n sekund temu</numerusform>
- </translation>
+ <translation><numerusform>%n sekundÄ™ temu</numerusform><numerusform>%n sekundy temu</numerusform><numerusform>%n sekund temu</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n minutÄ™ temu</numerusform>
- <numerusform>%n minuty temu</numerusform>
- <numerusform>%n minut temu</numerusform>
- </translation>
+ <translation><numerusform>%n minutÄ™ temu</numerusform><numerusform>%n minuty temu</numerusform><numerusform>%n minut temu</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n godzinÄ™ temu</numerusform>
- <numerusform>%n godziny temu</numerusform>
- <numerusform>%n godzin temu</numerusform>
- </translation>
+ <translation><numerusform>%n godzinÄ™ temu</numerusform><numerusform>%n godziny temu</numerusform><numerusform>%n godzin temu</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n dzień temu</numerusform>
- <numerusform>%n dni temu</numerusform>
- <numerusform>%n dni temu</numerusform>
- </translation>
+ <translation><numerusform>%n dzień temu</numerusform><numerusform>%n dni temu</numerusform><numerusform>%n dni temu</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Aktualny</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Åapanie bloków...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Ostatnio otrzymany blok została wygenerowany %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Wysyłanie...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Transakcja wysłana</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Transakcja przychodzÄ…ca</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished"></translation>
+ <translation>Data: %1
+Kwota: %2
+Typ: %3
+Adres: %4
+</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Portfel jest &lt;b&gt;zaszyfrowany&lt;/b&gt; i obecnie &lt;b&gt;niezablokowany&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Portfel jest &lt;b&gt;zaszyfrowany&lt;/b&gt; i obecnie &lt;b&gt;zablokowany&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -632,7 +655,7 @@ Address: %4
<message>
<location filename="../forms/editaddressdialog.ui" line="52"/>
<source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
- <translation type="unfinished"></translation>
+ <translation>Ten adres jest skojarzony z wpisem w książce adresowej. Może być zmodyfikowany jedynie dla adresów wysyłających.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="20"/>
@@ -642,17 +665,17 @@ Address: %4
<message>
<location filename="../editaddressdialog.cpp" line="24"/>
<source>New sending address</source>
- <translation type="unfinished"></translation>
+ <translation>Nowy adres wysyłania</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="27"/>
<source>Edit receiving address</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj adres odbioru</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="31"/>
<source>Edit sending address</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj adres wysyłania</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="91"/>
@@ -750,7 +773,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation type="unfinished"></translation>
+ <translation>Opcjonalna prowizja za transakcje za kB, wspomaga ona szybkość przebiegu transakcji. Większość transakcji jest 1 kB. Zalecana prowizja 0.01 .</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -760,7 +783,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Opcjonalna prowizja za transakcje za każdy kB, służy temu by twoje transakcje przebiegały szybko. Większość transakcji jest rozmiarów 1 kB. Prowizja zalecana 0.01.</translation>
+ <translation>Opcjonalna prowizja za transakcje za kB, wspomaga ona szybkość przebiegu transakcji. Większość transakcji jest 1 kB. Zalecana prowizja 0.01 .</translation>
</message>
</context>
<context>
@@ -768,89 +791,89 @@ Address: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Wiadomość</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Adres do wysłania należności do (np. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Adres do wysłania należności do (np. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz adres z książki adresowej</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Wklej adres ze schowka</translation>
+ <translation>Wklej adres ze schowka</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Wprowadź wiadomość, którą chcesz podpisać, tutaj</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Kliknij &quot;Podpisz Wiadomość&quot; żeby uzyskać podpis</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Podpisz wiadomość aby dowieść, że ten adres jest twój</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>Podpi&amp;sz Wiadomość</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Skopiuj aktualnie wybrany adres do schowka</translation>
+ <translation>Skopiuj aktualnie wybrany adres do schowka</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Kopiuj do schowka</translation>
+ <translation>&amp;Kopiuj do schowka</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>BÅ‚Ä…d podpisywania</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 nie jest poprawnym adresem.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Klucz prywatny dla %1 jest niedostępny.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Podpisywanie nie powiodło się.</translation>
</message>
</context>
<context>
@@ -876,7 +899,7 @@ Address: %4
<message>
<location filename="../forms/overviewpage.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Formularz</translation>
</message>
<message>
<location filename="../forms/overviewpage.ui" line="40"/>
@@ -913,7 +936,7 @@ Address: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -947,42 +970,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished"></translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Kod QR</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Prośba o płatność</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Kwota:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Etykieta:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Wiadomość:</translation>
+ <translation>Wiadomość:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>Zapi&amp;sz jako...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1002,7 +1035,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="64"/>
<source>Send to multiple recipients at once</source>
- <translation type="unfinished"></translation>
+ <translation>Wyślij do wielu odbiorców na raz</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="67"/>
@@ -1012,7 +1045,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść wszystkie pola transakcji</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1037,7 +1070,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="147"/>
<source>&amp;Send</source>
- <translation type="unfinished"></translation>
+ <translation>Wy&amp;syłka</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="94"/>
@@ -1092,7 +1125,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../sendcoinsdialog.cpp" line="154"/>
<source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1100,7 +1133,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Formularz</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="29"/>
@@ -1110,7 +1143,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="42"/>
<source>Pay &amp;To:</source>
- <translation type="unfinished"></translation>
+ <translation>Płać &amp;Do:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="66"/>
@@ -1121,7 +1154,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="75"/>
<source>&amp;Label:</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Etykieta:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="93"/>
@@ -1164,12 +1197,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="18"/>
<source>Open for %1 blocks</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz dla %1 bloków</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="20"/>
<source>Open until %1</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz do %1</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="26"/>
@@ -1194,7 +1227,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="52"/>
<source>, has not been successfully broadcast yet</source>
- <translation type="unfinished"></translation>
+ <translation>, nie został jeszcze pomyślnie wyemitowany</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="54"/>
@@ -1214,7 +1247,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="67"/>
<source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Źródło:&lt;/b&gt; Wygenerowano&lt;br&gt;</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="73"/>
@@ -1250,12 +1283,12 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="190"/>
<location filename="../transactiondesc.cpp" line="207"/>
<source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Przypisy:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="133"/>
<source>(%1 matures in %2 more blocks)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="137"/>
@@ -1267,7 +1300,7 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="189"/>
<location filename="../transactiondesc.cpp" line="204"/>
<source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Debet:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="195"/>
@@ -1292,12 +1325,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>ID transakcji:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
<source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="unfinished"></translation>
+ <translation>Wygenerowane monety muszą zaczekać 120 bloków zanim będzie można je wydać. Kiedy wygenerowałeś ten blok, został on wyemitowany do sieci, aby dodać go do łańcucha bloków. Jeśli to się nie powiedzie nie zostanie on zaakceptowany i wygenerowanych monet nie będzie można wysyłać. Może się to czasami zdarzyć jeśli inny węzeł wygeneruje blok tuż przed tobą.</translation>
</message>
</context>
<context>
@@ -1310,7 +1343,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/transactiondescdialog.ui" line="20"/>
<source>This pane shows a detailed description of the transaction</source>
- <translation type="unfinished"></translation>
+ <translation>Ten panel pokazuje szczegółowy opis transakcji</translation>
</message>
</context>
<context>
@@ -1338,16 +1371,12 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
- </translation>
+ <translation><numerusform>Otwórz dla %n bloku</numerusform><numerusform>Otwórz dla %n bloków</numerusform><numerusform>Otwórz dla %n bloków</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
<source>Open until %1</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz do %1</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="280"/>
@@ -1367,16 +1396,12 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Wydobyta kwota będzie dostępna za %n blok</numerusform>
- <numerusform>Wydobyta kwota będzie dostępna za %n bloków</numerusform>
- <numerusform>Wydobyta kwota będzie dostępna za %n bloki</numerusform>
- </translation>
+ <translation><numerusform>Wydobyta kwota będzie dostępna za %n blok</numerusform><numerusform>Wydobyta kwota będzie dostępna za %n bloków</numerusform><numerusform>Wydobyta kwota będzie dostępna za %n bloki</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
<source>This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="unfinished"></translation>
+ <translation>Ten blok nie został odebrany przez jakikolwiek inny węzeł i prawdopodobnie nie zostanie zaakceptowany!</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="304"/>
@@ -1391,11 +1416,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Odebrano z IP</translation>
+ <translation>Odebrano od</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1403,13 +1424,9 @@ p, li { white-space: pre-wrap; }
<translation>Wysłano do</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Wysłano na IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
- <translation type="unfinished"></translation>
+ <translation>Płatność do siebie</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="356"/>
@@ -1419,7 +1436,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="394"/>
<source>(n/a)</source>
- <translation type="unfinished"></translation>
+ <translation>(brak)</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="593"/>
@@ -1429,7 +1446,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="595"/>
<source>Date and time that the transaction was received.</source>
- <translation type="unfinished"></translation>
+ <translation>Data i czas odebrania transakcji.</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="597"/>
@@ -1450,163 +1467,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Wszystko</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Dzisiaj</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>W tym tygodniu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>W tym miesiÄ…cu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>W zeszłym miesiącu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>W tym roku</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Zakres...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Otrzymane przez</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Wysłano do</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
- <translation type="unfinished"></translation>
+ <translation>Do siebie</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Wydobyto</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Inne</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Wprowadź adres albo etykietę żeby wyszukać</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Min suma</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Kopiuj adres</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Kopiuj etykietÄ™</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiuj kwotÄ™</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Edytuj etykietÄ™</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Pokaż szczegóły...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Eksportuj Dane Transakcyjne</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>CSV (rozdzielany przecinkami)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Potwierdzony</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Data</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Typ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Etykieta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adres</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Kwota</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
- <translation type="unfinished"></translation>
+ <translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>BÅ‚Ä…d podczas eksportowania</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>BÅ‚Ä…d zapisu do pliku %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Zakres:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>do</translation>
</message>
@@ -1614,7 +1631,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Wysyłanie...</translation>
</message>
@@ -1634,7 +1651,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="5"/>
<source>Send command to -server or bitcoind</source>
- <translation type="unfinished"></translation>
+ <translation>Wyślij polecenie do -server lub bitcoind</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="6"/>
@@ -1679,12 +1696,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
<source>Specify data directory</source>
- <translation type="unfinished"></translation>
+ <translation>Wskaż folder danych</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
<source>Specify connection timeout (in milliseconds)</source>
- <translation type="unfinished"></translation>
+ <translation>Wskaż czas oczekiwania bezczynności połączenia (w milisekundach)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
@@ -1694,17 +1711,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="17"/>
<source>Allow DNS lookups for addnode and connect</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Nasłuchuj połączeń na &lt;port&gt; (domyślnie: 8333 lub testnet: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Utrzymuj maksymalnie &lt;n&gt; połączeń z peerami (domyślnie: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1724,27 +1741,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maksymalny bufor odbioru na połączenie, &lt;n&gt;*1000 bajtów (domyślnie: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maksymalny bufor wysyłu na połączenie, &lt;n&gt;*1000 bajtów (domyślnie: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1759,17 +1776,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation type="unfinished"></translation>
+ <translation>Prowizja za kB dodawana do wysyłanej transakcji</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
<source>Accept command line and JSON-RPC commands</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="34"/>
<source>Run in the background as a daemon and accept commands</source>
- <translation type="unfinished"></translation>
+ <translation>Uruchom w tle jako daemon i przyjmuj polecenia</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="35"/>
@@ -1779,27 +1796,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
<source>Username for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa użytkownika dla połączeń JSON-RPC</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="41"/>
@@ -1809,12 +1826,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="42"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
- <translation type="unfinished"></translation>
+ <translation>Nasłuchuj połączeń JSON-RPC na &lt;port&gt; (domyślnie: 8332)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="43"/>
<source>Allow JSON-RPC connections from specified IP address</source>
- <translation type="unfinished"></translation>
+ <translation>Przyjmuj połączenia JSON-RPC ze wskazanego adresu IP</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="44"/>
@@ -1824,23 +1841,24 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="45"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Ustaw rozmiar puli kluczy na &lt;n&gt; (domyślnie: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="46"/>
<source>Rescan the block chain for missing wallet transactions</source>
- <translation type="unfinished"></translation>
+ <translation>Przeskanuj blok łańcuchów żeby znaleźć zaginione transakcje portfela</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="47"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
- <translation type="unfinished"></translation>
+ <translation>
+opcje SSL: (sprawdź Bitcoin Wiki dla instrukcje konfiguracji SSL)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="50"/>
<source>Use OpenSSL (https) for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Użyj OpenSSL (https) do połączeń JSON-RPC</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="51"/>
@@ -1860,12 +1878,12 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="56"/>
<source>This help message</source>
- <translation type="unfinished"></translation>
+ <translation>Ta wiadomość pomocy</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="57"/>
<source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można zablokować folderu danych %s. Bitcoin prawdopodobnie już działa.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="60"/>
@@ -1875,36 +1893,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>BÅ‚Ä…d Å‚adowania addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>BÅ‚Ä…d Å‚adownia blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>BÅ‚Ä…d Å‚adowania wallet.dat: Uszkodzony portfel</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>BÅ‚Ä…d Å‚adowania wallet.dat: Portfel wymaga nowszej wersji Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Portfel wymaga przepisania: zrestartuj Bitcoina żeby ukończyć</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">BÅ‚Ä…d wczytywania addr.dat </translation>
+ <translation>BÅ‚Ä…d Å‚adowania wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1912,27 +1926,11 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>Åadowanie indeksu bloku...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">BÅ‚Ä…d wczytywania blkindex.dat </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Wczytywanie portfela...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Błąd wczytywania wallet.dat: Portfel został uszkodzony </translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">BÅ‚Ä…d wczytywania wallet.dat: Portfel wymaga nowszej wersji Bitcoina </translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">BÅ‚Ä…d wczytywania wallet.dat </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Ponowne skanowanie...</translation>
@@ -1950,12 +1948,12 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="72"/>
<source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>Nieprawidłowa kwota dla -paytxfee=&lt;amount&gt;</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="73"/>
<source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
- <translation type="unfinished"></translation>
+ <translation>Ostrzeżenie: -paytxfee jest bardzo duży. To jest prowizja za transakcje, którą płacisz, gdy wysyłasz monety.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="76"/>
@@ -1965,349 +1963,17 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="77"/>
<source>Warning: Disk space is low </source>
- <translation>Uwaga: kończy się miejsce na dysku</translation>
+ <translation>Ostrzeżenie: kończy się miejsce na dysku</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="78"/>
<source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Wprowadź aktualne hasło dla portfela.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Hasło</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Proszę podać aktualne hasło do odszyfrowania portfela.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Podane hasło do odszyfrowania portfela jest niepoprawne.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Status</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Data</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Opis</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/offline?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/niezatwierdzony</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d potwierdzeń</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Od:</translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Otrzymane przez: </translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Do:</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(niepołączony)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d połączeń %d bloków %d transakcji</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Portfel już zaszyfrowano.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Wprowadź nowe hasło dla portfela.
-Proszę użyć hasło zawierające 10 bądź więcej różnych znaków lub 8 bądź więcej słów.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Błąd: Wprowadzone hasło jest za krótkie.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">UWAGA: Jeśli zaszyfrujesz swój portfel i zgubisz hasło, wtedy STRACISZ WSZYSTKIE SWOJE BITMONETY!
-Czy na pewno chcesz zaszyfrować portfel?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Proszę powtórzyć nowe hasło do portfela.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Błąd: wprowadzone hasła nie są takie same.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Zaszyfrowanie portfela nie powiodło się.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Portfel jest niezaszyfrowany, proszę pierw go zaszyfrować.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Podaj nowe hasło do portfela.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Podaj ponownie nowe hasło do portfela.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Hasło Portfela Zmieniono.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Nowy adres odbiorczy</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Powinieneś użyć nowego adresu dla każdej odbieranej płatności.
-
-Etykieta</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Status:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, emitowany przez %d węzeł</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, emitowany przez %d węzły</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Data:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Od:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">nieznany</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Do:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (twoje, etykieta: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (twoje)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(niezaakceptowane)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Prowizja za transakcje:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Kwota netto:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Wiadomość:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Komentarz:</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Nie można zapisać pliku autostart/bitcoin.dekstop</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Główny</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">Uruchom Bitcoin razem z &amp;systemem okien</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;amp; Minimalizuj w pobliżu</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">wersja %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">BÅ‚Ä…d w kwocie </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Wyślij płatność</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Kwota przekracza saldo </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Suma przekracza twoje saldo, gdy doliczymy </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> prowizji transakcyjnej </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Płatność wysłano </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Wysyłanie...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Nieprawidłowy adres </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Wysyłanie %s do %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ANULOWANO</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Anulowano</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Transfer anulowano </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">BÅ‚Ä…d: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Niewystarczające środki</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">ÅÄ…czenie...</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Proszenie o klucz publiczny...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Otrzymano klucz publiczny...</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transakcja przerwana</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Utracono połączenie, transakcja anulowana</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Wysyłanie płatności...</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Oczekiwanie na potwierdzenia...</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Nazwa</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adres</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Etykieta</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Adres Bitcoin</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">To jest jeden z twoich własnych adresów do odbioru płatności i nie można go wprowadzić do książki adresowej. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Edytuj adres</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Edytuj EtykietÄ™ Adresu</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Dodaj Adres</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (niepołączony)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Otwórz Bitcoin</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;pcje...</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Program uległ awarii i zostanie zakończony. </translation>
+ <translation>Nie można przywiązać portu %d na tym komputerze. Bitcoin prawdopodobnie już działa.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
- <translation type="unfinished"></translation>
+ <translation>Ostrzeżenie: Proszę sprawdzić poprawność czasu i daty na tym komputerze. Jeśli czas jest zły Bitcoin może nie działać prawidłowo.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="84"/>
@@ -2315,16 +1981,4 @@ Etykieta</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts
index a28c0d81a7..69568f4a94 100644
--- a/src/qt/locale/bitcoin_pt_BR.ts
+++ b/src/qt/locale/bitcoin_pt_BR.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="pt_BR">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="pt_BR" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,7 +21,7 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -51,7 +49,7 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="60"/>
<source>&amp;New Address...</source>
- <translation>&amp;Novo endereço ...</translation>
+ <translation>&amp;amp; Novo endereço ...</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="71"/>
@@ -61,22 +59,22 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="74"/>
<source>&amp;Copy to Clipboard</source>
- <translation>&amp;Copie para a área de transferência do sistema</translation>
+ <translation>&amp;amp; Copie para a área de transferência do sistema</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -86,47 +84,47 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="113"/>
<source>&amp;Delete</source>
- <translation>&amp;Excluir</translation>
+ <translation>&amp;amp; Excluir</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Copy address</translation>
+ <translation>Copy address</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Copy label</translation>
+ <translation>Copy label</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Exportação de dados do Catálogo de Endereços</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Arquivo separado por vírgulas (*. csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Erro ao exportar</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
- <translation type="unfinished">Could not write to file %1.</translation>
+ <translation>Could not write to file %1.</translation>
</message>
</context>
<context>
@@ -235,17 +233,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Lembre-se que sua carteira criptografada não poderá proteger totalmente os seus bitcoins de serem roubados por softwares maldosos que infectem seu computador.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -292,319 +286,318 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Carteira Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Sincronizando com a rede...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Sincronização da corrente de blocos em andamento</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Visão geral</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Mostrar visão geral da carteira</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transações</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Navegar pelo histórico de transações</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Catálogo de endereços</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Editar a lista de endereços e rótulos</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Receber moedas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Mostrar a lista de endereços para receber pagamentos</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Enviar moedas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Enviar moedas para um endereço bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>E&amp;xit</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Sair da aplicação</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;About %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Mostrar informação sobre Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Opções...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Modificar opções de configuração para bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Abrir &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Mostrar a janela Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Exportar...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Export para arquivo</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Criptografar Carteira</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Criptografar ou decriptogravar carteira</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Mudar frase de segurança</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Mudar a frase de segurança utilizada na criptografia da carteira</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
- <translation>&amp;Arquivo</translation>
+ <translation>&amp;amp; Arquivo</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>E configurações</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
- <translation>&amp;Ajuda</translation>
+ <translation>&amp;amp; Ajuda</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Barra de ferramentas</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Barra de ações</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n conexão ativa na rede Bitcoin</numerusform>
- <numerusform>%n conexões ativas na rede Bitcoin</numerusform>
- </translation>
+ <translation><numerusform>%n conexão ativa na rede Bitcoin</numerusform><numerusform>%n conexões ativas na rede Bitcoin</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Carregados %1 de %2 blocos do histórico de transações.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Carregados %1 blocos do histórico de transações.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n segundo atrás</numerusform>
- <numerusform>%n segundos atrás</numerusform>
- </translation>
+ <translation><numerusform>%n segundo atrás</numerusform><numerusform>%n segundos atrás</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n minutos atrás</numerusform>
- <numerusform>%n minutos atrás</numerusform>
- </translation>
+ <translation><numerusform>%n minutos atrás</numerusform><numerusform>%n minutos atrás</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n hora atrás</numerusform>
- <numerusform>%n horas atrás</numerusform>
- </translation>
+ <translation><numerusform>%n hora atrás</numerusform><numerusform>%n horas atrás</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n dia atrás</numerusform>
- <numerusform>%n dias atrás</numerusform>
- </translation>
+ <translation><numerusform>%n dia atrás</numerusform><numerusform>%n dias atrás</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Atualizado</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Recuperando o atraso ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Last received block was generated %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Sending...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Sent transaction</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Incoming transaction</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Date: %1
-Amount: %2
-Type: %3
-Address: %4
-
- {1
-?} {2
-?} {3
-?}</translation>
+ <translation>Data: %1
+Quantidade: %2
+Tipo: %3
+Endereço: %4</translation>
</message>
<message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Date: %1
-Amount: %2
-Type: %3
-Address: %4
-</translation>
- </message>
- <message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<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>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<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>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -767,7 +760,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -777,7 +770,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -785,89 +778,89 @@ Address: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Escolher endereço </translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Paste address from clipboard</translation>
+ <translation>Paste address from clipboard</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Copie o endereço selecionado para a área de transferência do sistema</translation>
+ <translation>Copie o endereço selecionado para a área de transferência do sistema</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;amp; Copie para a área de transferência do sistema</translation>
+ <translation>&amp;amp; Copie para a área de transferência do sistema</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -930,7 +923,7 @@ Address: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -964,42 +957,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Diálogo</translation>
+ <translation>Diálogo</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Message:</translation>
+ <translation>Message:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1029,7 +1032,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1309,7 +1312,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1355,10 +1358,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Open for %n block</numerusform>
- <numerusform>Open for %n blocks</numerusform>
- </translation>
+ <translation><numerusform>Open for %n block</numerusform><numerusform>Open for %n blocks</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1383,10 +1383,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Mined balance will be available in %n more block</numerusform>
- <numerusform>Mined balance will be available in %n more blocks</numerusform>
- </translation>
+ <translation><numerusform>Mined balance will be available in %n more block</numerusform><numerusform>Mined balance will be available in %n more blocks</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1406,11 +1403,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Received from IP</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1418,10 +1411,6 @@ p, li { white-space: pre-wrap; }
<translation>Sent to</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Sent to IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Payment to yourself</translation>
@@ -1465,163 +1454,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>All</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Today</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>This week</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>This month</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Last month</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>This year</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Range...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Received with</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Sent to</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>To yourself</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Mined</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Other</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Enter address or label to search</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Min amount</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Copy address</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Copy label</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Edit label</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Show details...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Export Transaction Data</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Comma separated file (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Confirmed</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Date</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Type</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Label</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Address</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Amount</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Error exporting</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Could not write to file %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Range:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>to</translation>
</message>
@@ -1629,7 +1618,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Sending...</translation>
</message>
@@ -1727,12 +1716,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1755,27 +1744,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1792,8 +1781,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>Fee per kB to add to transactions you send
-</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1816,22 +1804,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1926,37 +1914,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Error loading addr.dat
-</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1964,31 +1947,11 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)
<translation>Loading block index...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Error loading blkindex.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Loading wallet...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Error loading wallet.dat: Wallet corrupted
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Error loading wallet.dat: Wallet requires newer version of Bitcoin
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Error loading wallet.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Rescanning...</translation>
@@ -2029,472 +1992,6 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)
<translation>Unable to bind to port %d on this computer. Bitcoin is probably already running.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Enter the current passphrase to the wallet.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Passphrase</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Please supply the current wallet decryption passphrase.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">The passphrase entered for the wallet decryption was incorrect.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Status</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Date</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Description</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debit</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Credit</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Open for %d blocks</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Open until %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/offline?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/unconfirmed</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d confirmations</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Generated</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Generated (%s matures in %d more blocks)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Generated (not accepted)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">From: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Received with: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Payment to yourself</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">To: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Generating</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(not connected)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d connections %d blocks %d transactions</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Wallet already encrypted.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Error: The supplied passphrase was too short.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Please re-enter your new wallet passphrase.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Error: the supplied passphrases didn&apos;t match.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Wallet encryption failed.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Wallet is unencrypted, please encrypt it first.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Enter the new passphrase for the wallet.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Re-enter the new passphrase for the wallet.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Wallet Passphrase Changed.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">New Receiving Address</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">You should use a new address for each payment you receive.
-
-Label</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Status:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, has not been successfully broadcast yet</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, broadcast through %d node</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, broadcast through %d nodes</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Date:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;From:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">unknown</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;To:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (yours, label: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (yours)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Credit:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s matures in %d more blocks)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(not accepted)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Debit:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Transaction fee:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Net amount:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Message:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Comment:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Cannot write autostart/bitcoin.desktop file</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Main</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Start Bitcoin on window system startup</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;Minimize on close</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">version %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Error in amount </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Send Coins</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Amount exceeds your balance </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Total exceeds your balance when the </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> transaction fee is included </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Payment sent </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Sending...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Invalid address </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Sending %s to %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">CANCELLED</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Cancelled</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Transfer cancelled </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Error: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Insufficient funds</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Connecting...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Unable to connect</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Requesting public key...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Received public key...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Recipient is not accepting transactions sent by IP address</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Transfer was not accepted</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Invalid response received</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Creating transaction...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Transaction creation failed</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Transaction aborted</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Lost connection, transaction cancelled</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Sending payment...</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 type="obsolete">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>Waiting for confirmation...</source>
- <translation type="obsolete">Waiting for confirmation...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Payment was sent, but an invalid response was received</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Payment completed</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Name</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Address</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Label</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin Address</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">This is one of your own addresses for receiving payments and cannot be entered in the address book. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Edit Address</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Edit Address Label</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Add Address</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Generating</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (not connected)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Open Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Send Bitcoins</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp;ptions...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">E&amp;xit</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Program has crashed and will terminate. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</translation>
@@ -2505,16 +2002,4 @@ but the comment information will be blank.</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_ro_RO.ts b/src/qt/locale/bitcoin_ro_RO.ts
index e245fde667..17c71e48f6 100644
--- a/src/qt/locale/bitcoin_ro_RO.ts
+++ b/src/qt/locale/bitcoin_ro_RO.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="ro_RO">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="ro_RO" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,27 +21,7 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoin Developers
-
-Acesta este un program informatic experimental.
-Distribuit sub licenţa software MIT/X11; Mai multe detalii in documentul license.txt sau la http://www.opensource.org/licenses/mit-license.php.
-
-Acest program integrează software dezvoltat de OpenSSL Project pentru a fi folosit in OpenSSL Toolkit (http://www.openssl.org/) şi software criptographic conceput de Eric Young (eay@cryptsoft.com) şi software UPnP conceput de Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoin Developers
-
-Acesta este un program informatic experimental.
-Distribuit sub licenţa software MIT/X11; Mai multe detalii in documentul license.txt sau la http://www.opensource.org/licenses/mit-license.php.
-
-Acest program integrează software dezvoltat de OpenSSL Project pentru a fi folosit in OpenSSL Toolkit (http://www.openssl.org/) şi software criptographic conceput de Eric Young (eay@cryptsoft.com) şi software UPnP conceput de Thomas Bernard.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -86,17 +64,17 @@ Acest program integrează software dezvoltat de OpenSSL Project pentru a fi folo
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -109,42 +87,42 @@ Acest program integrează software dezvoltat de OpenSSL Project pentru a fi folo
<translation>&amp;Șterge</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Copiază adresa</translation>
+ <translation>Copiază adresa</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Copiază eticheta</translation>
+ <translation>Copiază eticheta</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Exportă Lista de adrese</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Fisier csv: valori separate prin virgulă (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Eroare la exportare.</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Eroare la scrierea în fişerul %1.</translation>
</message>
@@ -256,13 +234,13 @@ Sunteţi sigur că doriţi să criptaţi portofelul electronic?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -309,322 +287,315 @@ Sunteţi sigur că doriţi să criptaţi portofelul electronic?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Portofel electronic Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Se sincronizează cu reţeaua...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Se sincronizează blocurile.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Detalii</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Afişează detalii despre portofelul electronic</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Tranzacţii</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Istoricul tranzacţiilor</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Lista de adrese</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Editaţi lista de adrese şi etichete.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;Primiţi Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Lista de adrese pentru recepţionarea plăţilor</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;Trimiteţi Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>&amp;Trimiteţi Bitcoin către o anumită adresă</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
- <translation type="unfinished">E&amp; IeÅŸire</translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Părăsiţi aplicaţia</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Informaţii despre Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Setări...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Modifică setările pentru Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Deschide &amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Afişează fereastra Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Exportă...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Exportă fereastra curentă într-un fişier</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>Criptează portofelul electronic</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Criptează şi decriptează portofelul electronic</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Schimbă parola</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>&amp;Schimbă parola folosită pentru criptarea portofelului electronic</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;FiÅŸier</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Setări</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Ajutor</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Bara de ferestre de lucru</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Bara de acţiuni</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n active connections to Bitcoin network</numerusform>
- <numerusform>%n active connections to Bitcoin network</numerusform>
- <numerusform>%n active connections to Bitcoin network</numerusform>
- </translation>
+ <translation><numerusform>%n active connections to Bitcoin network</numerusform><numerusform>%n active connections to Bitcoin network</numerusform><numerusform>%n active connections to Bitcoin network</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>S-au descărcat %1 din %2 blocuri din istoricul tranzaciilor.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>S-au descărcat %1 blocuri din istoricul tranzaciilor.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n seconds ago</numerusform>
- <numerusform>%n seconds ago</numerusform>
- <numerusform>%n seconds ago</numerusform>
- </translation>
+ <translation><numerusform>%n seconds ago</numerusform><numerusform>%n seconds ago</numerusform><numerusform>%n seconds ago</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>Acum %n minut</numerusform>
- <numerusform>Acum %n minute</numerusform>
- <numerusform>Acum %n minute</numerusform>
- </translation>
+ <translation><numerusform>Acum %n minut</numerusform><numerusform>Acum %n minute</numerusform><numerusform>Acum %n minute</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>Acum %n oră</numerusform>
- <numerusform>Acum %n ore</numerusform>
- <numerusform>Acum %n ore</numerusform>
- </translation>
+ <translation><numerusform>Acum %n oră</numerusform><numerusform>Acum %n ore</numerusform><numerusform>Acum %n ore</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>Acum %n zi</numerusform>
- <numerusform>Acum %n zile</numerusform>
- <numerusform>Acum %n zile</numerusform>
- </translation>
+ <translation><numerusform>Acum %n zi</numerusform><numerusform>Acum %n zile</numerusform><numerusform>Acum %n zile</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Actualizat</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Se actualizează...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Ultimul bloc primit a fost generat %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Această tranzacţie depăşeşte limita. Puteţi iniţia tranzacţia platind un comision de %1, de care vor beneficia nodurile care procesează tranzacţia şi ajută la menţinerea reţelei. Acceptaţi plata comisionului?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Expediază...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Tranzacţie expediată</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Tranzacţie recepţionată</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Data: %1
-Suma: %2
-Tipul: %3
-Adresa: %4
- {1
-?} {2
-?} {3
-?}</translation>
+ <translation type="unfinished"/>
</message>
<message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Data: %1
-Suma: %2
-Tipul: %3
-Adresa: %4</translation>
- </message>
- <message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Portofelul electronic este &lt;b&gt;criptat&lt;/b&gt; iar in momentul de faţă este &lt;b&gt;deblocat&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Portofelul electronic este &lt;b&gt;criptat&lt;/b&gt; iar in momentul de faţă este &lt;b&gt;blocat&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -787,7 +758,7 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Comision opţional al tranzacţiei, per kB, cu rolul de a asigura procesarea rapidă a tranzacţiilor. Majoritatea tranzacţiilor au 1 kB. Valoarea recomandată a comisionului este de 0.01.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -797,7 +768,7 @@ Adresa: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Comision opţional al tranzacţiei, per kB, cu rolul de a asigura procesarea rapidă a tranzacţiilor. Majoritatea tranzacţiilor au 1 kB. Valoarea recomandată a comisionului este de 0.01.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -805,89 +776,89 @@ Adresa: %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Adresa către care se va face plata (de exemplu: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Adresa către care se va face plata (de exemplu: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Alegeţi adresa din Listă</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Lipiţi adresa copiată in clipboard.</translation>
+ <translation>Lipiţi adresa copiată in clipboard.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Copiați adresa selectată în clipboard</translation>
+ <translation>Copiați adresa selectată în clipboard</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Copiere în Clipboard</translation>
+ <translation>&amp;Copiere în Clipboard</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -950,7 +921,7 @@ Adresa: %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -984,42 +955,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialog</translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Mesaj:</translation>
+ <translation>Mesaj:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1049,7 +1030,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1168,7 +1149,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="103"/>
<source>Choose address from address book</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="113"/>
@@ -1329,7 +1310,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1375,11 +1356,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Deschis pentru for %n bloc</numerusform>
- <numerusform>Deschis pentru %n blocuri</numerusform>
- <numerusform>Deschis pentru %n blocuri</numerusform>
- </translation>
+ <translation><numerusform>Deschis pentru for %n bloc</numerusform><numerusform>Deschis pentru %n blocuri</numerusform><numerusform>Deschis pentru %n blocuri</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1404,11 +1381,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Soldul de bitcoin produs va fi disponibil după încă %n bloc</numerusform>
- <numerusform>Soldul de bitcoin produs va fi disponibil după încă %n blocuri</numerusform>
- <numerusform>Soldul de bitcoin produs va fi disponibil după încă %n blocuri</numerusform>
- </translation>
+ <translation><numerusform>Soldul de bitcoin produs va fi disponibil după încă %n bloc</numerusform><numerusform>Soldul de bitcoin produs va fi disponibil după încă %n blocuri</numerusform><numerusform>Soldul de bitcoin produs va fi disponibil după încă %n blocuri</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1428,11 +1401,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Primit de la IP-ul</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1440,10 +1409,6 @@ p, li { white-space: pre-wrap; }
<translation>Trimis către</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Trimis către IP-ul</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Plată către un cont propriu</translation>
@@ -1487,163 +1452,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Toate</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Astăzi</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Săptămâna aceasta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Luna aceasta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Luna trecută</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Anul acesta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>ÃŽntre...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Recepţionat cu...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Trimis către</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Către propriul cont</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Produs</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Altele</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Introduceţi adresa sau eticheta pentru căutare</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Cantitatea produsă</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Copiază adresa</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Copiază eticheta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Editează eticheta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Afişează detalii...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Exportă tranzacţiile</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Fişier text cu valori separate prin virgulă (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Confirmat</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Data</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Tipul</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Etichetă</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adresă</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Sumă</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Eroare în timpul exportului</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Fisierul %1 nu a putut fi accesat pentru scriere.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Interval:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>către</translation>
</message>
@@ -1651,7 +1616,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Se expediază...</translation>
</message>
@@ -1666,7 +1631,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="4"/>
<source>Usage:</source>
- <translation type="unfinished"></translation>
+ <translation>Uz:</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="5"/>
@@ -1691,735 +1656,313 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
<source>Specify configuration file (default: bitcoin.conf)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
<source>Specify pid file (default: bitcoind.pid)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
<source>Generate coins</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="12"/>
<source>Don&apos;t generate coins</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="13"/>
<source>Start minimized</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
<source>Specify data directory</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
<source>Specify connection timeout (in milliseconds)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
<source>Connect through socks4 proxy</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="17"/>
<source>Allow DNS lookups for addnode and connect</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
<source>Add a node to connect to</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="21"/>
<source>Connect only to the specified node</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="22"/>
<source>Don&apos;t accept connections from outside</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
<source>Don&apos;t attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="31"/>
<source>Attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
<source>Accept command line and JSON-RPC commands</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="34"/>
<source>Run in the background as a daemon and accept commands</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="35"/>
<source>Use the test network</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
<source>Username for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="41"/>
<source>Password for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="42"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="43"/>
<source>Allow JSON-RPC connections from specified IP address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="44"/>
<source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="45"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="46"/>
<source>Rescan the block chain for missing wallet transactions</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="47"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="50"/>
<source>Use OpenSSL (https) for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="51"/>
<source>Server certificate file (default: server.cert)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="52"/>
<source>Server private key (default: server.pem)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="53"/>
<source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="56"/>
<source>This help message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="57"/>
<source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="60"/>
<source>Loading addresses...</source>
- <translation type="unfinished"></translation>
+ <translation>ÃŽncarc adrese...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
<source>Loading block index...</source>
- <translation type="unfinished"></translation>
+ <translation>ÃŽncarc indice bloc...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
- <translation type="unfinished"></translation>
+ <translation>ÃŽncarc portofel...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
- <translation type="unfinished"></translation>
+ <translation>Rescanez...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="70"/>
<source>Done loading</source>
- <translation type="unfinished"></translation>
+ <translation>Încărcare terminată</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="71"/>
<source>Invalid -proxy address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="72"/>
<source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="73"/>
<source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="76"/>
<source>Error: CreateThread(StartNode) failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="77"/>
<source>Warning: Disk space is low </source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="78"/>
<source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Parola introdusă pentru decriptarea portofelului electronic a fost incorectă.</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Data</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Descriere</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Debit</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Credit</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/offline?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/neconfirmat</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d confirmări</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Generat</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Generat - Atenţie: Acest bloc nu a fost primit de niciun alt nod şi probabil nu va fi acceptat!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Generat (neacceptat)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">De la: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Recepţionat cu: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Plată către o adresă personală</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">To: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> Generează</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(fară conexiune)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d conexiuni %d blocuri %d tranzacţii</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Portofelul electronic este deja criptat.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Introduceţi noua parolă a portofelului electronic.
-Sunt necesare minimum 10 caractere aleatoare sau minimum 8 cuvinte.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Eroare: Parola este prea scurtă.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">ATENŢIE: Dacă pierdeţi parola portofelului elctronic, VEŢI PIERDE ÎNTREAGA SUMĂ DE BITCOIN!
-Sunteţi sigur că doriţi criptarea portofelului electronic?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Vă rugăm să introduceţi încă odată noua parola a portofelului electronic.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Eroare: parolele introduse diferă.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Criptarea portofelului electronic a eÅŸuat.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Portofelul electronic este criptat.
-Vă rugăm să ţineţi cont de faptul că prin criptarea portofelului elctronic nu se elimina riscul de a pierde conţinutul de bitcoin ca urmare a infectării computerului cu software rău intenţionat.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Portofelul electronic nu este criptat, vă rugăm să-l criptaţi mai intâi.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Introduceţi noua parolă pentru portofelul electronic.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Reintroduceţi noua parolă pentru portofelul electronic.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Parola portofelului electronic a fost schimbată.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Noua adresă de primire</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Se recomandă folosirea unei noi adrese pentru fiecare plată recepţionată.
-
-Etichetă</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Stare:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, nu a fost încă publicată</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, se difuzează prin nodul %d</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, se difuzează prin nodurile %d</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Data:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Sursa:&lt;/b&gt; Generat&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;De la:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">necunoscut</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Destinatar:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (propriu, eticheta: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (propriu)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Credit:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s se definitivează peste %d blocuri)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(neacceptat)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Debit:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Comisionul tranzacţiei:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Suma netă:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Mesaj:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Comentarii:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Monedele bitcoin generate se pot cheltui dupa parcurgerea a 120 de blocuri. După ce a fost generat, s-a propagat în reţea, urmând să fie adăugat lanţului de blocuri. Dacă nu poate fi inclus in lanţ, starea sa va deveni &quot;neacceptat&quot; si nu va putea fi folosit la tranzacţii. Acest fenomen se întâmplă atunci cand un alt nod a generat un bloc la o diferenţa de câteva secunde.</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Principal</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;S PorneÅŸte Bitcoin la pornirea sistemului</translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Trimite Bitcoin</translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> comisionul tranyacţiei este inclus </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Plata s-a transmis </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Transmitere...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Adresă incorectă </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Se transmit %s către %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ÃŽNTRERUPT</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Intrerupt</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Transfeul a fost întrerupt </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Eroare: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Fonduri insuficiente</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Se conectează...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Nu se poate conecta</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Solicită cheia publică...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Primeşte cheia publică...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Destinatarul nu acceptă tranzacţii iniţiate de la adresa de IP</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Transferul nu a fost acceptat</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Răspunsul primit este incorect</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Se generează tranzacţia...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Această tranyacţie necesită un comision de minimum %s din cauza valorii, a complexităţii, sau a folosirii unor sume încasate prea recent</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Tranzacţia nu a putut fi generată</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Tranzacţia a fost oprită</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">S-a pierdut legătura, tranzacţia a fost oprită</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Se efectuează plata...</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 type="obsolete">Tranzacţia a fost respinsă. Acest lucru se poate întâmpla în cazul în care o parte din suma de bitcoin din portofelul electronic a fost deja cheltuită, de exemplu atunci când aţi folosit o copie a fişierului wallet.dat din care aţi cheltuit bitcoin, fişierul curent nefiind astfel actualizat.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Se aşteaptă confirmarea...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Plata a fost efectuată dar destinatarul n-a putut-o verifica încă.
-Tranzacţia a fost înregistrată iar contul destinatar va fi creditat,
-dar făra a transmite alte informaţii.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Plata s-a transmis, dar s-a primit un răspuns incorect</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Plata a fost efectuată</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Numele</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adresa</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Eticheta</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Adresa Bitcoin</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Aceasta este una dintre adresele personale de primire a plăţilor şi nu poate fi inclusă in Lista de adrese. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Editează adresa</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Editează eticheta adresei</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Adaugă adresa</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - se generează</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (neconectat)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;O deschide Bitcoin</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;S Trimite Bitcoins</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">O&amp; Setări...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">E&amp; IeÅŸire</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Programul se va opri din cauza unei erori. </translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="84"/>
<source>beta</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts
index 777ee63c8e..d706b33b97 100644
--- a/src/qt/locale/bitcoin_ru.ts
+++ b/src/qt/locale/bitcoin_ru.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="ru">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="ru" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -12,7 +10,7 @@
<message>
<location filename="../forms/aboutdialog.ui" line="53"/>
<source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
- <translation>Bitcoin верÑиÑ</translation>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; верÑиÑ</translation>
</message>
<message>
<location filename="../forms/aboutdialog.ui" line="85"/>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Разработчики Ñети Bitcoin
+ <translation>Ð’Ñе права защищены © 2009-2012 Разработчики Bitcoin
-Ð’ÐИМÐÐИЕ: Ñтот Ñофт ÑвлÑетÑÑ ÑкÑпериментальным!
+Это ÑкÑÐ¿ÐµÑ€Ð¸Ð¼ÐµÐ½Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð°.
-РаÑпроÑтранÑетÑÑ Ð¿Ð¾Ð´ лицензией MIT/X11, за дополнительной информацией обращайтеÑÑŒ к прилагающемуÑÑ Ñ„Ð°Ð¹Ð»Ñƒ license.txt или документу по данной ÑÑылке: http://www.opensource.org/licenses/mit-license.php.
+РаÑпроÑтранÑетÑÑ Ð½Ð° правах лицензии MIT/X11, Ñм. файл license.txt или http://www.opensource.org/licenses/mit-license.php.
-Данный продукт включает в ÑÐµÐ±Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ проекта OpenSSL (http://www.openssl.org/), криптографичеÑкие функции и алгоритмы, напиÑанные Эриком Янгом (eay@cryptsoft.com) и функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ UPnP за авторÑтвом ТомаÑа Бернарда. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Разработчики Ñети Bitcoin
-
-Ð’ÐИМÐÐИЕ: Ñтот Ñофт ÑвлÑетÑÑ ÑкÑпериментальным!
-
-РаÑпроÑтранÑетÑÑ Ð¿Ð¾Ð´ лицензией MIT/X11, за дополнительной информацией обращайтеÑÑŒ к прилагающемуÑÑ Ñ„Ð°Ð¹Ð»Ñƒ license.txt или документу по данной ÑÑылке: http://www.opensource.org/licenses/mit-license.php.
-
-Данный продукт включает в ÑÐµÐ±Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ проекта OpenSSL (http://www.openssl.org/), криптографичеÑкие функции и алгоритмы, напиÑанные Эриком Янгом (eay@cryptsoft.com) и функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ UPnP за авторÑтвом ТомаÑа Бернарда.</translation>
+Этот продукт включате ПО, разработанное OpenSSL Project Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² OpenSSL Toolkit (http://www.openssl.org/) и криптографичеÑкое ПО, напиÑанное Eric Young (eay@cryptsoft.com) и ПО Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ UPnP, напиÑанное Thomas Bernard.</translation>
</message>
</context>
<context>
@@ -88,17 +70,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Показать &amp;QR код</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Подпишите Ñообщение Ð´Ð»Ñ Ð´Ð¾ÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÑŒÑтва </translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;ПодпиÑать Ñообщение</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>&amp;Удалить</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Копировать адреÑ</translation>
+ <translation>Копировать адреÑ</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Копировать метку</translation>
+ <translation>Копировать метку</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Правка</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Удалить</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>ЭкÑпортировать адреÑную книгу</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>ТекÑÑ‚, разделённый запÑтыми (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Ошибка ÑкÑпорта</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Ðевозможно запиÑать в файл %1.</translation>
</message>
@@ -258,17 +240,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° закроетÑÑ Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑа шифрованиÑ. Помните, что шифрование вашего бумажника не может полноÑтью защитить ваши биткоины от кражи Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ð¸Ð½Ñ„Ð¸Ñ†Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ компьютера вредоноÑным ПО.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Помните, что шифрование вашего бумажника не может полноÑтью защитить ваши биткоины от кражи вредоноÑными программами, заражающими компьютер.</translation>
+ <translation>Внимание: Caps Lock включен.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,305 +293,319 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin-бумажник</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ñетью...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Идёт ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ¸ блоков</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>О&amp;бзор</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Показать общий обзор дейÑтвий Ñ Ð±ÑƒÐ¼Ð°Ð¶Ð½Ð¸ÐºÐ¾Ð¼</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Транзакции</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Показать иÑторию транзакций</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;ÐдреÑÐ½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Изменить ÑпиÑок Ñохранённых адреÑов и меток к ним</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
- <translation>&amp;Получение</translation>
+ <translation>&amp;Получение монет</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Показать ÑпиÑок адреÑов Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶ÐµÐ¹</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
- <translation>Отп&amp;равка</translation>
+ <translation>Отп&amp;равка монет</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Отправить монеты на указанный адреÑ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>ПодпиÑать &amp;Ñообщение</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Доказать, что вы владеете адреÑом</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>В&amp;ыход</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Закрыть приложение</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;О %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Показать информацию о Bitcoin&apos;е</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>О &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Показать информацию о Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>Оп&amp;ции...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Изменить наÑтройки</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>&amp;Показать бумажник</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Показать окно бумажника</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;ЭкÑпорт...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>ЭкÑпортировать в файл</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Зашифровать бумажник</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Зашифровать или раÑшифровать бумажник</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Изменить пароль</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Изменить пароль ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÑƒÐ¼Ð°Ð¶Ð½Ð¸ÐºÐ°</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Файл</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;ÐаÑтройки</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Помощь</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Панель вкладок</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Панель дейÑтвий</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[теÑÑ‚Ð¾Ð²Ð°Ñ Ñеть]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n активное Ñоединение Ñ Ñетью</numerusform>
- <numerusform>%n активных Ñоединений Ñ Ñетью</numerusform>
- <numerusform>%n активных Ñоединений Ñ Ñетью</numerusform>
- </translation>
+ <translation><numerusform>%n активное Ñоединение Ñ Ñетью</numerusform><numerusform>%n активных Ñоединений Ñ Ñетью</numerusform><numerusform>%n активных Ñоединений Ñ Ñетью</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Загружено %1 из %2 блоков иÑтории транзакций.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Загружено %1 блоков иÑтории транзакций.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n Ñекунду назад</numerusform>
- <numerusform>%n Ñекунды назад</numerusform>
- <numerusform>%n Ñекунд назад</numerusform>
- </translation>
+ <translation><numerusform>%n Ñекунду назад</numerusform><numerusform>%n Ñекунды назад</numerusform><numerusform>%n Ñекунд назад</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n минуту назад</numerusform>
- <numerusform>%n минуты назад</numerusform>
- <numerusform>%n минут назад</numerusform>
- </translation>
+ <translation><numerusform>%n минуту назад</numerusform><numerusform>%n минуты назад</numerusform><numerusform>%n минут назад</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n Ñ‡Ð°Ñ Ð½Ð°Ð·Ð°Ð´</numerusform>
- <numerusform>%n чаÑа назад</numerusform>
- <numerusform>%n чаÑов назад</numerusform>
- </translation>
+ <translation><numerusform>%n Ñ‡Ð°Ñ Ð½Ð°Ð·Ð°Ð´</numerusform><numerusform>%n чаÑа назад</numerusform><numerusform>%n чаÑов назад</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n день назад</numerusform>
- <numerusform>%n Ð´Ð½Ñ Ð½Ð°Ð·Ð°Ð´</numerusform>
- <numerusform>%n дней назад</numerusform>
- </translation>
+ <translation><numerusform>%n день назад</numerusform><numerusform>%n Ð´Ð½Ñ Ð½Ð°Ð·Ð°Ð´</numerusform><numerusform>%n дней назад</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Синхронизированно</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>СинхронизируетÑÑ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>ПоÑледний полученный блок был Ñгенерирован %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Ð”Ð°Ð½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð¿Ñ€ÐµÐ²Ñ‹ÑˆÐ°ÐµÑ‚ предельно допуÑтимый размер. Ðо Ð’Ñ‹ можете вÑÑ‘ равно Ñовершить ей, добавив комиÑÑию в %1, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÑÑ Ñ‚ÐµÐ¼ узлам, которые обработают Вашу транзакцию и поможет поддержать Ñеть. Ð’Ñ‹ хотите добавить комиÑÑию?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Отправка...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>ИÑходÑÑ‰Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>ВходÑÑ‰Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished"></translation>
+ <translation>Дата: %1
+КоличеÑтво: %2
+Тип: %3
+ÐдреÑ: %4
+</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Бумажник &lt;b&gt;зашифрован&lt;/b&gt; и в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ &lt;b&gt;разблокирован&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Бумажник &lt;b&gt;зашифрован&lt;/b&gt; и в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ &lt;b&gt;заблокирован&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Данные Кошелька (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -776,7 +768,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>ÐžÐ¿Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ Ð·Ð° кадый kB транзакции, которое позволÑет быть уверенным, что Ваша Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ обработана быÑтро. БольшинÑтво транзакций занимают 1 kB. Ð ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð¸ÑÑиÑ: 0.01 BTC.</translation>
+ <translation>ÐžÐ¿Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ Ð·Ð° каждый КБ транзакции, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет быть уверенным, что Ваша Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ обработано быÑтро. БольшинÑтво транзакций занимают 1КБ. РекомендуетÑÑ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ 0.01.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -786,7 +778,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>ÐžÐ¿Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ Ð·Ð° кадый kB транзакции, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет быть уверенным, что Ваша Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ обработана быÑтро. БольшинÑтво транзакций занимают 1 kB. Ð ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð¸ÑÑиÑ: 0.01 BTC.</translation>
+ <translation>ÐžÐ¿Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ Ð·Ð° каждый КБ транзакции, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет быть уверенным, что Ваша Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ обработано быÑтро. БольшинÑтво транзакций занимают 1КБ. РекомендуетÑÑ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ 0.01.</translation>
</message>
</context>
<context>
@@ -794,89 +786,89 @@ Address: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Сообщение</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">ÐÐ´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð° (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63)</translation>
+ <translation>ÐÐ´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð° (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Выбрать Ð°Ð´Ñ€ÐµÑ Ð¸Ð· адреÑной книги</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Ð’Ñтавить Ð°Ð´Ñ€ÐµÑ Ð¸Ð· буфера обмена</translation>
+ <translation>Ð’Ñтавить Ð°Ð´Ñ€ÐµÑ Ð¸Ð· буфера обмена</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Введите Ñообщение Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи нажмите на &quot;ПодпиÑать Ñообщение&quot;</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Подпишите Ñообщение Ð´Ð»Ñ Ð´Ð¾ÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÑŒÑтва </translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;ПодпиÑать Ñообщение</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Копировать текущий выделенный Ð°Ð´Ñ€ÐµÑ Ð² буфер обмена</translation>
+ <translation>Копировать текущий выделенный Ð°Ð´Ñ€ÐµÑ Ð² буфер обмена</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Kопировать</translation>
+ <translation>&amp;Kопировать</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 не ÑвлÑетÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ адреÑом.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Секретный ключ Ð´Ð»Ñ %1 не доÑтупен</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>ПодпиÑание не удалоÑÑŒ.</translation>
</message>
</context>
<context>
@@ -939,7 +931,7 @@ Address: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -973,42 +965,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialog</translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR код</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>ЗапроÑить платёж</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>КоличеÑтво:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Метка:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Сообщение:</translation>
+ <translation>Сообщение:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Сохранить как...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>Сохранить изображение...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1038,7 +1040,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Удалить вÑе Ð¿Ð¾Ð»Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1157,7 +1159,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="103"/>
<source>Choose address from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Выберите Ð°Ð´Ñ€ÐµÑ Ð¸Ð· адреÑной книги</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="113"/>
@@ -1318,7 +1320,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>Идентификатор транзакции:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1364,11 +1366,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Открыто Ð´Ð»Ñ %n блока</numerusform>
- <numerusform>Открыто Ð´Ð»Ñ %n блоков</numerusform>
- <numerusform>Открыто Ð´Ð»Ñ %n блоков</numerusform>
- </translation>
+ <translation><numerusform>Открыто Ð´Ð»Ñ %n блока</numerusform><numerusform>Открыто Ð´Ð»Ñ %n блоков</numerusform><numerusform>Открыто Ð´Ð»Ñ %n блоков</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1393,11 +1391,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Добытыми монетами можно будет воÑпользоватьÑÑ Ñ‡ÐµÑ€ÐµÐ· %n блок</numerusform>
- <numerusform>Добытыми монетами можно будет воÑпользоватьÑÑ Ñ‡ÐµÑ€ÐµÐ· %n блока</numerusform>
- <numerusform>Добытыми монетами можно будет воÑпользоватьÑÑ Ñ‡ÐµÑ€ÐµÐ· %n блоков</numerusform>
- </translation>
+ <translation><numerusform>Добытыми монетами можно будет воÑпользоватьÑÑ Ñ‡ÐµÑ€ÐµÐ· %n блок</numerusform><numerusform>Добытыми монетами можно будет воÑпользоватьÑÑ Ñ‡ÐµÑ€ÐµÐ· %n блока</numerusform><numerusform>Добытыми монетами можно будет воÑпользоватьÑÑ Ñ‡ÐµÑ€ÐµÐ· %n блоков</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1417,11 +1411,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Получено Ñ IP-адреÑа </translation>
+ <translation>Получено от</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1429,10 +1419,6 @@ p, li { white-space: pre-wrap; }
<translation>Отправлено</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Отправлено на IP-Ð°Ð´Ñ€ÐµÑ </translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Отправлено Ñебе</translation>
@@ -1476,163 +1462,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Ð’Ñе</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>СегоднÑ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Ðа Ñтой неделе</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Ð’ Ñтом меÑÑце</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>За поÑледний меÑÑц</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Ð’ Ñтом году</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Промежуток...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Получено на</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Отправлено на</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Отправленные Ñебе</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Добытые</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Другое</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Введите Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ метку Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Мин. Ñумма</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Копировать адреÑ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Копировать метку</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Скопировать Ñумму</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Изменить метку</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Показать детали...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>ЭкÑпортировать данные транзакций</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>ТекÑ, разделённый запÑтыми (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Подтверждено</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Тип</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Метка</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>ÐдреÑ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>КоличеÑтво</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Ошибка ÑкÑпорта</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Ðевозможно запиÑать в файл %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Промежуток от:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>до</translation>
</message>
@@ -1640,7 +1626,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Отправка....</translation>
</message>
@@ -1660,233 +1646,235 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="5"/>
<source>Send command to -server or bitcoind</source>
- <translation type="unfinished"></translation>
+ <translation>Отправить команду на -server или bitcoind</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="6"/>
<source>List commands</source>
- <translation type="unfinished"></translation>
+ <translation>СпиÑок команд
+</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="7"/>
<source>Get help for a command</source>
- <translation type="unfinished"></translation>
+ <translation>Получить помощь по команде</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="8"/>
<source>Options:</source>
- <translation type="unfinished"></translation>
+ <translation>Опции:</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
<source>Specify configuration file (default: bitcoin.conf)</source>
- <translation type="unfinished"></translation>
+ <translation>Указать конфигурационный файл (по умолчанию: bitcoin.conf)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
<source>Specify pid file (default: bitcoind.pid)</source>
- <translation type="unfinished"></translation>
+ <translation>Указать pid-файл (по умолчанию: bitcoin.pid)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
<source>Generate coins</source>
- <translation type="unfinished"></translation>
+ <translation>Генерировать монеты</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="12"/>
<source>Don&apos;t generate coins</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе генерировать монеты</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="13"/>
<source>Start minimized</source>
- <translation type="unfinished"></translation>
+ <translation>ЗапуÑкать Ñвёрнутым</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
<source>Specify data directory</source>
- <translation type="unfinished"></translation>
+ <translation>Укажите каталог данных</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
<source>Specify connection timeout (in milliseconds)</source>
- <translation type="unfinished"></translation>
+ <translation>Укажите таймаут ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ (в миллиÑекундах)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
<source>Connect through socks4 proxy</source>
- <translation type="unfinished"></translation>
+ <translation>ПодключатьÑÑ Ñ‡ÐµÑ€ÐµÐ· socks4 прокÑи</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="17"/>
<source>Allow DNS lookups for addnode and connect</source>
- <translation type="unfinished"></translation>
+ <translation>Разрешить Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ðº DNS Ð´Ð»Ñ addnode и подключениÑ</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Принимать входÑщие Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½Ð° &lt;port&gt; (по умолчанию: 8333 или 18333 в теÑтовой Ñети)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Поддерживать не более &lt;n&gt; подключений к узлам (по умолчанию: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
<source>Add a node to connect to</source>
- <translation type="unfinished"></translation>
+ <translation>Добавить узел Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="21"/>
<source>Connect only to the specified node</source>
- <translation type="unfinished"></translation>
+ <translation>ПодключатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ к указанному узлу</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="22"/>
<source>Don&apos;t accept connections from outside</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе принимать входÑщие подключениÑ</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе получать начальный ÑпиÑок узлов через DNS</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Порог Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾ ведущих ÑÐµÐ±Ñ ÑƒÐ·Ð»Ð¾Ð² (по умолчанию: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>ЧиÑло Ñекунд Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾ ведущих ÑÐµÐ±Ñ ÑƒÐ·Ð»Ð¾Ð² (по умолчанию: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>МакÑимальный размер буфера приёма на Ñоединение, &lt;n&gt;*1000 байт (по умолчанию: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>МакÑимальный размер буфера отправки на Ñоединение, &lt;n&gt;*1000 байт (по умолчанию: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
<source>Don&apos;t attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе пытатьÑÑ Ð¸Ñпользовать UPnP Ð´Ð»Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ñщего порта</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="31"/>
<source>Attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation>ПытатьÑÑ Ð¸Ñпользовать UPnP Ð´Ð»Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ñщего порта</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation type="unfinished"></translation>
+ <translation>КомиÑÑÐ¸Ñ Ð½Ð° Кб, добавлÑÐµÐ¼Ð°Ñ Ðº вашим переводам</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
<source>Accept command line and JSON-RPC commands</source>
- <translation type="unfinished"></translation>
+ <translation>Принимать командную Ñтроку и команды JSON-RPC</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="34"/>
<source>Run in the background as a daemon and accept commands</source>
- <translation type="unfinished"></translation>
+ <translation>ЗапуÑкатьÑÑ Ð² фоне как демон и принимать команды</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="35"/>
<source>Use the test network</source>
- <translation type="unfinished"></translation>
+ <translation>ИÑпользовать теÑтовую Ñеть</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Выводить дополнительную отладочную информацию</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>ДопиÑывать отметки времени к отладочному выводу</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Выводить информацию траÑÑировки/отладки на конÑоль вмеÑто файла debug.log</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>ОтправлÑÑ‚ÑŒ информацию траÑÑировки/отладки в отладчик</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
<source>Username for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Ð˜Ð¼Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹ JSON-RPC</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="41"/>
<source>Password for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>Пароль Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹ JSON-RPC</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="42"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
- <translation type="unfinished"></translation>
+ <translation>Ожидать Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ JSON-RPC на &lt;порт&gt; (по умолчанию: 8332)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="43"/>
<source>Allow JSON-RPC connections from specified IP address</source>
- <translation type="unfinished"></translation>
+ <translation>Разрешить Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ JSON-RPC Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ IP</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="44"/>
<source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
- <translation type="unfinished"></translation>
+ <translation>ПоÑылать команды узлу, запущенному на &lt;ip&gt; (по умолчанию: 127.0.0.1)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="45"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>УÑтановить размер запаÑа ключей в &lt;n&gt; (по умолчанию: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="46"/>
<source>Rescan the block chain for missing wallet transactions</source>
- <translation type="unfinished"></translation>
+ <translation>Перепроверить цепь блоков на предмет отÑутÑтвующих в кошельке транзакций</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="47"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
- <translation type="unfinished"></translation>
+ <translation>
+Параметры SSL: (Ñм. Bitcoin Wiki Ð´Ð»Ñ Ð¸Ð½Ñтрукций по наÑтройке SSL)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="50"/>
<source>Use OpenSSL (https) for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation>ИÑпользовать OpenSSL (https) Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹ JSON-RPC</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="51"/>
<source>Server certificate file (default: server.cert)</source>
- <translation type="unfinished"></translation>
+ <translation>Файл Ñерверного Ñертификата (по умолчанию: server.cert)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="52"/>
<source>Server private key (default: server.pem)</source>
- <translation type="unfinished"></translation>
+ <translation>Приватный ключ Ñервера (по умолчанию: server.pem)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="53"/>
<source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
- <translation type="unfinished"></translation>
+ <translation>Разрешённые алгоритмы (по умолчанию: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="56"/>
<source>This help message</source>
- <translation type="unfinished"></translation>
+ <translation>Эта Ñправка</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="57"/>
@@ -1901,32 +1889,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Ошибка загрузки addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ blkindex.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Ошибка загрузки wallet.dat: Бумажник поврежден</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Ошибка загрузки wallet.dat: бумажник требует более новую верÑию Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Ðеобходимо перезапиÑать бумажник, перезапуÑтите Bitcoin Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¸.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Ошибка при загрузке wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1979,428 +1967,6 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>Ðевозможно забиндить порт %d на данном компьютере. Возможно, бумажник ужк запущен.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Ð”Ð°Ð½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð¿Ñ€ÐµÐ²Ñ‹ÑˆÐ°ÐµÑ‚ предельно допуÑтимый размер. Ðо Ð’Ñ‹ можете вÑÑ‘ равно Ñовершить ей, добавив комиÑÑию в %s, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÑÑ Ñ‚ÐµÐ¼ узлам, которые обработают Вашу транзакцию и поможет поддержать Ñеть. Ð’Ñ‹ хотите добавить комиÑÑию?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Введите текущий пароль от бумажника.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Пароль</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">ПожалуйÑта, укажите текущий пароль Ð´Ð»Ñ Ñ€Ð°Ñшифровки бумажника.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Указанный пароль не подходит.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">СтатуÑ</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Дата</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">ОпиÑание</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Дебет</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Кредит</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Открыто до Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ %d блоков</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Открыто до %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/оффлайн?</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Сгенерированно</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Сгенерированно (%s «Ñозреет» через %d блоков)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Сгенерированно - Ð’ÐИМÐÐИЕ: Данный блок не был получен ни одним другим узлом и, возможно, не будет подтверждён!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Сгенерированно (не подтверждено)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Отправитель: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Получатель: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Отправлено Ñебе</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Получатель: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> ГенерациÑ</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(не подключено)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d подключений %d блоков %d транзакций</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Бумажник уже зашифрован.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Введите новый пароль Ð´Ð»Ñ Ð±ÑƒÐ¼Ð°Ð¶Ð½Ð¸ÐºÐ°.
-ПожалуйÑта, иÑпользуейте пароль из 10 и более Ñлучайных Ñимволов или из 8 и более Ñлов.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">ОШИБКÐ: Указанный пароль Ñлишком короткий.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">Ð’ÐИМÐÐИЕ: ЕÑли Ð’Ñ‹ зашифруете Ваш бумажник и потерÑете Ваш пароль — Ð’Ñ‹ ПОТЕРЯЕТЕ ВСЕ Ð’ÐШИ БИТКОИÐЫ!!!
-Вы уверены, что хотите зашифровать бумажник?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">ПожалуйÑта, повторите ввод нового паролÑ.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">ОШИБКÐ: указанные пароли не Ñовпадают.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Шифрование бумажника не удалоÑÑŒ.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Бумажник зашифрован.
-Запомните, что шифрование Вашего бумажника не может ПОЛÐОСТЬЮ гарантировать защиту Ваших биткоинов от того, чтобы быть украденными Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ шпионÑкого ПО на Вашем компьютере. ПожалуйÑта, Ñледите за безопаÑноÑтью Вашего компьютера ÑамоÑтоÑтельно.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Бумажник не зашифрован. Сначала зашифруйте его.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Введите новый пароль Ð´Ð»Ñ Ð±ÑƒÐ¼Ð°Ð¶Ð½Ð¸ÐºÐ°.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">ПожалуйÑта, повторите ввод нового паролÑ.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Пароль от бумажника изменён.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Ðовый Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Ð’Ñ‹ должны иÑпользовать новый Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ платежа, который Ð’Ñ‹ получаете.
-
-Метка</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;СтатуÑ:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, ещё не было уÑпешно разоÑлано</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, разоÑлано через %d узел</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">неизвеÑтно</translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (Ваш, метка:</translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (ваш)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Кредит:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s «Ñозреет» через %d блоков)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(не принÑто)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Дебет:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;ÐžÐ±Ñ‰Ð°Ñ Ñумма:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Сообщение:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Комментарий:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Сгенерированные монеты должны подождать 120 блоков прежде, чем они Ñмогут быть отправлены. Когда Ð’Ñ‹ Ñгенерировали Ñтот блок он был отправлен в Ñеть, чтобы он был добавлен к цепочке блоков. ЕÑли Ð´Ð°Ð½Ð½Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° не удаÑÑ‚ÑÑ, ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑÑ Ð½Ð° «не подтверждено» и монеты будут непередаваемыми. Такое может Ñлучайно проиÑходить в Ñлучае, еÑли другой узел Ñгенерирует блок на неÑколько Ñекунд раньше.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Ðе возможно запиÑать файл autostart/bitcoin.desktop</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">ОÑновное</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;ЗапуÑкать бумажник при входе в ÑиÑтему</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">С&amp;ворачивать вмеÑто закрытиÑ</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">верÑÐ¸Ñ %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Ошибка в количеÑтве </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Отправка</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Сумма превышает Ваш Ð±Ð°Ð»Ð°Ð½Ñ </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">ÐžÐ±Ñ‰Ð°Ñ Ñумма превыÑит Ваш баланÑ, еÑли к транзакции будет добавлено ещё</translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete">в качеÑтве комиÑÑии </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Платёж отправлен</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Отправка...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Ошибочный Ð°Ð´Ñ€ÐµÑ </translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ОТМЕÐЕÐО</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Отменено</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð° </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">ОШИБКÐ: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">ÐедоÑтаточно монет</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Подключение...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Ðевозможно подключитьÑÑ</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">ЗапрашиваетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¹ ключ...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">ПолучаетÑÑ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ð¹ ключ...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Получатель не принимает транзакции, отправленные на IP адреÑ</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Передача была отвергнута</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Получен неверный ответ</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Создание транзакции...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Ð”Ð°Ð½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¸ÑÑии (по крайней мере в %s) из-за её размера, ÑложноÑти, или из-за иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ´Ð°Ð²Ð½Ð¾ полученных монет</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Создание транзакции провалилоÑÑŒ</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">ПотерÑно Ñоединение, Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Отправка платежа...</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 type="obsolete">Ð’ транзакции отказано. Такое может произойти, еÑли некоторые монеты уже были потрачены, например, еÑли Ð’Ñ‹ иÑпользуете одну копию бумажника (wallet.dat), а монеты были потрачены из другой копии, но не были отмечены как потраченные в Ñтой. Или в Ñлучае кражи (компрометации) Вашего бумажника.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">Ожидание подтверждениÑ...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Платёж был отправлен, но получатель не Ñмог подтвердить его.
-Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñана и будет зачиÑлена получателю,
-но комментарий к платежу будет пуÑтым.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Платёж был отправлен, но был получен неверный ответ</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Платёж завершён</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">ИмÑ</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">ÐдреÑ</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Метка</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin-адреÑ</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Это один из Ваших личных адреÑов Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶ÐµÐ¹. Он не может быть добавлен в адреÑную книгу. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Изменить адреÑ</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Изменить метку</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Добавить адреÑ</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Биткоин</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - ГенерациÑ</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (нет ÑвÑзи)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Показать бумажник</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">Отп&amp;равка</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Программа ÑкÑтренно завершилаÑÑŒ и будет уничтожена. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Ð’ÐИМÐÐИЕ: Проверьте дату и времÑ, уÑтановленные на Вашем компьютере. ЕÑли Ваши чаÑÑ‹ идут не правильно Bitcoin может наботать не корректно.</translation>
@@ -2411,16 +1977,4 @@ but the comment information will be blank.</source>
<translation>бета</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts
new file mode 100644
index 0000000000..c8b49a13e1
--- /dev/null
+++ b/src/qt/locale/bitcoin_sk.ts
@@ -0,0 +1,1967 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="sk" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>O Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; verzia</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Adresár</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation>Toto sú Vaše Bitcoin adresy pre prijímanie platieb. Môžete dať každému odosielateľovi inú rôznu adresu a tak udržiavať prehľad o platbách.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Dvojklikom editovať adresu alebo popis</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Vytvoriť novú adresu</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Nová adresa...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Kopírovať práve zvolenú adresu do systémového klipbordu</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Kopírovať do klipbordu</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation>Zobraz &amp;QR Kód</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Podpísať správu a dokázať že vlastníte túto adresu</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;Podpísať Správu</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Zmazať práve zvolená adresu zo zoznamu. Len adresy pre odosielanie sa dajú zmazať.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Zmazať</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation>Kopírovať adresu</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation>Kopírovať popis</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation>Upraviť</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation>Zmazať</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation>Exportovať dáta z adresára</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Čiarkou oddelený súbor (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation>Chyba exportu.</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation>Nedalo sa zapisovať do súboru %1.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation>Popis</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation>Adresa</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation>(bez popisu)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialóg</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation>TextovýPopis</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation>Zadajte heslo</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation>Nové heslo</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation>Zopakujte nové heslo</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation>Zadajte nové heslo k peňaženke.&lt;br/&gt;Prosím použite heslo s dĺžkou aspon &lt;b&gt;10 alebo viac náhodných znakov&lt;/b&gt;, alebo &lt;b&gt;8 alebo viac slov&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Zašifrovať peňaženku</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Táto operácia potrebuje heslo k vašej peňaženke aby ju mohla dešifrovať.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Odomknúť peňaženku</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Táto operácia potrebuje heslo k vašej peňaženke na dešifrovanie peňaženky.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Dešifrovať peňaženku</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Zmena hesla</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Zadajte staré a nové heslo k peňaženke.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>PotvrÄte Å¡ifrovanie peňaženky</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation>VAROVANIE: Ak zaÅ¡ifrujete peňaženku a stratíte heslo, &lt;b&gt;STRATÃTE VÅ ETKY VAÅ E BITCOINY&lt;/b&gt;!âŽ
+Ste si istí, že si želáte zašifrovať peňaženku?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation>Peňaženka zašifrovaná</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Varovanie: Caps Lock je zapnutý</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation>Šifrovanie peňaženky zlyhalo</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Šifrovanie peňaženky zlyhalo kôli internej chybe. Vaša peňaženka nebola zašifrovaná.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Zadané heslá nesúhlasia.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation>Odomykanie peňaženky zlyhalo</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Zadané heslo pre dešifrovanie peňaženky bolo nesprávne.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation>Zlyhalo šifrovanie peňaženky.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation>Heslo k peňaženke bolo úspešne zmenené.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitcoin peňaženka</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation>Synchronizácia so sieťou...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Prebieha synchronizácia blockchain.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Prehľad</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation>Zobraziť celkový prehľad o peňaženke</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Preklady</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation>Prechádzať históriu transakcií</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Adresár</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Editovať zoznam uložených adries a popisov</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Prijať bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Zobraziť zoznam adries pre prijímanie platieb.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Poslať bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Poslať bitcoins na adresu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation>Podpísať &amp;správu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation>Dokázať že kontrolujete adresu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation>U&amp;konÄiÅ¥</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation>UkonÄiÅ¥ program</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;O %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Zobraziť informácie o Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation>O &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation>Zobrazit informácie o Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Možnosti...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Upraviť možnosti nastavenia pre bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Otvoriť &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Zobraziť okno Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Export...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Zašifrovať Peňaženku</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Zašifrovať alebo dešifrovať peňaženku</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Zmena Hesla</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Zmeniť heslo použité na šifrovanie peňaženky</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation>&amp;Súbor</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Nastavenia</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Pomoc</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation>Lišta záložiek</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation>Lišta aktvivít</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation>[testovacia sieť]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation>Aktualizovaný</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Posledný prijatý blok bol generovaný %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation>Odosielanie...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation>Odoslané transakcie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation>Prijaté transakcie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Dátum: %1
+Suma: %2
+Typ: %3
+Adresa: %4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Zobrazovať hodnoty v jednotkách:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation>Zobraziť adresy zo zoznamu transakcií.</translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Upraviť adresu</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Popis</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>Popis priradený k tomuto záznamu v adresári</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Adresa</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Nová adresa pre prijímanie</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Nová adresa pre odoslanie</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Upraviť prijímacie adresy</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Upraviť odosielaciu adresu</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Vložená adresa &quot;%1&quot; sa už nachádza v adresári.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>Vložená adresa &quot;%1&quot; nieje platnou adresou bitcoin.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Nepodarilo sa odomknúť peňaženku.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Generovanie nového kľúÄa zlyhalo.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Spustiť Bitcoin pri spustení systému správy okien</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Automaticky spustiÅ¥ Bitcoin po zapnutí poÄítaÄa</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Zobraziť len ikonu na lište po minimalizovaní okna.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Mapovať port pomocou &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation>Automaticky otvorit port pre Bitcoin na routeri. Toto funguje len ak router podporuje UPnP a je táto podpora aktivovaná.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimalizovať pri zavretí</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation>Minimalizovat namiesto ukonÄenia aplikácie keÄ sa okno zavrie. KeÄ je zvolená táto možnosÅ¥, aplikácia sa zavrie len po zvolení UkonÄiÅ¥ v menu.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Pripojiť cez SOCKS4 proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>PripojiÅ¥ do siete Bitcoin cez SOCKS4 proxy (napr. keÄ sa pripájate cez Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>Proxy &amp;IP: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>IP addresa proxy (napr. 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Port: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Port proxy (napr. 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation>Voliteľný transakÄný poplatok za kB ktorý pomôže rýchlemu spracovaniu transakcie. VäÄÅ¡ina transakcií má 1 kB. Poplatok 0.01 je odporúÄaný.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>ZaplatiÅ¥ transakÄné &amp;poplatky</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation>Voliteľný transakÄný poplatok za kB ktorý pomôže rýchlemu spracovaniu transakcie. VäÄÅ¡ina transakcií má 1 kB. Poplatok 0.01 je odporúÄaný.</translation>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation>Správa</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Adresa pre odoslanie platby je (napr. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) </translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation>Vyberte adresu z adresára</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation>Vložte adresu z klipbordu</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation>Sem vložte správu ktorú chcete podpísať</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation>Kliknite &quot;Podpísať Správu&quot; na získanie podpisu</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Podpíšte správu aby ste dokázali že vlastníte túto adresu</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;Podpísať Správu</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Kopírovať práve zvolenú adresu do systémového klipbordu</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Kopírovať do klipbordu</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation>Chyba podpisovania</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation>%1 nieje platná adresa.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation>Súkromný kÄ¾ÃºÄ pre %1 nieje k dispozícii.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation>Podpisovanie neúspešné</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Hlavné</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Displej</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Možnosti</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Forma</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Zostatok:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>PoÄet transakcií:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Nepotvrdené:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation>0 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Nedávne transakcie&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Váš súÄasný zostatok</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation>Suma transakcií ktoré eÅ¡te neboli potvrdené a nezapoÄítavaju sa do celkového zostatku.</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Celkový poÄet transakcií v peňaženke</translation>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation>Dialóg</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation>QR kód</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation>Vyžiadať platbu</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation>Suma:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation>BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation>Popis:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation>Správa:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation>&amp;Uložiť ako...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation>Poslať Bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Poslať viacerým príjemcom naraz</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Pridať príjemcu...</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>OdobraÅ¥ vÅ¡etky políÄka transakcie</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Zmazať všetko</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Zostatok:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation>PotvrÄte odoslanie</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation>&amp;Odoslať</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; do %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation>Potvrdiť odoslanie bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Ste si istí, že chcete odoslať %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation> a</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation>Adresa príjemcu je neplatná, prosím, overte ju.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Suma na úhradu musí byÅ¥ väÄÅ¡ia ako 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation>Suma je vyššia ako Váš zostatok</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation>Suma celkom prevyÅ¡uje Váš zostatok ak sú zapoÄítané %1 transakÄné poplatky</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation>Duplikát adresy objavený, je možné poslať na každú adresu len raz v jednej odchádzajúcej transakcii.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Chyba: Zlyhalo vytvorenie transakcie</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Forma</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>Su&amp;ma:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Zapla&amp;tiť:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation>Vložte popis pre túto adresu aby sa pridala do adresára</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Popis:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Adresa pre odoslanie platby je (napr. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Zvoľte adresu z adresára</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Vložiť adresu z klipbordu</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation>Odstrániť tohto príjemcu</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Zadajte Bitcoin adresu (napr. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/nepotvrdené</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation>%1 potvrdení</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Stav:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, ešte nebola úspešne odoslaná</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, odoslaná cez %1 nódu</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, odoslaná cez %1 nód</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Dátum:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Zdroj:&lt;/b&gt; Generovaný&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;od:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation>neznámy</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Komu:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation> (vaše, popis: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation>(vaše)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Kredit:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 dospeje o %2 blokov)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation>(neprijaté)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Debet:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;TransakÄný poplatok:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Suma netto:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation>Správa:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation>Komentár:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation>ID transakcie:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Detaily transakcie</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Táto ÄasÅ¥ obrazovky zobrazuje detailný popis transakcie</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation>Dátum</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation>Adresa</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation>Hodnota</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Nepotvrdené (%1 z %2 potvrdení)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Potvrdené (%1 potvrdení)</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Ten blok nebol prijatý žiadnou inou nódou a pravdepodobne nebude akceptovaný!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation>VypoÄítané ale neakceptované</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation>Prijaté s</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation>Prijaté od:</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation>Odoslané na</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation>Platba sebe samému</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation>Vyfárané</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation>(n/a)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Status transakcie. Pohybujte myÅ¡ou nad týmto poľom a zjaví sa poÄet potvrdení.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Dátum a Äas prijatia transakcie.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation>Typ transakcie.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation>Cieľová adresa transakcie.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Suma pridaná alebo odobraná k zostatku.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation>VÅ¡etko</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Dnes</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Tento týždeň</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Tento mesiac</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Minulý mesiac</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Tento rok</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Rozsah...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Prijaté s</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Odoslané na</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Samému sebe</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Vyfárané</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Iné</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>Vložte adresu alebo popis pre vyhľadávanie</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Min množstvo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation>Kopírovať adresu</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation>Kopírovať popis</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation>Kopírovať sumu</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Editovať popis</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Ukázať detaily...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation>ExportovaÅ¥ transakÄné dáta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Čiarkou oddelovaný súbor (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation>Potvrdené</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation>Dátum</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Popis</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Adresa</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation>Suma</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>Chyba exportu</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation>Nedalo sa zapisovať do súboru %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation>Rozsah:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation>do</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation>Odosielanie...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation>Bitcoin verzia</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation>Použitie:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation>Odoslať príkaz -server alebo bitcoind</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation>Zoznam príkazov</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation>Dostať pomoc pre príkaz</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation>Možnosti:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation>UrÄiÅ¥ súbor s nastaveniami (predvolené: bitcoin.conf)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation>UrÄiÅ¥ súbor pid (predvolené: bitcoind.pid)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation>PoÄítaj bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation>NepoÄítaj bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation>Spustiť minimalizované</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation>UrÄiÅ¥ prieÄinok s dátami</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation>UrÄiÅ¥ aut spojenia (v milisekundách)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation>Pripojenie cez socks4 proxy</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation>Povoliť vyhľadávanie DNS pre pridanie nódy a spojenie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation>NaÄúvaÅ¥ spojeniam na &lt;port&gt; (prednastavené: 8333 alebo testovacia sieÅ¥: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation>Udržiavať maximálne &lt;n&gt; spojení (predvolené: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation>Pridať nódu a pripojiť sa</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation>PripojiÅ¥ sa len k urÄenej nóde</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation>Neprijímať spojenia z vonku</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation>NeskúsiÅ¥ použiÅ¥ UPnP pre mapovanie poÄúvajúceho portu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation>SkúsiÅ¥ použiÅ¥ UPnP pre mapovanie poÄúvajúceho portu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation>Poplatok za kB ktorý treba pridať k odoslanej transakcii</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation>Prijímať príkazy z príkazového riadku a JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation>Bežať na pozadí ako démon a prijímať príkazy</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation>Použiť testovaciu sieť</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation>Produkovať extra ladiace informácie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation>PridaÅ¥ na zaÄiatok ladiaceho výstupu Äasový údaj</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation>Odoslať trace/debug informácie na konzolu namiesto debug.info žurnálu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation>Odoslať trace/debug informácie do ladiaceho programu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation>Užívateľské meno pre JSON-RPC spojenia</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation>Heslo pre JSON-rPC spojenia</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation>PoÄúvaÅ¥ JSON-RPC spojeniam na &lt;port&gt; (predvolené: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation>PovoliÅ¥ JSON-RPC spojenia z urÄenej IP adresy.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation>Poslať príkaz nóde bežiacej na &lt;ip&gt; (predvolené: 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation>Nastaviť zásobu adries na &lt;n&gt; (predvolené: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation>SSL možnosť: (pozrite Bitcoin Wiki pre návod na nastavenie SSL)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation>Použiť OpenSSL (https) pre JSON-RPC spojenia</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation>Súbor s certifikátom servra (predvolené: server.cert)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation>Súkromný kÄ¾ÃºÄ servra (predvolené: server.pem)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation>Prijateľné šifry (predvolené: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation>Táto pomocná správa</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation>NaÄítavanie adries...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation>Chyba naÄítania addr.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation>Chyba naÄítania blkindex.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation>Chyba naÄítania wallet.dat: Peňaženka je poÅ¡kodená</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation>Chyba naÄítania wallet.dat: Peňaženka vyžaduje novÅ¡iu verziu Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation>Bolo potrebné prepísaÅ¥ peňaženku: dokonÄite reÅ¡tartovaním Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation>Chyba naÄítania wallet.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation>NaÄítavanie zoznamu blokov...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation>NaÄítavam peňaženku...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation>DokonÄené naÄítavanie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation>Neplatná adresa proxy</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Neplatná suma pre -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Varovanie: -paytxfee je nastavené veľmi vysoko. Toto sú transakÄné poplatky ktoré zaplatíte ak odoÅ¡lete transakciu.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Chyba: zlyhalo CreateThread(StartNode)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation>Varovanie: Málo voľného miesta na disku </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation>beta</translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts
new file mode 100644
index 0000000000..59c0c99190
--- /dev/null
+++ b/src/qt/locale/bitcoin_sr.ts
@@ -0,0 +1,1968 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="sr" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>О Bitcoin-у</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; верзија</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="85"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>ÐдреÑар</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation>Ово Ñу Ваше Bitcoin адреÑе за примање уплата. Можете да Ñваком пошиљаоцу дате другачију адреÑу да би пратили ко је вршио уплате.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Кликните два пута да промените адреÑу и/или етикету</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Прави нову адреÑу</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Ðова адреÑа...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Копира изабрану адреÑу на ÑиÑтемÑки клипборд</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>ИÑ&amp;копирај на клипборд</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Show &amp;QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="96"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="99"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="110"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Брише изабрану адреÑу. Могуће је бриÑати Ñамо адреÑе Ñа којих Ñе шаље.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="113"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Избриши</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="61"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="62"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="64"/>
+ <source>Delete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="281"/>
+ <source>Export Address Book Data</source>
+ <translation>Извоз података из адреÑара</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="282"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Зарезом одвојене вредноÑти (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Error exporting</source>
+ <translation>Грешка током извоза</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="295"/>
+ <source>Could not write to file %1.</source>
+ <translation>Ðије могуће пиÑати у фајл %1.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Label</source>
+ <translation>Етикета</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="77"/>
+ <source>Address</source>
+ <translation>ÐдреÑа</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="113"/>
+ <source>(no label)</source>
+ <translation>(без етикете)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Дијалог</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation>TextLabel</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation>УнеÑите лозинку</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation>Ðова лозинка</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation>Поновите нову лозинку</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation>УнеÑите нову лозинку за приÑтуп новчанику.&lt;br/&gt;Молимо Ð’Ð°Ñ Ð´Ð° лозинка буде &lt;b&gt;10 или више наÑумице одабраних знакова&lt;/b&gt;, или &lt;b&gt;оÑам или више речи&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Шифровање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Ова акција захтева лозинку Вашег новчаника да би га откључала.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Откључавање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Ова акција захтева да унеÑете лозинку да би дешифловала новчаник.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Дешифровање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Промена лозинке</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>УнеÑите Ñтару и нову лозинку за шифровање новчаника.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Одобрите шифровање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation>УПОЗОРЕЊЕ: Ðко Ñе ваш новчаник шифрује а потом изгубите лозинкзу, ви ћете &lt;b&gt;ИЗГУБИТИ СВЕ BITCOIN-Е&lt;/b&gt;!
+Да ли Ñте Ñигурни да желите да Ñе новчаник шифује?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation>Ðовчаник је шифрован</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation>ÐеуÑпело шифровање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>ÐаÑтала је унутрашња грешка током шифровања новчаника. Ваш новчаник није шифрован.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Лозинке које Ñте унели Ñе не подударају.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation>ÐеуÑпело откључавање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Лозинка коју Ñте унели за откључавање новчаника је нетачна.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation>ÐеуÑпело дешифровање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation>Лозинка за приÑтуп новчанику је уÑпешно промењена.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="69"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitcoin новчаник</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
+ <source>Synchronizing with network...</source>
+ <translation>Синхронизација Ñа мрежом у току...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="145"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Синхронизовање ланца блоква је у току</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="176"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Општи преглед</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="177"/>
+ <source>Show general overview of wallet</source>
+ <translation>Погледајте општи преглед новчаника</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;ТранÑакције</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Browse transaction history</source>
+ <translation>Претражите иÑторијат транÑакција</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;ÐдреÑар</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Уредите запамћене адреÑе и њихове етикете</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Receive coins</source>
+ <translation>П&amp;римање новца</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Прегледајте лиÑту адреÑа на којима прихватате уплате</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Слање новца</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Пошаљите новац на bitcoin адреÑу</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>Sign &amp;message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Prove you control an address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="227"/>
+ <source>Quit application</source>
+ <translation>ÐапуÑтите програм</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="230"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Прегледајте информације о Bitcoin-у</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>About &amp;Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Show information about Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Options...</source>
+ <translation>П&amp;оÑтавке...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Изаберите могућноÑти bitcoin-а</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Отвори &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Приказује прозор Bitcoin-а</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Извоз...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Шифровање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="244"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Шифровање и дешифровање новчаника</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>Промени &amp;лозинку</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Мењање лозинке којом Ñе шифрује новчаник</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="272"/>
+ <source>&amp;File</source>
+ <translation>&amp;Фајл</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="281"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Подешавања</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="287"/>
+ <source>&amp;Help</source>
+ <translation>П&amp;омоћ</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="294"/>
+ <source>Tabs toolbar</source>
+ <translation>Трака Ñа картицама</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="305"/>
+ <source>Actions toolbar</source>
+ <translation>Трака Ñа алаткама</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="317"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="407"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="449"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation><numerusform>%n активна веза Ñа Bitcoin мрежом</numerusform><numerusform>%n активне везе Ñа Bitcoin мрежом</numerusform><numerusform>%n активних веза Ñа Bitcoin мрежом</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="475"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>Преузето је %1 од укупно %2 блокова иÑторијата транÑакција.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Преузето је %1 блокова иÑторијата транÑакција.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="502"/>
+ <source>%n second(s) ago</source>
+ <translation><numerusform>пре %n Ñекунд</numerusform><numerusform>пре %n Ñекунде</numerusform><numerusform>пре %n Ñекунди</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>%n minute(s) ago</source>
+ <translation><numerusform>пре %n минут</numerusform><numerusform>пре %n минута</numerusform><numerusform>пре %n минута</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="510"/>
+ <source>%n hour(s) ago</source>
+ <translation><numerusform>пре %n Ñат</numerusform><numerusform>пре %n Ñата</numerusform><numerusform>пре %n Ñати</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>%n day(s) ago</source>
+ <translation><numerusform>пре %n дан</numerusform><numerusform>пре %n дана</numerusform><numerusform>пре %n дана</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Up to date</source>
+ <translation>Ðжурно</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="525"/>
+ <source>Catching up...</source>
+ <translation>Ðжурирање у току...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="533"/>
+ <source>Last received block was generated %1.</source>
+ <translation>ПоÑледњи примљени блок је направљен %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="597"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation>Ова транÑакција је превелика. И даље је можете поÑлати уз накнаду од %1, која ће отићи чвору који прерађује транÑакцију и помаже издржавању целе мреже. Да ли желите да дате напојницу?</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="602"/>
+ <source>Sending...</source>
+ <translation>Слање...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="629"/>
+ <source>Sent transaction</source>
+ <translation>ПоÑлана транÑакција</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="630"/>
+ <source>Incoming transaction</source>
+ <translation>Придошла транÑакција</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="631"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="751"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>Ðовчаник Ñ˜Ñ &lt;b&gt;шифрован&lt;/b&gt; и тренутно &lt;b&gt;откључан&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="759"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>Ðовчаник Ñ˜Ñ &lt;b&gt;шифрован&lt;/b&gt; и тренутно &lt;b&gt;закључан&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="270"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Јединица за приказивање изноÑа: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="274"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Ðемогуће откључати новчаник.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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 Quit in the menu.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="217"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="105"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="120"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Копира изабрану адреÑу на ÑиÑтемÑки клипборд</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="134"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>ИÑ&amp;копирај на клипборд</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Error signing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="74"/>
+ <source>%1 is not a valid address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="89"/>
+ <source>Private key for %1 is not available.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="101"/>
+ <source>Sign failed</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="82"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Ðовчаник&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Укупан број транÑакција у новчанику</translation>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation>Дијалог</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="52"/>
+ <source>Request Payment</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="67"/>
+ <source>Amount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="102"/>
+ <source>BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="118"/>
+ <source>Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="141"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="183"/>
+ <source>&amp;Save As...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation>&amp;Пошаљи</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Да ли Ñте Ñигурни да желите да пошаљете %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="18"/>
+ <source>Open for %1 blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="26"/>
+ <source>%1/offline?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/unconfirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1 confirmations</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="47"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="52"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="54"/>
+ <source>, broadcast through %1 node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="56"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="60"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="67"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="73"/>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="90"/>
+ <source>unknown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="114"/>
+ <location filename="../transactiondesc.cpp" line="173"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <source> (yours, label: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="96"/>
+ <source> (yours)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="131"/>
+ <location filename="../transactiondesc.cpp" line="145"/>
+ <location filename="../transactiondesc.cpp" line="190"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="133"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="137"/>
+ <source>(not accepted)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="181"/>
+ <location filename="../transactiondesc.cpp" line="189"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="195"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="211"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="217"/>
+ <source>Message:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>Comment:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="221"/>
+ <source>Transaction ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Address</source>
+ <translation>ÐдреÑа</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="213"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="274"/>
+ <source>Open for %n block(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Зарезом одвојене вредноÑти (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Етикета</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>ÐдреÑа</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>Грешка током извоза</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation>Ðије могуће пиÑати у фајл %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="145"/>
+ <source>Sending...</source>
+ <translation>Слање у току...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="3"/>
+ <source>Bitcoin version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="4"/>
+ <source>Usage:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="5"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="6"/>
+ <source>List commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="7"/>
+ <source>Get help for a command</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Options:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Don&apos;t generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Start minimized</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify data directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Connect through socks4 proxy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Add a node to connect to</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect only to the specified node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Don&apos;t accept connections from outside</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Don&apos;t bootstrap list of peers using DNS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Attempt to use UPnP to map the listening port</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Fee per kB to add to transactions you send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Use the test network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Output extra debugging information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>This help message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Loading addresses...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
+ <source>Error loading addr.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Error loading blkindex.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading wallet.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Loading block index...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Loading wallet...</source>
+ <translation>Ðовчаник Ñе учитава...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Done loading</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Invalid -proxy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Warning: Disk space is low </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>beta</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts
index f1a972eaf0..7e5d127179 100644
--- a/src/qt/locale/bitcoin_sv.ts
+++ b/src/qt/locale/bitcoin_sv.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="sv">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="sv" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,7 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Copyright © 2009-2011 Bitcoins Utvecklare
-
-Detta är experimentell programvara.
-
-Distribueras enligt villkoren i MIT/X11 programvarulicens, se den bifogade filen license.txt eller http://www.opensource.org/licenses/mit-license.php.
-
-Denna produkt inkluderar mjukvara utvecklad av OpenSSL Projektet för användning i OpenSSL Toolkit (http://www.openssl.org/) och kryptografisk programvara skriven av Eric Young (eay@cryptsoft.com) och UPnP programvara skriven av Thomas Bernard. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Copyright © 2009-2011 Bitcoins Utvecklare
-
-Detta är experimentell programvara.
-
-Distribueras enligt villkoren i MIT/X11 programvarulicens, se den bifogade filen license.txt eller http://www.opensource.org/licenses/mit-license.php.
-
-Denna produkt inkluderar mjukvara utvecklad av OpenSSL Projektet för användning i OpenSSL Toolkit (http://www.openssl.org/) och kryptografisk programvara skriven av Eric Young (eay@cryptsoft.com) och UPnP programvara skriven av Thomas Bernard.</translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -88,17 +64,17 @@ Denna produkt inkluderar mjukvara utvecklad av OpenSSL Projektet för användnin
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Signera meddelande</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +87,42 @@ Denna produkt inkluderar mjukvara utvecklad av OpenSSL Projektet för användnin
<translation>&amp;amp; Radera</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiera adress</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiera etikett</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Editera</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Ta bort</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Exportera Adressboksinformation</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommaseparerad fil (*. csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Fel vid export</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Kunde inte skriva till filen %1.</translation>
</message>
@@ -257,17 +233,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Programmet kommer nu att stänga ner för att göra färdigt krypteringen. Notera att en krypterat konto inte skyddar mot all form av stöld på en infekterad dator. </translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Kom ihåg att kryptering av din plånbok inte helt kan skydda dig från stöld av dina bitcoins om skadlig kod infekterat din dator.</translation>
+ <translation>Varning: Caps Lock är påslaget</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -314,263 +286,258 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin-plånbok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Synkroniserar med nätverk ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Synkronisering av blockkedja pågår</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;amp; Översikt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Visa översiktsvy av plånbok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Transaktioner</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Bläddra i transaktionshistorik</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Adressbok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Redigera listan med lagrade adresser och etiketter</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;amp; Ta emot bitcoins</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Visa listan med adresser för att ta emot betalningar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;amp; Skicka bitcoins</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Skicka bitcoins till en bitcoinadress</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>Signera &amp;meddelande</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Avsluta</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Avsluta programmet</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Om %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Visa information om Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Om &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Visa information om Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;amp; Alternativ ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Ändra konfigurationsalternativ för bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Öppna &amp;amp;Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Visa Bitcoin-fönster</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;amp;Exportera ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Exportera aktuell vy till fil</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;amp;Kryptera plånbok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Kryptera eller dekryptera plånbok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;amp;Byt lösenfras</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Byt lösenfras för kryptering av plånbok</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Arkiv</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Inställningar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Hjälp</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
- <translation type="unfinished"></translation>
+ <translation>Verktygsfält för Tabbar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
- <translation type="unfinished"></translation>
+ <translation>Verktygsfältet för Handlingar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n aktiv anslutning till Bitcoin-nätverket.</numerusform>
- <numerusform>%n aktiva anslutningar till Bitcoin-nätverket.</numerusform>
- </translation>
+ <translation><numerusform>%n aktiv anslutning till Bitcoin-nätverket.</numerusform><numerusform>%n aktiva anslutningar till Bitcoin-nätverket.</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Laddat ner %1 av %2 block från transaktionshistoriken.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Laddat ner %1 block från transaktionshistoriken.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n sekund sedan</numerusform>
- <numerusform>%n sekunder sedan</numerusform>
- </translation>
+ <translation><numerusform>%n sekund sedan</numerusform><numerusform>%n sekunder sedan</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n minut sedan</numerusform>
- <numerusform>%n minuter sedan</numerusform>
- </translation>
+ <translation><numerusform>%n minut sedan</numerusform><numerusform>%n minuter sedan</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n timme sedan</numerusform>
- <numerusform>%n timmar sedan</numerusform>
- </translation>
+ <translation><numerusform>%n timme sedan</numerusform><numerusform>%n timmar sedan</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n dag sedan</numerusform>
- <numerusform>%n dagar sedan</numerusform>
- </translation>
+ <translation><numerusform>%n dag sedan</numerusform><numerusform>%n dagar sedan</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
- <translation type="unfinished"></translation>
+ <translation>Uppdaterad</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
- <translation type="unfinished"></translation>
+ <translation>Hämtar senaste</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Senast mottagna blocked genererades %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Transaktionen överskrider storleksgränsen.
@@ -579,39 +546,63 @@ Du kan dock fortfarande skicka den mot en kostnad av %1. Denna avgift går till
Vill du betala denna avgift?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Skickar...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Transaktion skickad</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Inkommande transaktion</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished"></translation>
+ <translation>Datum: %1
+Belopp: %2
+Typ: %3
+Adress:%4
+</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Denna plånbok är &lt;b&gt;krypterad&lt;/b&gt; och för närvarande &lt;b&gt;olåst&lt;/b&gt;.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Denna plånbok är &lt;b&gt;krypterad&lt;/b&gt; och för närvarande &lt;b&gt;låst&lt;/b&gt;.</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -623,7 +614,7 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="274"/>
<source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
- <translation type="unfinished"></translation>
+ <translation>Välj en standard för enhets mått, att visa när du skickar mynt</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="281"/>
@@ -641,12 +632,12 @@ Address: %4
<message>
<location filename="../forms/editaddressdialog.ui" line="25"/>
<source>&amp;Label</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Etikett</translation>
</message>
<message>
<location filename="../forms/editaddressdialog.ui" line="35"/>
<source>The label associated with this address book entry</source>
- <translation type="unfinished"></translation>
+ <translation>Den etikett som är associerad med detta adressboksinlägg</translation>
</message>
<message>
<location filename="../forms/editaddressdialog.ui" line="42"/>
@@ -656,7 +647,7 @@ Address: %4
<message>
<location filename="../forms/editaddressdialog.ui" line="52"/>
<source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
- <translation type="unfinished"></translation>
+ <translation>Adressen som är associerad med detta adressboksinlägg. Detta kan enbart ändras för sändande adresser.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="20"/>
@@ -774,17 +765,17 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Valfri transaktionsavgift per kB som ser till att dina transaktioner behandlas snabbt. De flesta transaktioner är 1 kB. Avgift 0,01 rekommenderas.</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
<source>Pay transaction &amp;fee</source>
- <translation type="unfinished"></translation>
+ <translation>Betala överförings &amp;avgift</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -792,89 +783,89 @@ Address: %4
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Adressen som betalningen skall skickas till (t.ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Adressen som betalningen skall skickas till (t.ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Välj adress från adressboken</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Klistra in adress från Urklipp</translation>
+ <translation>Klistra in adress från Urklipp</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Signera meddelande</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Kopiera den markerade adressen till systemets Urklipp</translation>
+ <translation>Kopiera den markerade adressen till systemets Urklipp</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;amp; Kopiera till Urklipp</translation>
+ <translation>&amp;amp; Kopiera till Urklipp</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -882,12 +873,12 @@ Address: %4
<message>
<location filename="../optionsdialog.cpp" line="79"/>
<source>Main</source>
- <translation type="unfinished"></translation>
+ <translation>Allmänt</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="84"/>
<source>Display</source>
- <translation type="unfinished"></translation>
+ <translation>Visa</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="104"/>
@@ -900,7 +891,7 @@ Address: %4
<message>
<location filename="../forms/overviewpage.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Formulär</translation>
</message>
<message>
<location filename="../forms/overviewpage.ui" line="40"/>
@@ -937,7 +928,7 @@ Address: %4
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -971,42 +962,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Dialog</translation>
+ <translation>Dialog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Belopp:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Etikett:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Meddelande:</translation>
+ <translation>Meddelande:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Spara som...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1036,7 +1037,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1124,17 +1125,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Formulär</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="29"/>
<source>A&amp;mount:</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Belopp</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="42"/>
<source>Pay &amp;To:</source>
- <translation type="unfinished"></translation>
+ <translation>Betala &amp; Till:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="66"/>
@@ -1145,7 +1146,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="75"/>
<source>&amp;Label:</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Etikett:</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="93"/>
@@ -1155,7 +1156,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsentry.ui" line="103"/>
<source>Choose address from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Välj adress från adresslistan</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="113"/>
@@ -1208,7 +1209,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="30"/>
<source>%1 confirmations</source>
- <translation>%1 konfirmationer</translation>
+ <translation>%1 bekräftelser</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="47"/>
@@ -1223,12 +1224,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="54"/>
<source>, broadcast through %1 node</source>
- <translation type="unfinished"></translation>
+ <translation>, sänd genom %1 nod</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="56"/>
<source>, broadcast through %1 nodes</source>
- <translation type="unfinished"></translation>
+ <translation>, sänd genom %1 noder</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="60"/>
@@ -1238,7 +1239,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="67"/>
<source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Källa:&lt;/b&gt; Genererade&lt;br&gt;</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="73"/>
@@ -1256,12 +1257,12 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="114"/>
<location filename="../transactiondesc.cpp" line="173"/>
<source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Till:&lt;/b&gt;</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="94"/>
<source> (yours, label: </source>
- <translation type="unfinished"></translation>
+ <translation> (din, etikett: </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="96"/>
@@ -1274,12 +1275,12 @@ p, li { white-space: pre-wrap; }
<location filename="../transactiondesc.cpp" line="190"/>
<location filename="../transactiondesc.cpp" line="207"/>
<source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Kredit:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="133"/>
<source>(%1 matures in %2 more blocks)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="137"/>
@@ -1301,7 +1302,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="211"/>
<source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Nettobelopp:&lt;/b&gt; </translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="217"/>
@@ -1316,7 +1317,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1334,7 +1335,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/transactiondescdialog.ui" line="20"/>
<source>This pane shows a detailed description of the transaction</source>
- <translation type="unfinished"></translation>
+ <translation>Den här panelen visar en detaljerad beskrivning av transaktionen</translation>
</message>
</context>
<context>
@@ -1347,7 +1348,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="213"/>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="213"/>
@@ -1357,15 +1358,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="213"/>
<source>Amount</source>
- <translation type="unfinished"></translation>
+ <translation>Mängd</translation>
</message>
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- </translation>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1375,30 +1373,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="280"/>
<source>Offline (%1 confirmations)</source>
- <translation type="unfinished"></translation>
+ <translation>Offline (%1 bekräftelser)</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="283"/>
<source>Unconfirmed (%1 of %2 confirmations)</source>
- <translation type="unfinished"></translation>
+ <translation>Obekräftad (%1 av %2 bekräftelser)</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="286"/>
<source>Confirmed (%1 confirmations)</source>
- <translation type="unfinished"></translation>
+ <translation>Bekräftad (%1 bekräftelser)</translation>
</message>
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- </translation>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
<source>This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="unfinished"></translation>
+ <translation>Det här blocket togs inte emot av några andra noder och kommer antagligen inte att bli godkänt.</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="304"/>
@@ -1413,11 +1408,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Mottagen från IP</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1425,10 +1416,6 @@ p, li { white-space: pre-wrap; }
<translation>Skickad till</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Skickad till IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Betalning till dig själv</translation>
@@ -1436,12 +1423,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="356"/>
<source>Mined</source>
- <translation type="unfinished"></translation>
+ <translation>Skapad</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="394"/>
<source>(n/a)</source>
- <translation type="unfinished"></translation>
+ <translation>(n/a)</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="593"/>
@@ -1466,177 +1453,177 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="601"/>
<source>Amount removed from or added to balance.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
</context>
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
- <translation type="unfinished"></translation>
+ <translation>Alla</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
- <translation type="unfinished"></translation>
+ <translation>Idag</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
- <translation type="unfinished"></translation>
+ <translation>Denna vecka</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
- <translation type="unfinished"></translation>
+ <translation>Denna månad</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
- <translation type="unfinished"></translation>
+ <translation>Föregående månad</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
- <translation type="unfinished"></translation>
+ <translation>Det här året</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
- <translation type="unfinished"></translation>
+ <translation>Period...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Mottagen med</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Skickad till</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
- <translation type="unfinished"></translation>
+ <translation>Till dig själv</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
- <translation type="unfinished"></translation>
+ <translation>Skapad</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
- <translation type="unfinished"></translation>
+ <translation>Övriga</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
- <translation type="unfinished"></translation>
+ <translation>Sök efter adress eller etikett </translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
- <translation type="unfinished"></translation>
+ <translation>Minsta mängd</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiera adress</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiera etikett</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
- <translation type="unfinished"></translation>
+ <translation>Editera etikett</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
- <translation type="unfinished"></translation>
+ <translation>Visa detaljer...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
- <translation type="unfinished"></translation>
+ <translation>Exportera Transaktions Data</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Kommaseparerad fil (*. csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
- <translation type="unfinished"></translation>
+ <translation>Bekräftad</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Etikett</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adress</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
- <translation type="unfinished"></translation>
+ <translation>Mängd</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
- <translation type="unfinished"></translation>
+ <translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Fel vid export</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Kunde inte skriva till filen %1.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
- <translation type="unfinished"></translation>
+ <translation>Intervall:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
- <translation type="unfinished"></translation>
+ <translation>till</translation>
</message>
</context>
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Skickar...</translation>
</message>
@@ -1646,423 +1633,343 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="3"/>
<source>Bitcoin version</source>
- <translation type="unfinished"></translation>
+ <translation>Bitcoin version</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="4"/>
<source>Usage:</source>
- <translation type="unfinished"></translation>
+ <translation>Användning:</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="5"/>
<source>Send command to -server or bitcoind</source>
- <translation type="unfinished"></translation>
+ <translation>Skicka kommando till -server eller bitcoind</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="6"/>
<source>List commands</source>
- <translation type="unfinished"></translation>
+ <translation>Lista kommandon</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="7"/>
<source>Get help for a command</source>
- <translation type="unfinished"></translation>
+ <translation>Få hjälp med ett kommando</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="8"/>
<source>Options:</source>
- <translation type="unfinished"></translation>
+ <translation>Inställningar:</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
<source>Specify configuration file (default: bitcoin.conf)</source>
- <translation type="unfinished"></translation>
+ <translation>Ange konfigurationsfil (standard:bitcoin.conf)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
<source>Specify pid file (default: bitcoind.pid)</source>
- <translation type="unfinished"></translation>
+ <translation>Ange pid fil (standard:bitcoind.pid)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
<source>Generate coins</source>
- <translation type="unfinished"></translation>
+ <translation>Generera mynt</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="12"/>
<source>Don&apos;t generate coins</source>
- <translation type="unfinished"></translation>
+ <translation>Generera ej mynt</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="13"/>
<source>Start minimized</source>
- <translation type="unfinished"></translation>
+ <translation>Starta som minimerad</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
<source>Specify data directory</source>
- <translation type="unfinished"></translation>
+ <translation>Ange katalog för data</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
<source>Specify connection timeout (in milliseconds)</source>
- <translation type="unfinished"></translation>
+ <translation>Ange timeout för uppkoppling (i millisekunder)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
<source>Connect through socks4 proxy</source>
- <translation type="unfinished"></translation>
+ <translation>Koppla upp genom socks4 proxy</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="17"/>
<source>Allow DNS lookups for addnode and connect</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
<source>Add a node to connect to</source>
- <translation type="unfinished"></translation>
+ <translation>Lägg till en nod att koppla upp mot</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="21"/>
<source>Connect only to the specified node</source>
- <translation type="unfinished"></translation>
+ <translation>Koppla enbart upp till den specifierade noden</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="22"/>
<source>Don&apos;t accept connections from outside</source>
- <translation type="unfinished"></translation>
+ <translation>Acceptera ej anslutningar utifrån</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
<source>Don&apos;t attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="31"/>
<source>Attempt to use UPnP to map the listening port</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
<source>Accept command line and JSON-RPC commands</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="34"/>
<source>Run in the background as a daemon and accept commands</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="35"/>
<source>Use the test network</source>
- <translation type="unfinished"></translation>
+ <translation>Använd test nätverket</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
<source>Username for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="41"/>
<source>Password for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="42"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="43"/>
<source>Allow JSON-RPC connections from specified IP address</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="44"/>
<source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="45"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="46"/>
<source>Rescan the block chain for missing wallet transactions</source>
- <translation type="unfinished"></translation>
+ <translation>Sök i block-kedjan efter saknade wallet transaktioner</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="47"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="50"/>
<source>Use OpenSSL (https) for JSON-RPC connections</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="51"/>
<source>Server certificate file (default: server.cert)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="52"/>
<source>Server private key (default: server.pem)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="53"/>
<source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="56"/>
<source>This help message</source>
- <translation type="unfinished"></translation>
+ <translation>Det här hjälp medelandet</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="57"/>
<source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="60"/>
<source>Loading addresses...</source>
- <translation type="unfinished"></translation>
+ <translation>Laddar adresser...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Fel vid inläsningen av wallet.dat: Kontofilen verkar skadad</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Fel vid inläsningen av wallet.dat: Kontofilen kräver en senare version av Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Kontot behöver sparas om: Starta om Programmet</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Fel vid inläsning av kontofilen wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
<source>Loading block index...</source>
- <translation type="unfinished"></translation>
+ <translation>Laddar block index...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
- <translation type="unfinished"></translation>
+ <translation>Laddar konto...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
- <translation type="unfinished"></translation>
+ <translation>Söker igen...</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="70"/>
<source>Done loading</source>
- <translation type="unfinished"></translation>
+ <translation>Klar med laddning</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="71"/>
<source>Invalid -proxy address</source>
- <translation type="unfinished"></translation>
+ <translation>Ogiltig proxyadress</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="72"/>
<source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>Ogiltigt belopp för -paytxfee=&lt;belopp&gt;</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="73"/>
<source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="76"/>
<source>Error: CreateThread(StartNode) failed</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="77"/>
<source>Warning: Disk space is low </source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="78"/>
<source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Lösenfrasen för dekryptering av plånbok var felaktig.</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Datum</translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Betalning till dig själv</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Status:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, har inte lyckats skickas ännu</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">okänd</translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete">(dina)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(inte accepterad)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Debet:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Meddelande:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Kommentar:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Genererade mynt måste vänta 120 block innan de kan användas. När du skapade detta block sändes det till nätverket för att läggas till i blockkedjan. Om blocket inte kommer in i kedjan kommer det att ändras till &quot;accepteras inte&quot; och kommer ej att gå att spendera. Detta kan ibland hända om en annan nod genererar ett block nästan samtidigt som dig.</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;Starta Bitcoin vid systemstart</translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Skicka pengar</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Skickar...</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adress</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Etikett</translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Redigera adress</translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="84"/>
<source>beta</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>main</name>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
+ <translation>beta</translation>
</message>
</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_tr.ts
index 5a6d235a40..89e2102a25 100644
--- a/src/qt/locale/bitcoin_tr.ts
+++ b/src/qt/locale/bitcoin_tr.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="tr">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="tr" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,27 +21,11 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">Telif hakkı © 2009-2011 Bitcoin geliştiricileri
+ <translation>Telif hakkı © 2009-2012 Bitcoin geliştiricileri
Bu yazılım deneme safhasındadır.
-MIT/X11 yazılım lisansı kapsamında yayınlamıştır, license.txt dosyasına ya da http://www.opensource.org/licenses/mit-license.php sayfasına bakınız.
-
-Bu ürün OpenSSL projesi tarafından OpenSSL Toolkit (http://www.openssl.org/) için geliştirilen yazılımlar, Eric Young (eay@cryptsoft.com) tarafından yazılmış şifreleme yazılımları ve Thomas Bernard tarafından yazılmış UPnP yazılımı içerir. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">Telif hakkı © 2009-2011 Bitcoin geliştiricileri
-
-Bu yazılım deneme safhasındadır.
-
-MIT/X11 yazılım lisansı kapsamında yayınlamıştır, license.txt dosyasına ya da http://www.opensource.org/licenses/mit-license.php sayfasına bakınız.
+MIT/X11 yazılım lisansı kapsamında yayınlanmıştır, license.txt dosyasına ya da http://www.opensource.org/licenses/mit-license.php sayfasına bakınız.
Bu ürün OpenSSL projesi tarafından OpenSSL Toolkit (http://www.openssl.org/) için geliştirilen yazılımlar, Eric Young (eay@cryptsoft.com) tarafından yazılmış şifreleme yazılımları ve Thomas Bernard tarafından yazılmış UPnP yazılımı içerir.</translation>
</message>
@@ -88,17 +70,17 @@ Bu ürün OpenSSL projesi tarafından OpenSSL Toolkit (http://www.openssl.org/)
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;QR kodunu göster</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Bu adresin sizin olduğunu ispatlamak için mesaj imzalayın</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>Mesaj &amp;imzala</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ Bu ürün OpenSSL projesi tarafından OpenSSL Toolkit (http://www.openssl.org/)
<translation>&amp;Sil</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Adresi kopyala</translation>
+ <translation>Adresi kopyala</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Etiketi kopyala</translation>
+ <translation>Etiketi kopyala</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Düzenle</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Sil</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>Adres defteri verilerini dışa aktar</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Virgülle ayrılmış değerler dosyası (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Dışa aktarımda hata oluştu</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>%1 dosyasına yazılamadı.</translation>
</message>
@@ -240,7 +222,7 @@ Bu ürün OpenSSL projesi tarafından OpenSSL Toolkit (http://www.openssl.org/)
<message>
<location filename="../askpassphrasedialog.cpp" line="101"/>
<source>Confirm wallet encryption</source>
- <translation>Cüzdan şifrelenmesini teyit ediniz</translation>
+ <translation>Cüzdan şifrelenmesini teyit eder</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="102"/>
@@ -258,17 +240,13 @@ Cüzdanınızı şifrelemek istediğinizden emin misiniz?</translation>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Şifreleme işlemini tamamlamak için Bitcoin şimdi kapanacaktır. Cüzdanınızı şifrelemenin, bitcoinlerinizin bilgisayara bulaşan kötücül bir yazılım tarafından çalınmaya karşı tamamen koruyamayacağını unutmayınız.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Cüzdanınızı şifrelemenin, bitcoinlerinizin bilgisayara bulaşan kötücül bir yazılım tarafından çalınmaya karşı tamamen koruyamayacağını unutmayınız.</translation>
+ <translation>Uyarı: Caps Lock tuşu etkin durumda.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,312 +293,319 @@ Cüzdanınızı şifrelemek istediğinizden emin misiniz?</translation>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Bitcoin cüzdanı</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Åžebeke ile senkronizasyon...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>Blok zinciri senkronizasyonu sürüyor</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;Genel bakış</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Cüzdana genel bakışı gösterir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;Muameleler</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>Muamele tarihçesini tara</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;Adres defteri</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Saklanan adres ve etiket listesini düzenler</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
- <translation>&amp;Para al</translation>
+ <translation>Para &amp;al</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Ödeme alma adreslerinin listesini gösterir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
- <translation>&amp;Para yolla</translation>
+ <translation>Para &amp;yolla</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Bir bitcoin adresine para (bitcoin) yollar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Mesaj imzala</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Bu adresin kontrolünüz altında olduğunu ispatlayın</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Çık</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Uygulamadan çıkar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>%1 &amp;hakkında</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Bitcoin hakkında bilgi gösterir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Qt hakkında</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Qt hakkında bilgi görüntüler</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Seçenekler...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Bitcoin seçeneklerinin yapılandırmasını değiştirir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>&amp;Bitcoin&apos;i aç</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Bitcoin penceresini gösterir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;Dışa aktar...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>Güncel görünümü bir dosyaya dışarı aktarır</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Güncel sekmedeki verileri bir dosyaya aktar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>Cüzdanı &amp;şifrele</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Cüzdanı şifreler ya da şifreyi açar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>Cüzdanı &amp;yedekle</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>Cüzdanı diğer bir konumda yedekle</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;Parolayı değiştir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Cüzdan şifrelemesi için kullanılan parolayı değiştirir</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Dosya</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;Ayarlar</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Yardım</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Sekme araç çubuğu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Faaliyet araç çubuğu</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>Bitcoin şebekesine %n etkin bağlantı</numerusform>
- </translation>
+ <translation><numerusform>Bitcoin şebekesine %n etkin bağlantı</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Muamele tarihçesinin %2 sayıda blokundan %1 adet blok indirildi.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Muamele tarihçesinin %1 adet bloku indirildi.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n saniye önce</numerusform>
- </translation>
+ <translation><numerusform>%n saniye önce</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n dakika önce</numerusform>
- </translation>
+ <translation><numerusform>%n dakika önce</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n saat önce</numerusform>
- </translation>
+ <translation><numerusform>%n saat önce</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n gün önce</numerusform>
- </translation>
+ <translation><numerusform>%n gün önce</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Güncel</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>Aralık kapatılıyor...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>Son alınan blok şu vakit oluşturulmuştu: %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Bu muamele boyut sınırlarını aşmıştır. Gene de %1 ücret ödeyerek gönderebilirsiniz, ki bu ücret muamelenizi işleyen ve şebekeye yardım eden düğümlere ödenecektir. Ücreti ödemek istiyor musunuz?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>Yollanıyor...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>Muamele yollandı</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Gelen muamele</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Tarih: %1
+ <translation>Tarih: %1
Miktar: %2
Tür: %3
Adres: %4
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Tarih: %1
-Miktar: %2
-Tür: %3
-Adres: %4</translation>
+</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Cüzdan &lt;b&gt;şifrelenmiştir&lt;/b&gt; ve şu anda &lt;b&gt;kilidi açılmıştır&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>Cüzdan &lt;b&gt;şifrelenmiştir&lt;/b&gt; ve şu anda &lt;b&gt;kilitlidir&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>Cüzdanı yedekle</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Cüzdan verileri (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>Yedekleme başarısız oldu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Cüzdan verilerinin başka bir konumda kaydedilmesi sırasında bir hata meydana geldi.</translation>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -753,7 +738,7 @@ Adres: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="190"/>
<source>&amp;Connect through SOCKS4 proxy:</source>
- <translation>SOCKS4 vekil sunucusu vasıtasıyla &amp;bağlan:</translation>
+ <translation>SOCKS4 vekil sunucusu vasıtasıyla ba&amp;ğlan:</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="191"/>
@@ -783,17 +768,17 @@ Adres: %4</translation>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Muamelelerin hızlı işlenmesini sağlayan, seçime dayalı kB başı muamele ücreti. Muamelelerin çoğunluğunun boyutu 1 kB&apos;dir. 0.01 ücreti önerilir. </translation>
+ <translation>Muamelelerin hızlı işlenmesini garantilemeye yardım eden, seçime dayalı kB başı muamele ücreti. Muamelelerin çoğunluğunun boyutu 1 kB&apos;dir. 0.01 ücreti önerilir. </translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
<source>Pay transaction &amp;fee</source>
- <translation>Muamele &amp;ücreti öde</translation>
+ <translation>Muamele ücreti &amp;öde</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Muamelelerin hızlı işlenmesini sağlayan, seçime dayalı kB başı muamele ücreti. Muamelelerin çoğunluğunun boyutu 1 kB&apos;dir. 0.01 ücreti önerilir. </translation>
+ <translation>Muamelelerin hızlı işlenmesini garantilemeye yardım eden, seçime dayalı kB başı muamele ücreti. Muamelelerin çoğunluğunun boyutu 1 kB&apos;dir. 0.01 ücreti önerilir. </translation>
</message>
</context>
<context>
@@ -801,89 +786,89 @@ Adres: %4</translation>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>Mesaj</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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>Bir adresin sizin olduğunu ispatlamak için adresinizle mesaj imzalayabilirsiniz. Oltalama saldırılarının kimliğinizi imzanızla elde etmeyi deneyebilecekleri için belirsiz hiçbir şey imzalamamaya dikkat ediniz. Sadece ayrıntılı açıklaması olan ve tümüne katıldığınız ifadeleri imzalayın.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">Ödemenin gönderileceği adres (mesela 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>Ödemenin gönderileceği adres (mesela 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Adres defterinden adres seç</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Panodan adres yapıştır</translation>
+ <translation>Panodan adres yapıştır</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>İmzalamak istediğiniz mesajı burada giriniz</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>İmza elde etmek için &quot;Mesaj İmzala&quot; unsurunu tıklayın</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Bu adresin sizin olduğunu ispatlamak için bir mesaj imzalayın</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>Mesaj &amp;Ä°mzala</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Şu anda seçili olan adresi panoya kopyalar</translation>
+ <translation>Şu anda seçili olan adresi panoya kopyalar</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">Panoya &amp;kopyala</translation>
+ <translation>Panoya &amp;kopyala</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>İmza sırasında hata meydana geldi</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 geçerli bir adres değildir.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 için özel anahtar mevcut değil.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>İmzalama başarısız oldu</translation>
</message>
</context>
<context>
@@ -946,7 +931,7 @@ Adres: %4</translation>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -980,42 +965,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Diyalog</translation>
+ <translation>Diyalog</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR Kod</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>Ödeme isteği</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>Miktar:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Etiket:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">Mesaj:</translation>
+ <translation>Mesaj:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Farklı kaydet...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>Resmi kaydet...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>PNG resimleri (*.png)</translation>
</message>
</context>
<context>
@@ -1045,7 +1040,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Bütün muamele alanlarını kaldır</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1325,7 +1320,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>Muamele kimliÄŸi:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1371,9 +1366,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>%n blok için açık</numerusform>
- </translation>
+ <translation><numerusform>%n blok için açık</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1398,9 +1391,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Madenden çıkarılan bakiye %n ek blok sonrasında kullanılabilecektir</numerusform>
- </translation>
+ <translation><numerusform>Madenden çıkarılan bakiye %n ek blok sonrasında kullanılabilecektir</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1420,11 +1411,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Alındığı İP adresi</translation>
+ <translation>Alındığı kişi</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1432,10 +1419,6 @@ p, li { white-space: pre-wrap; }
<translation>Gönderildiği adres</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Gönderildiği İP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Kendinize ödeme</translation>
@@ -1479,163 +1462,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Hepsi</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Bugün</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Bu hafta</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Bu ay</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Geçen ay</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Bu sene</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Aralık...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Şununla alınan</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Gönderildiği adres</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Kendinize</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>OluÅŸturulan</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>DiÄŸer</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Aranacak adres ya da etiket giriniz</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Asgari miktar</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Adresi kopyala</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Etiketi kopyala</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Miktarı kopyala</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Etiketi düzenle</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Detayları göster...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>Muamele verilerini dışa aktar</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Virgülle ayrılmış değerler dosyası (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Doğrulandı</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Tarih</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Tür</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Etiket</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>Adres</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>Miktar</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>Kimlik</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Dışa aktarımda hata oluştu</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>%1 dosyasına yazılamadı.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Aralık:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>ilâ</translation>
</message>
@@ -1643,7 +1626,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Gönderiliyor...</translation>
</message>
@@ -1683,12 +1666,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
<source>Specify configuration file (default: bitcoin.conf)</source>
- <translation>Yapılandırma dosyası belirtiniz (varsayılan: bitcoin.conf)</translation>
+ <translation>Yapılandırma dosyası belirt (varsayılan: bitcoin.conf)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
<source>Specify pid file (default: bitcoind.pid)</source>
- <translation>Pid dosyası belirtiniz (varsayılan: bitcoind.pid</translation>
+ <translation>Pid dosyası belirt (varsayılan: bitcoind.pid)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
@@ -1708,12 +1691,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
<source>Specify data directory</source>
- <translation>Veri dizinini belirtiniz</translation>
+ <translation>Veri dizinini belirt</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
<source>Specify connection timeout (in milliseconds)</source>
- <translation>Bağlantı zaman aşım süresini milisaniye olarak belirtiniz</translation>
+ <translation>Bağlantı zaman aşım süresini milisaniye olarak belirt</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
@@ -1728,12 +1711,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Bağlantılar için dinlenecek &lt;port&gt; (varsayılan: 8333 ya da testnet: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Eşler ile en çok &lt;n&gt; adet bağlantı kur (varsayılan: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1753,27 +1736,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>EÅŸ listesini DNS kullanarak baÅŸlatma</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Aksaklık gösteren eşlerle bağlantıyı kesme sınırı (varsayılan: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Aksaklık gösteren eşlerle yeni bağlantıları engelleme süresi, saniye olarak (varsayılan: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Her bağlantı için alım tamponu, &lt;n&gt;*1000 bayt (varsayılan: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Her bağlantı için yollama tamponu, &lt;n&gt;*1000 bayt (varsayılan: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1808,22 +1791,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>İlâve hata ayıklama verisi çıkar</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Hata ayıklama çıktısına tarih ön ekleri ilâve et</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>Trace/hata ayıklama verilerini debug.log dosyası yerine konsola gönder</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>Hata ayıklayıcıya -debugger- trace/hata ayıklama verileri gönder</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1905,36 +1888,32 @@ SSL seçenekleri: (SSL kurulum bilgisi için Bitcoin vikisine bakınız)</transl
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>addr.dat dosyasının yüklenmesinde hata oluştu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>blkindex.dat dosyasının yüklenmesinde hata oluştu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>wallet.dat dosyasının yüklenmesinde hata oluştu: bozuk cüzdan</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>wallet.dat dosyasının yüklenmesinde hata oluştu: cüzdanın daha yeni bir Bitcoin sürümüne ihtiyacı var</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Cüzdanın tekrar yazılması gerekiyordu: işlemi tamamlamak için Bitcoin&apos;i yeniden başlatınız</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">addr.dat dosyasının yüklenmesinde hata </translation>
+ <translation>wallet.dat dosyasının yüklenmesinde hata oluştu</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1942,27 +1921,11 @@ SSL seçenekleri: (SSL kurulum bilgisi için Bitcoin vikisine bakınız)</transl
<translation>Blok indeksi yükleniyor...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">blkindex.dat dosyasının yüklenmesinde hata </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Cüzdan yükleniyor...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">wallet.dat dosyasının yüklenmesinde hata: cüzdan bozuk </translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">wallet.dat dosyasının yüklenmesinde hata: Cüzdan daha yeni bir Bitcoin sürümü gerektiriyor </translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">wallet.dat dosyasının yüklenmesinde hata </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>Yeniden tarama...</translation>
@@ -2003,472 +1966,6 @@ SSL seçenekleri: (SSL kurulum bilgisi için Bitcoin vikisine bakınız)</transl
<translation>%d sayılı porta bu bilgisayarda bağlanılamadı. Bitcoin muhtemelen hâlihazırda çalışmaktadır.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Bu muamele boyut sınırını aşmıştır. Gene de %s ücret ödeyerek gönderebilirsiniz, ki bu ücret muamelenizi işleyen ve şebekeye yardım eden düğümlere ödenecektir. Ücreti ödemek istiyor musunuz?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Güncel cüzdan parolanızı giriniz.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Parola</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Lütfen cüzdan şifresinin açılması için güncel parolayı giriniz.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Cüzdan şifresinin açılması için girilen parola yanlıştı.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">Durum</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Tarih</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">Tanımlama</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Gelir</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Gider</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">%d blok için açık</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">%s değerine dek açık</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/çevrimdışı mı?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/doğrulanmadı</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d doÄŸrulama</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">OluÅŸturuldu</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Oluşturuldu (%s, %d ek blok sonrasında olgunlaşacak)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Oluşturuldu - Uyarı: Bu blok başka hiçbir düğüm tarafından alınmamıştır ve muhtemelen kabul edilmeyecektir!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">OluÅŸturuldu (kabul edilmedi)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Gönderen: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Şununla alınan: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Kendinize ödeme</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Åžu kiÅŸiye: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> OluÅŸturuluyor</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(çevrim dışı)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d bağlantı %d blok %d muamele</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Cüzdan zaten şifrelenmiştir.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Cüzdanınız için yeni parolayı giriniz.
-Lütfen 10 ya da daha fazla rastgele karakter, veya sekiz ya da daha fazla kelime içeren bir parola seçiniz.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Hata: Girilen parola çok kısadır.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">UYARI: Eğer cüzdanınızı şifrelerseniz ve parolanızı kaybederseniz, TÜM BİTCOİNLERİNİZİ KAYBEDERSİNİZ!
-Cüzdanınızı şifrelemek istediğinizden emin misiniz?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Yeni cüzdan parolanızı tekrar giriniz.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Hata: girilen parolalar birbirleriyle uyumlu deÄŸildir.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Cüzdan şifrelenmesi başarısız oldu.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Cüzdan şifrelendi.
-Cüzdanınızı şifrelemenin, bitcoinlerinizin bilgisayara bulaşan kötücül bir yazılım tarafından çalınmaya karşı tamamen koruyamayacağını unutmayınız.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Cüzdan şifrelenmemiştir, lütfen önce şifreleyiniz.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Yeni cüzdan parolanızı giriniz.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Yeni cüzdan parolanızı tekrar giriniz.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Cüzdan parolası değiştirilmiştir.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Yeni alım adresi</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Her aldığınız ödeme için yeni bir adres kullanmanız önerilir.
-
-Etiket</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Durum:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, henüz başarılı bir şekilde yayınlanmadı</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, %d düğüm vasıtasıyla yayınlandı</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, %d düğüm vasıtasıyla yayınlandı</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Tarih:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Kaynak:&lt;/b&gt; OluÅŸturuldu&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Gönderen:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">bilinmiyor</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Alıcı:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (sizin, etiket: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (sizin)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Gelir:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s, %d ek blok sonrasında olgunlaşacak)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(kabul edilmedi)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Gider:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Muamele ücreti:&lt;b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Net miktar:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">Mesaj:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Yorum:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">Oluşturulan paraların (coin) harcanabilmelerinden önce 120 blok beklemeleri gerekmektedir. Oluşturduğunuzda, bu blok, blok zincirine eklenmesi için ağda yayınlandı. Zincire eklenmesi başarısız olursa, &quot;kabul edilmedi&quot; olarak değiştirilecek ve harcanamayacaktır. Bu, bazen başka bir düğüm sizden birkaç saniye önce ya da sonra blok oluşturursa meydana gelebilir.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">autostart/bitcoin.desktop dosyası yazılamadı</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Ana menü</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">Bitcoin&apos;i pencere sistemi ile &amp;baÅŸlat</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">Kapatma sırasında k&amp;üçült</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">sürüm %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Miktarda hata </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Para (coin) yolla</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">Tutar bakiyenizden yüksektir </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Tutar bakiyenizden yüksektir </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> muamele ücreti eklendiğinde </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Ödeme gönderildi</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">Gönderiliyor...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Geçersiz adres</translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">%s, %s adresine gönderiliyor</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">Ä°PTAL EDÄ°LDÄ°</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Ä°ptal edildi</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Muamele iptal edildi </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Hata: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">Yetersiz bakiye</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">Bağlanılıyor...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Bağlantı kurulamadı</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Kamu anahtarı (public key) isteniyor...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">Kamu anahtarı (public key) alındı...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Alıcı İP adresi vasıtasıyla yollanan muameleleri kabul etmiyor</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Muamele kabul edilmedi</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Geçersiz cevap alındı</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Muamele oluÅŸturuluyor...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Bu muamele, miktarı, karmaşıklığı ya da yakın geçmişte alınan fonların kullanımı sebebiyle asgari %s tutarında muamele ücreti gerektirmektedir</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Muamele oluşturulması başarısız oldu</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Muamele iptal edildi</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Bağlantı kaybedildi, muamele iptal edildi</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Ödeme gönderiliyor...</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 type="obsolete">Muamele reddedildi. Cüzdanınızdaki madenî paraların bazıları zaten harcanmış olduğunda bu meydana gelebilir. Örneğin wallet.dat dosyasının bir kopyasını kullandıysanız ve kopyada para harcandığında ancak burada harcandığı işaretlenmediğinde.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">DoÄŸrulama bekleniyor...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Ödeme yollanmıştır, fakat alıcı doğrulama yapamamıştır.
-Muamele kaydedilmiştir ve alıcının fonlarına eklenecektir,
-ancak yorum verileri boş olacaktır.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Ödeme gönderildi fakat geçersiz bir cevap alındı</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Ödeme tamamlandı</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Ä°sim</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">Adres</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Etiket</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin adresi</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Bu, ödeme almak için sizin sizin kendi adreslerinizden biridir ve adres defterine ilâve edilemez. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Adresi düzenle</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Adres etiketini düzenle</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Adres ekle</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">Bitcoin - Oluşturma sürüyor</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (çevrim dışı)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">Bitcoin&apos;i &amp;aç</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">Para &amp;gönder</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">S&amp;eçenekler...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">Ç&amp;ık</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">Program çökmüştür ve sona erdirilecektir. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Uyarı: Lütfen bilgisayarınızın tarih ve saatinin doğru olup olmadığını kontrol ediniz. Saatiniz doğru değilse Bitcoin gerektiği gibi çalışamaz.</translation>
@@ -2479,16 +1976,4 @@ ancak yorum verileri boş olacaktır.</translation>
<translation>beta</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts
index 2d183fb7e1..006c2259b2 100644
--- a/src/qt/locale/bitcoin_uk.ts
+++ b/src/qt/locale/bitcoin_uk.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="uk">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="uk" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">ÐвторÑьке право © 2009-2011 Розробники Bitcoin
+ <translation>ÐвторÑьке право © 2009-2012 Розробники Bitcoin
Це програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ñ” екÑпериментальним.
ПоширюєтьÑÑ Ð·Ð° ліцензією MIT/X11, додаткова Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¼Ñ–ÑтитьÑÑ Ñƒ файлі license.txt, а також за адреÑою http://www.opensource.org/licenses/mit-license.php.
-Цей продукт включає в Ñебе програмне забезпеченнÑ, розроблене в рамках проекту OpenSSL (http://www.openssl.org/), криптографічне програмне забезпеченнÑ, напиÑане Еріком Янгом (eay@cryptsoft.com) та функції Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з UPnP, напиÑані ТомаÑом Бернардом. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">ÐвторÑьке право © 2009-2011 Розробники Bitcoin
-
-Це програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ñ” екÑпериментальним.
-
-ПоширюєтьÑÑ Ð·Ð° ліцензією MIT/X11, додаткова Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¼Ñ–ÑтитьÑÑ Ñƒ файлі license.txt, а також за адреÑою http://www.opensource.org/licenses/mit-license.php.
-
-Цей продукт включає в Ñебе програмне забезпеченнÑ, розроблене в рамках проекту OpenSSL (http://www.openssl.org/), криптографічне програмне забезпеченнÑ, напиÑане Еріком Янгом (eay@cryptsoft.com) та функції Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з UPnP, напиÑані ТомаÑом Бернардом.</translation>
+Цей продукт включає в Ñебе програмне забезпеченнÑ, розроблене в рамках проекту OpenSSL (http://www.openssl.org/), криптографічне програмне забезпеченнÑ, напиÑане Еріком Янгом (eay@cryptsoft.com), та функції Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з UPnP, напиÑані ТомаÑом Бернардом.</translation>
</message>
</context>
<context>
@@ -88,17 +70,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>Показати QR-&amp;Код</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Підпишіть Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð± довеÑти, що ви Ñ” влаÑником цієї адреÑи</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;ПідпиÑати повідомленнÑ</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>&amp;Видалити</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">Скопіювати адреÑу</translation>
+ <translation>Скопіювати адреÑу</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">Скопіювати мітку</translation>
+ <translation>Скопіювати мітку</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Редагувати</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>Видалити</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>ЕкÑпортувати адреÑну книгу</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>Файли відділені комами (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>Помилка при екÑпортуванні</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>Ðеможливо запиÑати у файл %1.</translation>
</message>
@@ -258,17 +240,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>Біткоін-клієнт буде закрито Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу шифруваннÑ. Пам’Ñтайте, що ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ Ð½Ðµ може повніÑÑ‚ÑŽ захиÑтити ваші біткоіни від кражі, у випадку Ñкщо ваш комп’ютер буде інфіковано шкідливими програмами.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Пам’Ñтайте, що ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ Ð½Ðµ може повніÑÑ‚ÑŽ захиÑтити ваші біткоіни від кражі, у випадку Ñкщо ваш комп’ютер буде інфіковано шкідливими програмами.</translation>
+ <translation>Увага: Ввімкнено Caps Lock</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,324 +293,319 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>Гаманець</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð· мережею...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>ВідбуваєтьÑÑ ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð»Ð°Ð½Ñ†ÑŽÐ¶ÐºÐ° блоків...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;ОглÑд</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>Показати загальний оглÑд гаманцÑ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>Пе&amp;реклади</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>ПереглÑнути Ñ–Ñторію переказів</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;ÐдреÑна книга</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>Редагувати ÑпиÑок збережених Ð°Ð´Ñ€ÐµÑ Ñ‚Ð° міток</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>О&amp;тримати</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>Показати ÑпиÑок Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñ–Ð²</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>В&amp;ідправити</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>Відправити монети на вказану адреÑу</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;ПідпиÑати повідомленнÑ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>Доведіть, що це ваша адреÑа</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>&amp;Вихід</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>Вийти</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>П&amp;ро %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>Показати інформацію про Bitcoin</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Про Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>Показати інформацію про Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;Параметри...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>Редагувати параметри</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>Показати &amp;гаманець</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>Показати вікно гаманцÑ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;ЕкÑпорт...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>ЕкÑпортувати в файл</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;Ð¨Ð¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>Зашифрувати чи розшифрувати гаманець</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>Змінити парол&amp;ь</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>Змінити пароль, Ñкий викориÑтовуєтьÑÑ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;Файл</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;ÐалаштуваннÑ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;Довідка</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>Панель вкладок</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>Панель дій</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[теÑтова мережа]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n активне Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею</numerusform>
- <numerusform>%n активні Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею</numerusform>
- <numerusform>%n активних з’єднань з мережею</numerusform>
- </translation>
+ <translation><numerusform>%n активне Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею</numerusform><numerusform>%n активні Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею</numerusform><numerusform>%n активних з’єднань з мережею</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>Завантажено %1 з %2 блоків Ñ–Ñторії переказів.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>Завантажено %1 блоків Ñ–Ñторії транзакцій.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n Ñекунду тому</numerusform>
- <numerusform>%n Ñекунди тому</numerusform>
- <numerusform>%n Ñекунд тому</numerusform>
- </translation>
+ <translation><numerusform>%n Ñекунду тому</numerusform><numerusform>%n Ñекунди тому</numerusform><numerusform>%n Ñекунд тому</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n хвилину тому</numerusform>
- <numerusform>%n хвилини тому</numerusform>
- <numerusform>%n хвилин тому</numerusform>
- </translation>
+ <translation><numerusform>%n хвилину тому</numerusform><numerusform>%n хвилини тому</numerusform><numerusform>%n хвилин тому</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n годину тому</numerusform>
- <numerusform>%n години тому</numerusform>
- <numerusform>%n годин тому</numerusform>
- </translation>
+ <translation><numerusform>%n годину тому</numerusform><numerusform>%n години тому</numerusform><numerusform>%n годин тому</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n день тому</numerusform>
- <numerusform>%n Ð´Ð½Ñ Ñ‚Ð¾Ð¼Ñƒ</numerusform>
- <numerusform>%n днів тому</numerusform>
- </translation>
+ <translation><numerusform>%n день тому</numerusform><numerusform>%n Ð´Ð½Ñ Ñ‚Ð¾Ð¼Ñƒ</numerusform><numerusform>%n днів тому</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>Синхронізовано</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>СинхронізуєтьÑÑ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>ОÑтанній отриманий блок було згенеровано %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>Цей переказ перевищує макÑимально допуÑтимий розмір. Проте ви можете здійÑнити Ñ—Ñ—, додавши коміÑÑ–ÑŽ в %1, Ñка відправитьÑÑ Ñ‚Ð¸Ð¼ вузлам що оброблÑÑ‚ÑŒ ваш переказ, та допоможе підтримати мережу. Ви хочете додати коміÑÑ–ÑŽ?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>ВідправленнÑ...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>ÐадіÑлані перекази</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>Отримані перекази</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">Дата: %1
-КількіÑÑ‚ÑŒ: %2
-Тип: %3
-ÐдреÑа: %4
-
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">Дата: %1
+ <translation>Дата: %1
КількіÑÑ‚ÑŒ: %2
Тип: %3
ÐдреÑа: %4
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>&lt;b&gt;Зашифрований&lt;/b&gt; гаманець &lt;b&gt;розблоковано&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>&lt;b&gt;Зашифрований&lt;/b&gt; гаманець &lt;b&gt;заблоковано&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -795,7 +768,7 @@ Address: %4</source>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Опціональна коміÑÑ–Ñ Ð·Ð° кожен Кб переказу, Ñка дозволÑÑ” бути впевненим у тому, що ваш переказ буде оброблено швидко. Розмір більшоÑÑ‚Ñ– переказів рівен 1 Кб. Рекомендована коміÑÑ–Ñ: 0,01.</translation>
+ <translation>Добровільна коміÑÑ–Ñ Ð·Ð° кожен Кб переказу, Ñка дозволÑÑ” бути впевненим у тому, що ваш переказ буде оброблено швидко. Розмір більшоÑÑ‚Ñ– переказів рівен 1 Кб. Рекомендована коміÑÑ–Ñ: 0,01.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -805,7 +778,7 @@ Address: %4</source>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>Опціональна коміÑÑ–Ñ Ð·Ð° кожен Кб переказу, Ñка дозволÑÑ” бути впевненим у тому, що ваш переказ буде оброблено швидко. Розмір більшоÑÑ‚Ñ– переказів рівен 1 Кб. Рекомендована коміÑÑ–Ñ: 0,01.</translation>
+ <translation>Добровільна коміÑÑ–Ñ Ð·Ð° кожен Кб переказу, Ñка дозволÑÑ” бути впевненим у тому, що ваш переказ буде оброблено швидко. Розмір більшоÑÑ‚Ñ– переказів рівен 1 Кб. Рекомендована коміÑÑ–Ñ: 0,01.</translation>
</message>
</context>
<context>
@@ -813,89 +786,89 @@ Address: %4</source>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>ПовідомленнÑ</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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 type="unfinished"/>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">ÐдреÑа Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ñ‡Ð° платежу (наприклад, 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>ÐдреÑа Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ñ‡Ð° платежу (наприклад, 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>Вибрати адреÑу з адреÑної книги</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">Ð’Ñтавити адреÑу</translation>
+ <translation>Ð’Ñтавити адреÑу</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>Введіть повідомленнÑ, Ñке ви хочете підпиÑати тут</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>ÐатиÑніть кнопку &quot;ПідпиÑати повідомленнÑ&quot;, Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>Підпишіть Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð± довеÑти, що ви Ñ” влаÑником цієї адреÑи</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;ПідпиÑати повідомленнÑ</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">Копіювати виділену адреÑу в буфер обміну</translation>
+ <translation>Копіювати виділену адреÑу в буфер обміну</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;Копіювати</translation>
+ <translation>&amp;Копіювати</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка при підпиÑуванні</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>&quot;%1&quot; не Ñ” коректною адреÑою в мережі Bitcoin.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>Приватний ключ Ð´Ð»Ñ %1 недоÑтупний.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе вдалоÑÑŒ підпиÑати</translation>
</message>
</context>
<context>
@@ -958,7 +931,7 @@ Address: %4</source>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -992,42 +965,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">Діалог</translation>
+ <translation>Діалог</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR-Код</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>ЗапроÑити Платіж</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>КількіÑÑ‚ÑŒ:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>Мітка:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">ПовідомленнÑ:</translation>
+ <translation>ПовідомленнÑ:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Зберегти Ñк...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
</message>
</context>
<context>
@@ -1057,7 +1040,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>Видалити вÑÑ– Ð¿Ð¾Ð»Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ñ–Ñ—</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1337,7 +1320,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>ID транзакції:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1383,11 +1366,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>Відкрити Ð´Ð»Ñ %n блоку</numerusform>
- <numerusform>Відкрити Ð´Ð»Ñ %n блоків</numerusform>
- <numerusform>Відкрити Ð´Ð»Ñ %n блоків</numerusform>
- </translation>
+ <translation><numerusform>Відкрити Ð´Ð»Ñ %n блоку</numerusform><numerusform>Відкрити Ð´Ð»Ñ %n блоків</numerusform><numerusform>Відкрити Ð´Ð»Ñ %n блоків</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1412,11 +1391,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>Добутими монетами можна буде ÑкориÑтатиÑÑŒ через %n блок</numerusform>
- <numerusform>Добутими монетами можна буде ÑкориÑтатиÑÑŒ через %n блоки</numerusform>
- <numerusform>Добутими монетами можна буде ÑкориÑтатиÑÑŒ через %n блоків</numerusform>
- </translation>
+ <translation><numerusform>Добутими монетами можна буде ÑкориÑтатиÑÑŒ через %n блок</numerusform><numerusform>Добутими монетами можна буде ÑкориÑтатиÑÑŒ через %n блоки</numerusform><numerusform>Добутими монетами можна буде ÑкориÑтатиÑÑŒ через %n блоків</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1436,11 +1411,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">Отримано з IP-адреÑи</translation>
+ <translation>Отримано від</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1448,10 +1419,6 @@ p, li { white-space: pre-wrap; }
<translation>Відправлено</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">Відправлено на IP-адреÑу</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>Відправлено Ñобі</translation>
@@ -1495,163 +1462,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>Ð’ÑÑ–</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>Сьогодні</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>Ðа цьому тижні</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>Ðа цьому міÑÑці</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>Минулого міÑÑцÑ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>Цього року</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>Проміжок</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>Отримані на</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>Відправлені на</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>Відправлені Ñобі</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>Добуті</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>Інше</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>Введіть адреÑу чи мітку Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>Мінімальна Ñума</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>Скопіювати адреÑу</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>Скопіювати мітку</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>Копіювати кількіÑÑ‚ÑŒ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>Редагувати мітку</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>Показати деталі...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>ЕкÑпортувати дані переказів</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>Файли, розділені комою (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>Підтверджені</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>Тип</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>Мітка</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>ÐдреÑа</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>КількіÑÑ‚ÑŒ</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>Ідентифікатор</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>Помилка екÑпорту</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>Ðеможливо запиÑати у файл %1</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>Діапазон від:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>до</translation>
</message>
@@ -1659,7 +1626,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>Відправка...</translation>
</message>
@@ -1757,12 +1724,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>Чекати на з&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ð° порту (по замовченню 8333 або теÑтова мережа 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>Підтримувати не більше &lt;n&gt; зв&apos;Ñзків з колегами (за замовчуваннÑм: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1785,27 +1752,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе завантажувати ÑпиÑок пірів за допомогою DNS</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Поріг Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾ підєднаних пірів (за замовчуваннÑм: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>МакÑимальній розмір вхідного буферу на одне з&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (за замовчуваннÑм 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>МакÑимальоий буфер , &lt;n&gt; * 1000 байт (за умовчаннÑм: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>МакÑимальній розмір виіхідного буферу на одне з&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (за замовчуваннÑм 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1822,8 +1789,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>КоміÑÑ–Ñ Ð·Ð° Кб
-</translation>
+ <translation>КоміÑÑ–Ñ Ð·Ð° Кб</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1846,22 +1812,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>Виводити більше налагоджувальної інформації</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>Доповнювати налагоджувальний вивід відміткою чаÑу</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>ВідÑилаті налагоджувальну інформацію на конÑоль, а не у файл debug.log</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>ВідÑилаті налагоджувальну інформацію до налагоджувача</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1956,37 +1922,32 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка при завантаженні addr.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка при завантаженні blkindex.dat </translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка при завантаженні wallet.dat: Гаманець пошкоджено </translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка при завантаженні wallet.dat: Гаманець потребує новішої верÑÑ–Ñ— Біткоін-клієнта</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>Потрібно перезапиÑати гаманець: перезапуÑÑ‚Ñ–Ñ‚ÑŒ Біткоін-клієнт Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">Помилка при завантаженні addr.dat
-</translation>
+ <translation>Помилка при завантаженні wallet.dat</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1994,31 +1955,11 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу блоків...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">Помилка при завантаженні blkindex.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">Помилка при завантаженні wallet.dat: Гаманець пошкоджено
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">Помилка при завантаженні wallet.dat: Гаманець потребує новішої верÑÑ–Ñ— Bitcoin&apos;а
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">Помилка при завантаженні wallet.dat
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>СкануваннÑ...</translation>
@@ -2059,471 +2000,6 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation>Ðеможливо прив’Ñзати до порту %d на цьому комп’ютері. Молживо гаманець вже запущено.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">Цей переказ перевищує макÑимально допуÑтимий розмір. Проте ви можете здійÑнити Ñ—Ñ—, додавши коміÑÑ–ÑŽ в %s, Ñка відправитьÑÑ Ñ‚Ð¸Ð¼ вузлам що оброблÑÑ‚ÑŒ ваш переказ, та допоможе підтримати мережу. Ви хочете додати коміÑÑ–ÑŽ?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">Введіть пароль від гаманцÑ.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">Пароль</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">Будь лаÑка, вкажіть пароль Ð´Ð»Ñ Ð´ÐµÑˆÐ¸Ð²Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ.</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">Пароль вказано невірно.</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">СтатуÑ</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">Дата</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">ОпиÑ</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">Дебет</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">Кредит</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">Відкрито до Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ %d блоків</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">Відкрито до %s</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/поза інтернетом?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/не підтверджено</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d підтверджень</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">Згенеровано</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">Згенеровано (%s «дозріє» через %d блоків)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">Згенеровано — увага: цей блок не був отриманий жодними іншими вузлами Ñ–, ймовірно, не буде прийнÑтий!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">Згенеровано (не підтверджено)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">Відправник: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">Отримувач: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">Відправлено Ñобі</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">Отримувач: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> ГенераціÑ</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(не підключено)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d з’єднань %d блоків %d переказів</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">Гаманець уже зашифровано.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">Введіть новий пароль Ð´Ð»Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ.
-Будь лаÑка викориÑтовуйте пароль із Ñк мінімум 10-и випадкових Ñимволів, або Ñк мінімум із 8-и Ñлів.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">Помилка: Вказаний пароль занадто короткий.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">УВÐГÐ: Якщо ви зашифруєте гаманець Ñ– забудете пароль, ви ВТРÐТИТЕ ВСІ СВОЇ БІТКОІÐИ!
-Ви дійÑно хочете зашифрувати Ñвій гаманець?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">Будь лаÑка, повторіть новий пароль.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">Помилка: введені паролі не Ñпівпадають.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">Ðе вдалоÑÑ Ð·Ð°ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ гаманець.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">Гаманець зашифровано.
-Пам’Ñтайте, що ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ Ð½Ðµ може повніÑÑ‚ÑŽ захиÑтити ваші біткоіни від кражі, у випадку Ñкщо ваш комп’ютер буде інфіковано шкідливими програмами.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">Гаманець не зашифровано, Ñпочатку зашифруйте його.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Введіть новий пароль Ð´Ð»Ñ Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">Повторіть ввід нового паролÑ.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">Змінено пароль від гаманцÑ.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">Ðова адреÑа Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">Ви повинні викориÑтовувати нову адреÑу Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ переказу, Ñкий ви отримуєте.
-Мітка</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;СтатуÑ:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, ще не було розіÑлано</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, розÑилати через %d вузол</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, розÑилати через %d вузлів</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Дата:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;Джерело:&lt;/b&gt; згенеровано&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Відправник:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">невідомо</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Отримувач:&lt;/b&gt;</translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (ваша мітка: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (ваш)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Кредит:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s «дозріє» через %d блоків)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(не прийнÑто)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Дебет:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;КоміÑÑ–Ñ:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;Загальна Ñума:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">ПовідомленнÑ:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">Коментар:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">ПіÑÐ»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— монет, потрібно зачекати 120 блоків, перш ніж Ñ—Ñ… можна буде викориÑтати. Коли ви згенерували цей блок, його було відправлено в мережу Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб він був доданий до ланцюжка блоків. Якщо Ñ†Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° не вдаÑÑ‚ÑŒÑÑ, ÑÑ‚Ð°Ñ‚ÑƒÑ Ð±ÑƒÐ´Ðµ змінено на «не підтверджено» Ñ– ви не зможете потратити згенеровані монету. Таке може ÑтатиÑÑŒ, Ñкщо хтоÑÑŒ інший згенерував блок на декілька Ñекунд раніше.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">Ðеможливо запиÑати файл autostart/bitcoin.desktop</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">Головне</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;ЗапуÑкати гаманець при вході в ÑиÑтему</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">З&amp;гортати заміÑÑ‚ÑŒ закриттÑ</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">верÑÑ–Ñ %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">Помилка в кількоÑÑ‚Ñ– </translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">Відправка</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">КількіÑÑ‚ÑŒ монет Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” ваш Ð±Ð°Ð»Ð°Ð½Ñ </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">Сума перевищить ваш баланÑ, Ñкщо коміÑÑ–Ñ </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete">буде додана до вашого переказу </translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">Оплата відправлена </translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">ВідправленнÑ...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">Помилкова адреÑа </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">Ð’Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ %s адреÑату %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">ВІДМІÐЕÐО</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">Відмінено</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">Переказ відмінено </translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">Помилка: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">ÐедоÑтатньо коштів</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">ПідключеннÑ...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">Ðеможливо підключитиÑÑŒ</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">Запит публічного ключа...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ ключа...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">Одержувач не приймає перекази, відправлені на IP-адреÑу</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">Переказ не підтверджено</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">Отримана помилкова відповідь</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐºÐ°Ð·Ñƒ...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">Цей переказ потребує Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ñ–ÑÑ–Ñ— Ñк мінімум в %s, через його розмір, ÑкладніÑÑ‚ÑŒ, або внаÑлідок викориÑÑ‚Ð°Ð½Ð½Ñ Ð½ÐµÐ´Ð°Ð²Ð½Ð¾ отриманих коштів</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">Ðе вдалоÑÑ Ñтворити переказ</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">Переказ відмінено</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">Втрачено з’єднаннÑ, переказ відмінено</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">Відправка оплати...</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 type="obsolete">Переказ було відхилено. Це може ÑтатиÑÑŒ, Ñкщо декілька монет з вашого Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ Ð²Ð¶Ðµ викориÑтані, наприклад, Ñкщо ви викориÑтовуєте одну копію Ð³Ð°Ð¼Ð°Ð½Ñ†Ñ (wallet.dat), а монети були викориÑтані з іншої копії, але не позначені Ñк викориÑтані в цій.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">Оплата була відправлена, але отримувач не зміг підтвердити її.
-Переказ було запиÑано Ñ– він буде нарахований отримувачу,
-але коментар буде порожнім.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">Оплата була відправлена, але отримано неправильну відповідь</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">Оплата завершена</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">Ім’Ñ</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">ÐдреÑа</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">Мітка</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">Bitcoin-адреÑа</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">Це одина із ваших влаÑних Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ñ–Ð². Вона не може бути додана в адреÑну книгу. </translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">Редагувати адреÑу</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">Редагувати мітку</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">Додати адреÑу</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">Bitcoin</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">ГенераціÑ</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">Bitcoin - (не підключений)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;Показати гаманець</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;Відправка</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">&amp;ÐалаштуваннÑ</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">&amp;Вихід</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">ВнаÑлідок Ð²Ð¸Ð½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, програма буде закрита. </translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>Увага: будь лаÑка, перевірте дату Ñ– Ñ‡Ð°Ñ Ð½Ð° Ñвому комп’ютері. Якщо ваш годинник йде неправильно, Bitcoin може працювати некоректно.</translation>
@@ -2534,16 +2010,4 @@ but the comment information will be blank.</source>
<translation>бета</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">Bitcoin Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</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 6ac6c459ed..d059aa0351 100644
--- a/src/qt/locale/bitcoin_zh_CN.ts
+++ b/src/qt/locale/bitcoin_zh_CN.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="zh_CN">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_CN" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">版æƒæ‰€æœ‰ © 2009-2011 比特å¸å¼€å‘团队
+ <translation>版æƒå½’比特å¸å¼€å‘者所有 © 2009-2012
-本软件目å‰å°šå±žæµ‹è¯•é˜¶æ®µ
-
-本软件éµå¾ª MIT/X11 软件å议,详细请查阅附带的 license.txt 文件,或访问 http://www.opensource.org/licenses/mit-license.php.
-
-æœ¬è½¯ä»¶åŒ…å« OpenSSL 项目开å‘çš„ OpenSSL Toolkit 组件(http://www.openssl.org/), Eric Young (eay@cryptsoft.com) å¼€å‘çš„åŠ å¯†è½¯ä»¶ä»¥åŠ Thomas Bernard å¼€å‘çš„UPnP软件 {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
+这是一个实验性软件。
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">版æƒæ‰€æœ‰ © 2009-2011 比特å¸å¼€å‘团队
-
-本软件目å‰å°šå±žæµ‹è¯•é˜¶æ®µ
-
-本软件éµå¾ª MIT/X11 软件å议,详细请查阅附带的 license.txt 文件,或访问 http://www.opensource.org/licenses/mit-license.php.
-
-æœ¬è½¯ä»¶åŒ…å« OpenSSL 项目开å‘çš„ OpenSSL Toolkit 组件(http://www.openssl.org/), Eric Young (eay@cryptsoft.com) å¼€å‘çš„åŠ å¯†è½¯ä»¶ä»¥åŠ Thomas Bernard å¼€å‘çš„UPnP软件</translation>
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</translation>
</message>
</context>
<context>
@@ -88,17 +70,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>显示二维ç </translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>å‘é€ç­¾å消æ¯ä»¥è¯æ˜Žæ‚¨æ˜¯è¯¥æ¯”特å¸åœ°å€çš„拥有者</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;å‘é€ç­¾å消æ¯</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>&amp;删除</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">å¤åˆ¶åœ°å€</translation>
+ <translation>å¤åˆ¶åœ°å€</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">å¤åˆ¶æ ‡ç­¾</translation>
+ <translation>å¤åˆ¶æ ‡ç­¾</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>编辑</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>删除</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>导出地å€è–„æ•°æ®</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>逗å·åˆ†éš”文件 (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>导出错误</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>无法写入文件 %1。</translation>
</message>
@@ -258,17 +240,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>将关闭软件以完æˆåŠ å¯†è¿‡ç¨‹ã€‚ 请您谨记:钱包加密并ä¸æ˜¯ä¸‡èƒ½çš„,电脑中毒,您的比特å¸è¿˜æ˜¯æœ‰å¯èƒ½ä¸¢å¤±ã€‚</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">请注æ„,当您的计算机感染æ¶æ„软件时,加密钱包并ä¸èƒ½å®Œå…¨è§„é¿æ‚¨çš„比特å¸è¢«å·çªƒçš„å¯èƒ½ã€‚</translation>
+ <translation>警告:大写é”定键CapsLockå¼€å¯</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,314 +293,319 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>比特å¸é’±åŒ…</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>正在与网络åŒæ­¥...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>正在åŒæ­¥åŒºåŸŸé”链</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>&amp;概况</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>显示钱包概况</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>&amp;交易</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>查看交易历å²</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>&amp;地å€è–„</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>修改存储的地å€å’Œæ ‡ç­¾åˆ—表</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>&amp;接收货å¸</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>显示接收支付的地å€åˆ—表</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>&amp;å‘é€è´§å¸</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>将货å¸å‘é€åˆ°ä¸€ä¸ªæ¯”特å¸åœ°å€</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>å‘é€ç­¾å &amp;消æ¯</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>è¯æ˜Žæ‚¨æ‹¥æœ‰æŸä¸ªæ¯”特å¸åœ°å€</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>退出</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>退出程åº</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>&amp;关于 %1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>显示比特å¸çš„相关信æ¯</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>关于 &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>显示Qt相关信æ¯</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>&amp;选项...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>修改比特å¸é…置选项</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>打开 &amp;比特å¸</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>显示比特å¸çª—å£</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>&amp;导出...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>导出当å‰è§†å›¾åˆ°æŒ‡å®šæ–‡ä»¶</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>导出当å‰æ•°æ®åˆ°æ–‡ä»¶</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>&amp;加密钱包</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>加密或解密钱包</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>&amp;备份钱包</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>备份钱包到其它文件夹</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>&amp;修改å£ä»¤</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>修改钱包加密å£ä»¤</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>&amp;文件</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>&amp;设置</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>&amp;帮助</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>分页工具æ </translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>动作工具æ </translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>%n 个到比特å¸ç½‘络的活动连接</numerusform>
- </translation>
+ <translation><numerusform>%n 个到比特å¸ç½‘络的活动连接</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>%1 / %2 个交易历å²çš„区å—已下载</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>%1 个交易历å²çš„区å—已下载</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n 秒å‰</numerusform>
- </translation>
+ <translation><numerusform>%n 秒å‰</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n 分ç§å‰</numerusform>
- </translation>
+ <translation><numerusform>%n 分ç§å‰</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n å°æ—¶å‰</numerusform>
- </translation>
+ <translation><numerusform>%n å°æ—¶å‰</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n 天å‰</numerusform>
- </translation>
+ <translation><numerusform>%n 天å‰</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>最新状æ€</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>更新中...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>最新收到的区å—产生于 %1。</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>该笔交易的数æ®é‡è¶…é™.您å¯ä»¥é€‰æ‹©æ”¯ä»˜ %1 交易费, 交易费将支付给处ç†è¯¥ç¬”交易的网络节点,有助于维æŒæ¯”特å¸ç½‘络的è¿è¡Œ. 您愿æ„支付交易费用å—?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>å‘é€ä¸­</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>å·²å‘é€äº¤æ˜“</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>æµå…¥äº¤æ˜“</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">日期: %1
-金é¢: %2
-类别: %3
-地å€: %4
-
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">日期: %1
+ <translation>日期: %1
金é¢: %2
类别: %3
地å€: %4
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>钱包已被&lt;b&gt;加密&lt;/b&gt;,当å‰ä¸º&lt;b&gt;解é”&lt;/b&gt;状æ€</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>钱包已被&lt;b&gt;加密&lt;/b&gt;,当å‰ä¸º&lt;b&gt;é”定&lt;/b&gt;状æ€</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>备份钱包</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>钱包文件(*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>备份失败</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>备份钱包到其它文件夹失败.</translation>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -785,7 +768,7 @@ Address: %4</source>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>为æ¯1 kB交易数æ®æ”¯ä»˜äº¤æ˜“费将ä¿è¯æ‚¨çš„交易尽快被处ç†.大部分交易数æ®éƒ½å°äºŽ1 kB. 建议支付0.01个比特å¸çš„交易费. </translation>
+ <translation>建议支付交易费用,有助于您的交易得到尽快处ç†. ç»å¤§å¤šæ•°äº¤æ˜“的字节数为 1 kB. 建议支付0.01个比特å¸.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -795,7 +778,7 @@ Address: %4</source>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>为æ¯1 kB交易数æ®æ”¯ä»˜äº¤æ˜“费将ä¿è¯æ‚¨çš„交易尽快被处ç†.大部分交易数æ®éƒ½å°äºŽ1 kB. 建议支付0.01个比特å¸çš„交易费. </translation>
+ <translation>建议支付交易费用,有助于您的交易得到尽快处ç†. ç»å¤§å¤šæ•°äº¤æ˜“的字节数为 1 kB. 建议支付0.01个比特å¸.</translation>
</message>
</context>
<context>
@@ -803,89 +786,89 @@ Address: %4</source>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>消æ¯</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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>您å¯ä»¥ç”¨ä½ çš„地å€å¯¹æ¶ˆæ¯è¿›è¡Œç­¾å,以è¯æ˜Žæ‚¨æ˜¯è¯¥åœ°å€çš„所有人。注æ„ä¸è¦å¯¹æ¨¡æ£±ä¸¤å¯çš„消æ¯ç­¾å,以å…é­å—é’“é±¼å¼æ”»å‡»ã€‚请确ä¿æ¶ˆæ¯çœŸå®žæ˜Žç¡®çš„表达了您的æ„愿。</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">ä»˜æ¬¾åœ°å€ (例如: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>ä»˜æ¬¾åœ°å€ (例如: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>从地å€ç°¿é€‰æ‹©åœ°å€</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">从剪贴æ¿ç²˜è´´åœ°å€</translation>
+ <translation>从剪贴æ¿ç²˜è´´åœ°å€</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>请输入您è¦å‘é€çš„ç­¾å消æ¯</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>å•å‡»â€œå‘é€ç­¾å消æ¯&quot;获å–ç­¾å</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>å‘é€ç­¾å消æ¯ä»¥è¯æ˜Žæ‚¨æ˜¯è¯¥æ¯”特å¸åœ°å€çš„拥有者</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;å‘é€ç­¾å消æ¯</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">å¤åˆ¶å½“å‰é€‰ä¸­åœ°å€åˆ°ç³»ç»Ÿå‰ªè´´æ¿</translation>
+ <translation>å¤åˆ¶å½“å‰é€‰ä¸­åœ°å€åˆ°ç³»ç»Ÿå‰ªè´´æ¿</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">&amp;å¤åˆ¶åˆ°å‰ªè´´æ¿</translation>
+ <translation>&amp;å¤åˆ¶åˆ°å‰ªè´´æ¿</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>ç­¾å错误</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 ä¸æ˜¯åˆæ³•çš„比特å¸åœ°å€ã€‚</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 的秘钥ä¸å¯ç”¨ã€‚</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>ç­¾å失败</translation>
</message>
</context>
<context>
@@ -948,7 +931,7 @@ Address: %4</source>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -982,42 +965,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">会è¯</translation>
+ <translation>会è¯</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>二维ç </translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>请求付款</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>金é¢ï¼š</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>标签:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">消æ¯ï¼š</translation>
+ <translation>消æ¯ï¼š</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;å¦å­˜ä¸º</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>ä¿å­˜å›¾åƒ...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>PNG图åƒæ–‡ä»¶(*.png)</translation>
</message>
</context>
<context>
@@ -1047,7 +1040,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>移除所有交易项</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1327,7 +1320,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>交易ID:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1373,9 +1366,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>å¼€å¯ %n 个数æ®å—</numerusform>
- </translation>
+ <translation><numerusform>å¼€å¯ %n 个数æ®å—</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1400,9 +1391,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>挖矿所得将在 %n 个数æ®å—之åŽå¯ç”¨</numerusform>
- </translation>
+ <translation><numerusform>挖矿所得将在 %n 个数æ®å—之åŽå¯ç”¨</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1422,11 +1411,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">从IP接收 </translation>
+ <translation>收款æ¥è‡ª</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1434,10 +1419,6 @@ p, li { white-space: pre-wrap; }
<translation>å‘é€åˆ°</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">å‘é€åˆ°IP</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>付款给自己</translation>
@@ -1481,163 +1462,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>全部</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>今天</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>本周</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>本月</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>上月</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>今年</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>范围...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>接收于</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>å‘é€åˆ°</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>到自己</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>挖矿所得</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>其他</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>输入地å€æˆ–标签进行æœç´¢</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>最å°é‡‘é¢</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>å¤åˆ¶åœ°å€</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>å¤åˆ¶æ ‡ç­¾</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>å¤åˆ¶é‡‘é¢</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>编辑标签</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>显示细节...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>导出交易数æ®</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>逗å·åˆ†éš”文件(*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>已确认</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>类别</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>标签</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>地å€</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>金é¢</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>导出错误</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>无法写入文件 %1。</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>范围:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>到</translation>
</message>
@@ -1645,7 +1626,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>å‘é€ä¸­...</translation>
</message>
@@ -1743,12 +1724,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>监å¬ç«¯å£è¿žæŽ¥ &lt;port&gt; (缺çœ: 8333 or testnet: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>最大连接数 &lt;n&gt; (缺çœ: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1770,27 +1751,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>ä¸è¦ç”¨DNSå¯åŠ¨</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>Threshold for disconnecting misbehaving peers (缺çœ: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>Number of seconds to keep misbehaving peers from reconnecting (缺çœ: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (缺çœ: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (缺çœ: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1807,7 +1788,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>æ¯å‘é€1 kB交易所需的费用</translation>
+ <translation>为付款交易支付比特å¸(æ¯kb)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1831,22 +1812,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>输出调试信æ¯</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>为调试输出信æ¯æ·»åŠ æ—¶é—´æˆ³</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>跟踪/调试信æ¯è¾“出到控制å°ï¼Œä¸è¾“出到debug.log文件</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>跟踪/调试信æ¯è¾“出到 调试器debugger</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1940,37 +1921,32 @@ SSL 选项: (SSL 安装教程具体è§æ¯”特å¸ç»´åŸºç™¾ç§‘)
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>addr.dat文件加载错误</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>blkindex.dat文件加载错误</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>wallet.dat钱包文件加载错误:钱包æŸå</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>wallet.dat钱包文件加载错误:请å‡çº§åˆ°æœ€æ–°Bitcoin客户端</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>钱包文件需è¦é‡å†™ï¼šè¯·é€€å‡ºå¹¶é‡æ–°å¯åŠ¨Bitcoin客户端</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">加载 addr.dat 错误
-</translation>
+ <translation>wallet.dat钱包文件加载错误</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1978,31 +1954,11 @@ SSL 选项: (SSL 安装教程具体è§æ¯”特å¸ç»´åŸºç™¾ç§‘)
<translation>加载区å—索引...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">加载 blkindex.dat 失败
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>正在加载钱包...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">加载 wallet.dat 失败:钱包崩溃
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">加载 wallet.dat 失败:è¿è¡Œé’±åŒ…需è¦ä¸€ä¸ªæ›´æ–°ç‰ˆæœ¬çš„比特å¸è½¯ä»¶
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">加载 wallet.dat 失败
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>正在é‡æ–°æ‰«æ...</translation>
@@ -2043,472 +1999,6 @@ SSL 选项: (SSL 安装教程具体è§æ¯”特å¸ç»´åŸºç™¾ç§‘)
<translation>æ— æ³•ç»‘å®šç«¯å£ %d 到这å°è®¡ç®—机。比特å¸è¿›ç¨‹å¯èƒ½å·²åœ¨è¿è¡Œã€‚</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">交易超出大å°é™åˆ¶ã€‚ä½ å¯ä»¥ç»§ç»­ä»¥ %s 的费用å‘é€ã€‚这笔费用将被å‘é€åˆ°å¤„ç†æ­¤æ¬¡äº¤æ˜“的节点用以帮助支æŒè¿™ä¸ªç½‘络。你想è¦æ”¯ä»˜æ­¤ç¬”费用å—?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">输入当å‰é’±åŒ…å£ä»¤</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">å£ä»¤</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">请æ供当å‰é’±åŒ…解密å£ä»¤</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">当å‰é’±åŒ…解密å£ä»¤ä¸æ­£ç¡®ã€‚</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">状æ€</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">日期 </translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">æè¿°</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">支出</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">收入</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">å¼€å¯ %d 个数æ®å—</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">至 %s 个数æ®å—时开å¯</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/ 离线?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/未确认</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">%d 确认项</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">生æˆ</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s æˆç†ŸäºŽ %d 以上数æ®å—)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">å·²ç”Ÿæˆ - 警告:此区å—未被其他接收并å¯èƒ½ä¸è¢«æŽ¥å—</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">已生æˆ(未接å—)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">从:</translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">接收于</translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">支付给自己</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">到:</translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete">生æˆä¸­</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(未连接)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d 个连接 %d 个数æ®å— %d 笔交易</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">钱包已被加密。</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">请输入新的钱包密ç .
-密ç é¡»åŒ…å«10个以上字符,或8个以上å•è¯.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">错误:æ供的å£ä»¤è¿‡çŸ­ã€‚</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">警告:如果您在加密钱包åŽå¿˜è®°å¯†ç , 你将会丢失钱包中所有的比特å¸!
-您确定è¦å¯¹é’±åŒ…进行加密å—?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">请é‡æ–°è¾“入您的新钱包å£ä»¤</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">错误:æ供的å£ä»¤ä¸åŒ¹é…。</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">钱包加密失败。</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">钱包加密æˆåŠŸ.
-谨记:如果您的电脑感染病毒或木马,å³ä½¿é’±åŒ…å·²ç»åŠ å¯†,也ä¸èƒ½ä¿è¯æ‚¨çš„比特å¸ä¸è¢«çªƒ,请åšå¥½ç”µè„‘防毒工作.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">钱包未加密,请先加密.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">为钱包输入新å£ä»¤</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">请å†æ¬¡è¾“入新å£ä»¤ã€‚</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">钱包å£ä»¤å·²æ”¹å˜</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">新接收地å€</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">你应该为æ¯ä¸€ç¬”支付使用一æ¡æ–°åœ°å€
-
-标签</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;状æ€:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">,还未被æˆåŠŸå¹¿æ’­ã€‚</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">,通过%d个节点广播</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">,通过%d个节点组广播</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;日期:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;æ¥æº:&lt;/b&gt; 生æˆ&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;从:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">未知</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;到:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete">(您的,标签:</translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete">(ä½ çš„)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;收入:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s æˆç†ŸäºŽ %d 以上数æ®å—)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(æ‹’ç»)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;支出:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;交易费:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;网络金é¢ï¼š&lt;/b&gt;</translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">消æ¯ï¼š</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">备注:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">新生产的比特å¸å¿…须等待120个数æ®å—之åŽæ‰èƒ½è¢«ä½¿ç”¨. 当您生产出此数æ®å—,它将被广播至比特å¸ç½‘络并添加至数æ®é“¾. 如果添加到数æ®é“¾å¤±è´¥, 它的状æ€å°†å˜æˆ&quot;ä¸è¢«æŽ¥å—&quot;,生产的比特å¸å°†ä¸èƒ½ä½¿ç”¨. 在您生产新数æ®å—的几秒钟内, 如果其它节点也生产出åŒæ ·çš„æ•°æ®å—,有å¯èƒ½ä¼šå‘生这ç§æƒ…况.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">无法写入 autostart/bitcoin.desktop 文件</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">主è¦çš„</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">&amp;系统å¯åŠ¨æ—¶è¿è¡Œæ¯”特å¸</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">&amp;关闭时最å°åŒ–</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">版本 %s</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">金é¢é”™è¯¯</translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">å·²å‘é€çš„è´§å¸</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">ä½™é¢ä¸è¶³</translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">总价超出您的余é¢ï¼š</translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete">已包å«äº¤æ˜“è´¹</translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">支付已å‘é€</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">正在å‘é€...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">地å€ä¸åˆæ³• </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">正在å‘é€ %s 到 %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">å·²å–消</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">å·²å–消</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">传输已å–消</translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">错误: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">金é¢ä¸è¶³</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">正在连接...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">无法连接</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">正在请求公钥...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">公钥已接收...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">接收者拒ç»æŽ¥æ”¶è¯¥ IP 地å€å‘é€çš„交易</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">传输被拒ç»</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">收到éžæ³•åº”ç­”</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">创建交易...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">由于交易é‡ã€å¤æ‚度或涉åŠæ–°æ”¶åˆ°çš„比特å¸çš„原因,您需è¦ä¸ºè¯¥ç¬”交易支付至少 %s 个比特å¸çš„交易费.</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">交易创建失败</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">交易终止</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">连接丢失,交易已被å–消</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">å‘é€æ”¯ä»˜...</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 type="obsolete">交易被拒ç». 有时会å‘生这ç§é”™è¯¯, 愿因是您钱包中的一些钱已ç»è¢«èŠ±æŽ‰äº†. 比如说您å¤åˆ¶äº†é’±åŒ…文件 wallet.dat, 然åŽç”¨å¤åˆ¶çš„钱包花掉了钱, 您现在所用的原始钱包中å´æ²¡æœ‰è¯¥ç¬”交易记录.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">等待确认...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">已付款, 但是无法验è¯æ”¶æ¬¾äºº.
-这笔交易已ç»è¢«è®°å½•äº†, 金é¢ä¹Ÿä¼šè¢«è®°å…¥è‡³æ”¶æ¬¾äººçš„账户,
-但附注信æ¯å°†ä¼šæ˜¯ç©ºç™½.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">支付已å‘é€ï¼Œä½†æ”¶åˆ°äº†ä¸€ä¸ªéžæ³•åº”答。</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">支付已完æˆ</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">姓å</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">åœ°å€ </translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">标签</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">比特å¸åœ°å€</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">这是一æ¡æ‚¨è‡ªå·±çš„用于接收支付的地å€ï¼Œä¸å¯ä»¥å¡«å…¥åœ°å€è–„。</translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">编辑地å€</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">编辑地å€æ ‡ç­¾</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">添加地å€</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">比特å¸</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">æ¯”ç‰¹å¸ - 生æˆä¸­</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">æ¯”ç‰¹å¸ - (未连接)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">&amp;打开比特å¸</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">&amp;å‘é€æ¯”特å¸</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">选项</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">退出</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">程åºå´©æºƒï¼Œå³å°†ç»ˆæ­¢ã€‚</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>警告:请确定您当å‰è®¡ç®—机的日期和时间是正确的。比特å¸å°†æ— æ³•åœ¨é”™è¯¯çš„时间下正常工作。</translation>
@@ -2519,16 +2009,4 @@ but the comment information will be blank.</source>
<translation>测试</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">æ¯”ç‰¹å¸ Qt</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</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 55bf8339f3..83c3028eb9 100644
--- a/src/qt/locale/bitcoin_zh_TW.ts
+++ b/src/qt/locale/bitcoin_zh_TW.ts
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="zh_TW">
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_TW" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
@@ -23,29 +21,13 @@ This is experimental software.
Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="unfinished">版權為ä½å…ƒå¹£é–‹ç™¼äººå“¡è‡ªå…¬å…ƒ 2009 至 2011 年起所有
+ <translation>版權為 Bitcoin 開發人員自西元 2009 至 2012 年起所有
-這是個實驗性質的軟體.
+這是個實驗性的軟體.
-這個軟體在 MIT/X11 執照è¦ç¯„下發行散佈, 詳情請見附帶的 license.txt 檔案, 或網站 http://www.opensource.org/licenses/mit-license.php.
+此軟體ä¾æ“š MIX/X11 軟體授權æ¢æ¬¾æ•£å¸ƒ, 詳情請見附帶的 license.txt 檔案, 或是以下網站: http://www.opensource.org/licenses/mit-license.php.
-這個產å“中包å«äº† OpenSSL 專案所開發的 OpenSSL Toolkit 軟體 (http://www.openssl.org/), Eric Young (eay@cryptsoft.com) 所寫的加解密軟體, ä»¥åŠ Thomas Bernard 所寫的 UPnP 軟體. {2009-2012 ?} {11 ?}</translation>
- </message>
- <message>
- <source>Copyright © 2009-2011 Bitcoin Developers
-
-This is experimental software.
-
-Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
- <translation type="obsolete">版權為ä½å…ƒå¹£é–‹ç™¼äººå“¡è‡ªå…¬å…ƒ 2009 至 2011 年起所有
-
-這是個實驗性質的軟體.
-
-這個軟體在 MIT/X11 執照è¦ç¯„下發行散佈, 詳情請見附帶的 license.txt 檔案, 或網站 http://www.opensource.org/licenses/mit-license.php.
-
-這個產å“中包å«äº† OpenSSL 專案所開發的 OpenSSL Toolkit 軟體 (http://www.openssl.org/), Eric Young (eay@cryptsoft.com) 所寫的加解密軟體, ä»¥åŠ Thomas Bernard 所寫的 UPnP 軟體.</translation>
+此產å“也包å«äº†ç”± OpenSSL Project 所開發的 OpenSSL Toolkit (http://www.openssl.org/) 軟體, ç”± Eric Young (eay@cryptsoft.com) 撰寫的加解密軟體, 以åŠç”± Thomas Bernard 所撰寫的 UPnP 軟體.</translation>
</message>
</context>
<context>
@@ -88,17 +70,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<message>
<location filename="../forms/addressbookpage.ui" line="85"/>
<source>Show &amp;QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>顯示 &amp;QR æ¢ç¢¼</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="96"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>簽署一則訊æ¯ä¾†è­‰æ˜Žä½ æ“有這個ä½å€</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="99"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>簽署訊æ¯</translation>
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="110"/>
@@ -111,42 +93,42 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>刪除</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="62"/>
+ <location filename="../addressbookpage.cpp" line="61"/>
<source>Copy address</source>
- <translation type="unfinished">複製ä½å€</translation>
+ <translation>複製ä½å€</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="63"/>
+ <location filename="../addressbookpage.cpp" line="62"/>
<source>Copy label</source>
- <translation type="unfinished">複製標記</translation>
+ <translation>複製標記</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="64"/>
+ <location filename="../addressbookpage.cpp" line="63"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>編輯</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
+ <location filename="../addressbookpage.cpp" line="64"/>
<source>Delete</source>
- <translation type="unfinished"></translation>
+ <translation>刪除</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="282"/>
+ <location filename="../addressbookpage.cpp" line="281"/>
<source>Export Address Book Data</source>
<translation>匯出ä½å€ç°¿è³‡æ–™</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="284"/>
+ <location filename="../addressbookpage.cpp" line="282"/>
<source>Comma separated file (*.csv)</source>
<translation>逗號å€éš”資料檔 (*.csv)</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Error exporting</source>
<translation>資料匯出有誤</translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="297"/>
+ <location filename="../addressbookpage.cpp" line="295"/>
<source>Could not write to file %1.</source>
<translation>無法寫入檔案 %1.</translation>
</message>
@@ -258,17 +240,13 @@ Are you sure you wish to encrypt your wallet?</source>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
<source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="unfinished"></translation>
+ <translation>ä½å…ƒå¹£ç¾åœ¨è¦é—œé–‰ä»¥å®ŒæˆåŠ å¯†ç¨‹åº. 請記ä½, 加密錢包無法完全防止入侵電腦的惡æ„程å¼å·å–ä½ çš„ä½å…ƒå¹£.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="208"/>
<location filename="../askpassphrasedialog.cpp" line="232"/>
<source>Warning: The Caps Lock key is on.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">請記得, å³ä½¿å°‡éŒ¢åŒ…加密, 也ä¸èƒ½å®Œå…¨é˜²æ­¢å› æƒ¡æ„軟體入侵, 而導致ä½å…ƒå¹£è¢«å·.</translation>
+ <translation>警告: éµç›¤è¼¸å…¥éŽ–定為大寫字æ¯ä¸­.</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="117"/>
@@ -315,312 +293,318 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="66"/>
+ <location filename="../bitcoingui.cpp" line="69"/>
<source>Bitcoin Wallet</source>
<translation>ä½å…ƒå¹£éŒ¢åŒ…</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="139"/>
- <location filename="../bitcoingui.cpp" line="455"/>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="464"/>
<source>Synchronizing with network...</source>
<translation>網路åŒæ­¥ä¸­...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="142"/>
+ <location filename="../bitcoingui.cpp" line="145"/>
<source>Block chain synchronization in progress</source>
<translation>正在進行å€å¡ŠéŽ–éˆçš„åŒæ­¥ä¸­</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="171"/>
+ <location filename="../bitcoingui.cpp" line="176"/>
<source>&amp;Overview</source>
<translation>總覽</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="172"/>
+ <location filename="../bitcoingui.cpp" line="177"/>
<source>Show general overview of wallet</source>
<translation>顯示錢包一般總覽</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="177"/>
+ <location filename="../bitcoingui.cpp" line="182"/>
<source>&amp;Transactions</source>
<translation>交易</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="178"/>
+ <location filename="../bitcoingui.cpp" line="183"/>
<source>Browse transaction history</source>
<translation>ç€è¦½äº¤æ˜“紀錄</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="183"/>
+ <location filename="../bitcoingui.cpp" line="188"/>
<source>&amp;Address Book</source>
<translation>ä½å€ç°¿</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="184"/>
+ <location filename="../bitcoingui.cpp" line="189"/>
<source>Edit the list of stored addresses and labels</source>
<translation>編輯儲存ä½å€èˆ‡æ¨™è¨˜çš„列表</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="189"/>
+ <location filename="../bitcoingui.cpp" line="194"/>
<source>&amp;Receive coins</source>
<translation>收錢</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="190"/>
+ <location filename="../bitcoingui.cpp" line="195"/>
<source>Show the list of addresses for receiving payments</source>
<translation>顯示收款ä½å€çš„列表</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="195"/>
+ <location filename="../bitcoingui.cpp" line="200"/>
<source>&amp;Send coins</source>
<translation>付錢</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="196"/>
+ <location filename="../bitcoingui.cpp" line="201"/>
<source>Send coins to a bitcoin address</source>
<translation>付錢至æŸå€‹ä½å…ƒå¹£ä½å€</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="201"/>
+ <location filename="../bitcoingui.cpp" line="206"/>
<source>Sign &amp;message</source>
- <translation type="unfinished"></translation>
+ <translation>訊æ¯ç°½ç½²</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="202"/>
+ <location filename="../bitcoingui.cpp" line="207"/>
<source>Prove you control an address</source>
- <translation type="unfinished"></translation>
+ <translation>證明你控制一個ä½å€</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="221"/>
+ <location filename="../bitcoingui.cpp" line="226"/>
<source>E&amp;xit</source>
<translation>çµæŸ</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="222"/>
+ <location filename="../bitcoingui.cpp" line="227"/>
<source>Quit application</source>
<translation>çµæŸæ‡‰ç”¨ç¨‹å¼</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="225"/>
+ <location filename="../bitcoingui.cpp" line="230"/>
<source>&amp;About %1</source>
<translation>關於%1</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="226"/>
+ <location filename="../bitcoingui.cpp" line="231"/>
<source>Show information about Bitcoin</source>
<translation>顯示ä½å…ƒå¹£ç›¸é—œè³‡è¨Š</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="228"/>
+ <location filename="../bitcoingui.cpp" line="233"/>
<source>About &amp;Qt</source>
- <translation type="unfinished"></translation>
+ <translation>關於 &amp;Qt</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="229"/>
+ <location filename="../bitcoingui.cpp" line="234"/>
<source>Show information about Qt</source>
- <translation type="unfinished"></translation>
+ <translation>顯示有關於 Qt 的資訊</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>&amp;Options...</source>
<translation>é¸é …...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="232"/>
+ <location filename="../bitcoingui.cpp" line="237"/>
<source>Modify configuration options for bitcoin</source>
<translation>修改ä½å…ƒå¹£çš„設定é¸é …</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>Open &amp;Bitcoin</source>
<translation>é–‹å•Ÿä½å…ƒå¹£</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show the Bitcoin window</source>
<translation>顯示ä½å…ƒå¹£ä¸»è¦–窗</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="236"/>
+ <location filename="../bitcoingui.cpp" line="241"/>
<source>&amp;Export...</source>
<translation>匯出...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
- <source>Export the current view to a file</source>
- <translation>將目å‰ç‰ˆé¢åŒ¯å‡ºè‡³æª”案</translation>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>將目å‰åˆ†é çš„資料匯出存æˆæª”案</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>&amp;Encrypt Wallet</source>
<translation>錢包加密</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="239"/>
+ <location filename="../bitcoingui.cpp" line="244"/>
<source>Encrypt or decrypt wallet</source>
<translation>將錢包加解密</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>&amp;Backup Wallet</source>
+ <translation>錢包備份</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>Backup wallet to another location</source>
+ <translation>將錢包備份到其它地方</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>&amp;Change Passphrase</source>
<translation>變更密碼</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="242"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Change the passphrase used for wallet encryption</source>
<translation>變更錢包加密用的密碼</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="264"/>
+ <location filename="../bitcoingui.cpp" line="272"/>
<source>&amp;File</source>
<translation>檔案</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="271"/>
+ <location filename="../bitcoingui.cpp" line="281"/>
<source>&amp;Settings</source>
<translation>設定</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="277"/>
+ <location filename="../bitcoingui.cpp" line="287"/>
<source>&amp;Help</source>
<translation>求助</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="284"/>
+ <location filename="../bitcoingui.cpp" line="294"/>
<source>Tabs toolbar</source>
<translation>分é å·¥å…·åˆ—</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="295"/>
+ <location filename="../bitcoingui.cpp" line="305"/>
<source>Actions toolbar</source>
<translation>動作工具列</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="307"/>
+ <location filename="../bitcoingui.cpp" line="317"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="397"/>
+ <location filename="../bitcoingui.cpp" line="407"/>
<source>bitcoin-qt</source>
<translation>bitcoin-qt</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="440"/>
+ <location filename="../bitcoingui.cpp" line="449"/>
<source>%n active connection(s) to Bitcoin network</source>
- <translation>
- <numerusform>與ä½å…ƒå¹£ç¶²è·¯æœ‰ %n 個連線在使用中</numerusform>
- </translation>
+ <translation><numerusform>與ä½å…ƒå¹£ç¶²è·¯æœ‰ %n 個連線在使用中</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="466"/>
+ <location filename="../bitcoingui.cpp" line="475"/>
<source>Downloaded %1 of %2 blocks of transaction history.</source>
<translation>已下載了 %1/%2 個交易紀錄的å€å¡Š.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="478"/>
+ <location filename="../bitcoingui.cpp" line="487"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation>已下載了 %1 個交易紀錄的å€å¡Š.</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="489"/>
+ <location filename="../bitcoingui.cpp" line="502"/>
<source>%n second(s) ago</source>
- <translation>
- <numerusform>%n 秒é˜å‰</numerusform>
- </translation>
+ <translation><numerusform>%n 秒é˜å‰</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="493"/>
+ <location filename="../bitcoingui.cpp" line="506"/>
<source>%n minute(s) ago</source>
- <translation>
- <numerusform>%n 分é˜å‰</numerusform>
- </translation>
+ <translation><numerusform>%n 分é˜å‰</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="497"/>
+ <location filename="../bitcoingui.cpp" line="510"/>
<source>%n hour(s) ago</source>
- <translation>
- <numerusform>%n å°æ™‚å‰</numerusform>
- </translation>
+ <translation><numerusform>%n å°æ™‚å‰</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="514"/>
<source>%n day(s) ago</source>
- <translation>
- <numerusform>%n 天å‰</numerusform>
- </translation>
+ <translation><numerusform>%n 天å‰</numerusform></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="507"/>
+ <location filename="../bitcoingui.cpp" line="520"/>
<source>Up to date</source>
<translation>最新狀態</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="525"/>
<source>Catching up...</source>
<translation>進度追趕中...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="518"/>
+ <location filename="../bitcoingui.cpp" line="533"/>
<source>Last received block was generated %1.</source>
<translation>最近收到的å€å¡Šç”¢ç”Ÿæ–¼ %1.</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="585"/>
+ <location filename="../bitcoingui.cpp" line="597"/>
<source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
<translation>這筆交易的資料大å°è¶…éŽé™åˆ¶äº†. 你還是å¯ä»¥ä»˜å‡º %1 的費用來傳é€. 這筆費用會付給處ç†è©²ç­†äº¤æ˜“的節點, 並幫助維æŒæ•´å€‹ç¶²è·¯. 你願æ„支付這項費用嗎?</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="590"/>
+ <location filename="../bitcoingui.cpp" line="602"/>
<source>Sending...</source>
<translation>付出中...</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="617"/>
+ <location filename="../bitcoingui.cpp" line="629"/>
<source>Sent transaction</source>
<translation>付款交易</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="618"/>
+ <location filename="../bitcoingui.cpp" line="630"/>
<source>Incoming transaction</source>
<translation>收款交易</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="619"/>
+ <location filename="../bitcoingui.cpp" line="631"/>
<source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
- <translation type="unfinished">日期: %1
-金é¡: %2
-類別: %3
-ä½å€: %4
- {1
-?} {2
-?} {3
-?}</translation>
- </message>
- <message>
- <source>Date: %1
-Amount: %2
-Type: %3
-Address: %4</source>
- <translation type="obsolete">日期: %1
+ <translation>日期: %1
金é¡: %2
類別: %3
ä½å€: %4</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="740"/>
+ <location filename="../bitcoingui.cpp" line="751"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>錢包&lt;b&gt;已加密&lt;/b&gt;並且正&lt;b&gt;解鎖中&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="748"/>
+ <location filename="../bitcoingui.cpp" line="759"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation>錢包&lt;b&gt;已加密&lt;/b&gt;並且正&lt;b&gt;上鎖中&lt;/b&gt;</translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Backup Wallet</source>
+ <translation>錢包備份</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="782"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>錢包資料檔 (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>Backup Failed</source>
+ <translation>備份失敗</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="785"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>儲存錢包資料到新的地方時發生錯誤</translation>
+ </message>
</context>
<context>
<name>DisplayOptionsPage</name>
@@ -783,7 +767,7 @@ Address: %4</source>
<message>
<location filename="../optionsdialog.cpp" line="217"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>éžå¿…è¦çš„交易手續費, 有助於縮短你的交易處ç†æ™‚é–“. 以 kB 為計費單ä½, 而大部份交易的大å°æ˜¯ 1 kB. 建議設定為 0.01 å…ƒ.</translation>
+ <translation>éžå¿…è¦çš„交易手續費, 以 kB 為計費單ä½, 且有助於縮短你的交易處ç†æ™‚é–“. 大部份交易的資料大å°æ˜¯ 1 kB. 建議設定為 0.01 å…ƒ.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="223"/>
@@ -793,7 +777,7 @@ Address: %4</source>
<message>
<location filename="../optionsdialog.cpp" line="226"/>
<source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
- <translation>éžå¿…è¦çš„交易手續費, 有助於縮短你的交易處ç†æ™‚é–“. 以 kB 為計費單ä½, 而大部份交易的大å°æ˜¯ 1 kB. 建議設定為 0.01 å…ƒ.</translation>
+ <translation>éžå¿…è¦çš„交易手續費, 以 kB 為計費單ä½, 且有助於縮短你的交易處ç†æ™‚é–“. 大部份交易的資料大å°æ˜¯ 1 kB. 建議設定為 0.01 å…ƒ.</translation>
</message>
</context>
<context>
@@ -801,89 +785,89 @@ Address: %4</source>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
<source>Message</source>
- <translation type="unfinished"></translation>
+ <translation>訊æ¯</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
- <source>You can sign messages with your addresses to prove you own them. Be careful to only sign statement you agree to with full details, as phishing attacks may try to trick you into signing access to them.</source>
- <translation type="unfinished"></translation>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, 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>ä½ å¯ä»¥ç”¨ä½ çš„ä½å€ä¾†ç°½ç½²è¨Šæ¯, 以證明你å°å®ƒçš„所有權. 但是請å°å¿ƒ, ä¸è¦ç°½ç½²èªžæ„å«ç³Šä¸æ¸…的內容, 因為釣魚å¼è©é¨™å¯èƒ½æœƒç”¨é¨™ä½ ç°½ç½²çš„手法來冒充是你. åªæœ‰åœ¨èªžå¥ä¸­çš„細節你都åŒæ„時æ‰ç°½ç½².</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
<source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation type="unfinished">付款的目標ä½å€ (比如說 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ <translation>付款的目標ä½å€ (比如說 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
<source>Choose adress from address book</source>
- <translation type="unfinished"></translation>
+ <translation>從ä½å€ç°¿ä¸­é¸ä¸€å€‹ä½å€</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="58"/>
<source>Alt+A</source>
- <translation type="unfinished">Alt+A</translation>
+ <translation>Alt+A</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="71"/>
<source>Paste address from clipboard</source>
- <translation type="unfinished">從剪貼簿貼上ä½å€</translation>
+ <translation>從剪貼簿貼上ä½å€</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="81"/>
<source>Alt+P</source>
- <translation type="unfinished">Alt+P</translation>
+ <translation>Alt+P</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="93"/>
<source>Enter the message you want to sign here</source>
- <translation type="unfinished"></translation>
+ <translation>在這裡輸入你想簽署的訊æ¯</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="105"/>
<source>Click &quot;Sign Message&quot; to get signature</source>
- <translation type="unfinished"></translation>
+ <translation>按&quot;簽署訊æ¯&quot;來å–得簽章</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="117"/>
<source>Sign a message to prove you own this address</source>
- <translation type="unfinished"></translation>
+ <translation>簽署一則訊æ¯ä¾†è­‰æ˜Žä½ æ“有這個ä½å€</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="120"/>
<source>&amp;Sign Message</source>
- <translation type="unfinished"></translation>
+ <translation>簽署訊æ¯</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="131"/>
<source>Copy the currently selected address to the system clipboard</source>
- <translation type="unfinished">複製目å‰é¸å–çš„ä½å€åˆ°ç³»çµ±å‰ªè²¼ç°¿</translation>
+ <translation>複製目å‰é¸å–çš„ä½å€åˆ°ç³»çµ±å‰ªè²¼ç°¿</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="134"/>
<source>&amp;Copy to Clipboard</source>
- <translation type="unfinished">複製到剪貼簿</translation>
+ <translation>複製到剪貼簿</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<location filename="../messagepage.cpp" line="89"/>
<location filename="../messagepage.cpp" line="101"/>
<source>Error signing</source>
- <translation type="unfinished"></translation>
+ <translation>簽署發生錯誤</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="74"/>
<source>%1 is not a valid address.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 ä¸æ˜¯å€‹æœ‰æ•ˆçš„ä½å€.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="89"/>
<source>Private key for %1 is not available.</source>
- <translation type="unfinished"></translation>
+ <translation>沒有 %1 的密鑰.</translation>
</message>
<message>
<location filename="../messagepage.cpp" line="101"/>
<source>Sign failed</source>
- <translation type="unfinished"></translation>
+ <translation>簽署失敗</translation>
</message>
</context>
<context>
@@ -946,7 +930,7 @@ Address: %4</source>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@@ -980,42 +964,52 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
<source>Dialog</source>
- <translation type="unfinished">å°è©±è¦–窗</translation>
+ <translation>å°è©±è¦–窗</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="32"/>
<source>QR Code</source>
- <translation type="unfinished"></translation>
+ <translation>QR æ¢ç¢¼</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="52"/>
<source>Request Payment</source>
- <translation type="unfinished"></translation>
+ <translation>付款單</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="67"/>
<source>Amount:</source>
- <translation type="unfinished"></translation>
+ <translation>金é¡:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="102"/>
<source>BTC</source>
- <translation type="unfinished"></translation>
+ <translation>BTC</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="118"/>
<source>Label:</source>
- <translation type="unfinished"></translation>
+ <translation>標記:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="141"/>
<source>Message:</source>
- <translation type="unfinished">訊æ¯:</translation>
+ <translation>訊æ¯:</translation>
</message>
<message>
<location filename="../forms/qrcodedialog.ui" line="183"/>
<source>&amp;Save As...</source>
- <translation type="unfinished"></translation>
+ <translation>儲存為...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>Save Image...</source>
+ <translation>儲存圖片...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="101"/>
+ <source>PNG Images (*.png)</source>
+ <translation>PNG 圖檔 (*.png)</translation>
</message>
</context>
<context>
@@ -1045,7 +1039,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../forms/sendcoinsdialog.ui" line="84"/>
<source>Remove all transaction fields</source>
- <translation type="unfinished"></translation>
+ <translation>移除所有交易欄ä½</translation>
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
@@ -1325,7 +1319,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiondesc.cpp" line="221"/>
<source>Transaction ID:</source>
- <translation type="unfinished"></translation>
+ <translation>交易識別碼:</translation>
</message>
<message>
<location filename="../transactiondesc.cpp" line="224"/>
@@ -1371,9 +1365,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="274"/>
<source>Open for %n block(s)</source>
- <translation>
- <numerusform>在 %n 個å€å¡Šå…§æœªå®š</numerusform>
- </translation>
+ <translation><numerusform>在 %n 個å€å¡Šå…§æœªå®š</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="277"/>
@@ -1398,9 +1390,7 @@ p, li { white-space: pre-wrap; }
<message numerus="yes">
<location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
- <translation>
- <numerusform>生產金é¡å°‡åœ¨ %n 個å€å¡Šç”¢å‡ºå¾Œå¯ç”¨</numerusform>
- </translation>
+ <translation><numerusform>生產金é¡å°‡åœ¨ %n 個å€å¡Šç”¢å‡ºå¾Œå¯ç”¨</numerusform></translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="301"/>
@@ -1420,11 +1410,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Received from IP</source>
- <translation type="obsolete">收å—於網路ä½å€</translation>
+ <translation>收å—自</translation>
</message>
<message>
<location filename="../transactiontablemodel.cpp" line="352"/>
@@ -1432,10 +1418,6 @@ p, li { white-space: pre-wrap; }
<translation>付出至</translation>
</message>
<message>
- <source>Sent to IP</source>
- <translation type="obsolete">付出至網路ä½å€</translation>
- </message>
- <message>
<location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation>付給自己</translation>
@@ -1479,163 +1461,163 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionView</name>
<message>
- <location filename="../transactionview.cpp" line="56"/>
- <location filename="../transactionview.cpp" line="72"/>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
<source>All</source>
<translation>全部</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="57"/>
+ <location filename="../transactionview.cpp" line="56"/>
<source>Today</source>
<translation>今天</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="58"/>
+ <location filename="../transactionview.cpp" line="57"/>
<source>This week</source>
<translation>這週</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="59"/>
+ <location filename="../transactionview.cpp" line="58"/>
<source>This month</source>
<translation>這個月</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="60"/>
+ <location filename="../transactionview.cpp" line="59"/>
<source>Last month</source>
<translation>上個月</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="61"/>
+ <location filename="../transactionview.cpp" line="60"/>
<source>This year</source>
<translation>今年</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="62"/>
+ <location filename="../transactionview.cpp" line="61"/>
<source>Range...</source>
<translation>指定範åœ...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="73"/>
+ <location filename="../transactionview.cpp" line="72"/>
<source>Received with</source>
<translation>收å—æ–¼</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="75"/>
+ <location filename="../transactionview.cpp" line="74"/>
<source>Sent to</source>
<translation>付出至</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="77"/>
+ <location filename="../transactionview.cpp" line="76"/>
<source>To yourself</source>
<translation>給自己</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="78"/>
+ <location filename="../transactionview.cpp" line="77"/>
<source>Mined</source>
<translation>開採所得</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="79"/>
+ <location filename="../transactionview.cpp" line="78"/>
<source>Other</source>
<translation>其他</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="85"/>
+ <location filename="../transactionview.cpp" line="84"/>
<source>Enter address or label to search</source>
<translation>輸入ä½å€æˆ–標記來æœå°‹</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="91"/>
+ <location filename="../transactionview.cpp" line="90"/>
<source>Min amount</source>
<translation>最å°é‡‘é¡</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="124"/>
<source>Copy address</source>
<translation>複製ä½å€</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="125"/>
<source>Copy label</source>
<translation>複製標記</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy amount</source>
- <translation type="unfinished"></translation>
+ <translation>複製金é¡</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Edit label</source>
<translation>編輯標記</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="129"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Show details...</source>
<translation>顯示明細...</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="268"/>
<source>Export Transaction Data</source>
<translation>匯出交易資料</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="271"/>
+ <location filename="../transactionview.cpp" line="269"/>
<source>Comma separated file (*.csv)</source>
<translation>逗號分隔資料檔 (*.csv)</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="277"/>
<source>Confirmed</source>
<translation>已確èª</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="278"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Type</source>
<translation>種類</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Label</source>
<translation>標記</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Address</source>
<translation>ä½å€</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="284"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Amount</source>
<translation>金é¡</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="285"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>ID</source>
<translation>識別碼</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Error exporting</source>
<translation>匯出錯誤</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="289"/>
+ <location filename="../transactionview.cpp" line="287"/>
<source>Could not write to file %1.</source>
<translation>無法寫入至 %1 檔案.</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="384"/>
+ <location filename="../transactionview.cpp" line="382"/>
<source>Range:</source>
<translation>範åœ:</translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="392"/>
+ <location filename="../transactionview.cpp" line="390"/>
<source>to</source>
<translation>至</translation>
</message>
@@ -1643,7 +1625,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="144"/>
+ <location filename="../walletmodel.cpp" line="145"/>
<source>Sending...</source>
<translation>付出中...</translation>
</message>
@@ -1741,12 +1723,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
- <translation type="unfinished"></translation>
+ <translation>在通訊埠 &lt;port&gt; è½å€™é€£ç·š (é è¨­: 8333, 或若為測試網路: 18333)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
- <translation type="unfinished"></translation>
+ <translation>維æŒèˆ‡ç¯€é»žé€£ç·šæ•¸çš„上é™ç‚º &lt;n&gt; 個 (é è¨­: 125)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
@@ -1769,27 +1751,27 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
<source>Don&apos;t bootstrap list of peers using DNS</source>
- <translation type="unfinished"></translation>
+ <translation>åˆå§‹åŒ–節點列表時ä¸ä½¿ç”¨ DNS</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
- <translation type="unfinished"></translation>
+ <translation>與亂æžçš„節點斷線的臨界值 (é è¨­: 100)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
- <translation type="unfinished"></translation>
+ <translation>é¿å…與亂æžçš„節點連線的秒數 (é è¨­: 86400)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="28"/>
<source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>æ¯å€‹é€£ç·šçš„接收緩è¡å€å¤§å°ä¸Šé™ç‚º &lt;n&gt;*1000 ä½å…ƒçµ„ (é è¨­: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="29"/>
<source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
- <translation type="unfinished"></translation>
+ <translation>æ¯å€‹é€£ç·šçš„傳é€ç·©è¡å€å¤§å°ä¸Šé™ç‚º &lt;n&gt;*1000 ä½å…ƒçµ„ (é è¨­: 10000)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="30"/>
@@ -1806,8 +1788,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="32"/>
<source>Fee per kB to add to transactions you send</source>
- <translation>äº¤æ˜“ä»˜æ¬¾æ™‚æ¯ kB 的交易手續費
-</translation>
+ <translation>äº¤æ˜“ä»˜æ¬¾æ™‚æ¯ kB 的交易手續費</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="33"/>
@@ -1829,22 +1810,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../bitcoinstrings.cpp" line="36"/>
<source>Output extra debugging information</source>
- <translation type="unfinished"></translation>
+ <translation>輸出é¡å¤–的除錯資訊</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="37"/>
<source>Prepend debug output with timestamp</source>
- <translation type="unfinished"></translation>
+ <translation>在除錯輸出內容å‰é™„加時間</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="38"/>
<source>Send trace/debug info to console instead of debug.log file</source>
- <translation type="unfinished"></translation>
+ <translation>輸出追蹤或除錯資訊至終端機, è€Œéž debug.log 檔案</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="39"/>
<source>Send trace/debug info to debugger</source>
- <translation type="unfinished"></translation>
+ <translation>輸出追蹤或除錯資訊給除錯器</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="40"/>
@@ -1934,37 +1915,32 @@ SSL é¸é …: (SSL 設定程åºè«‹è¦‹ Bitcoin Wiki)
<message>
<location filename="../bitcoinstrings.cpp" line="61"/>
<source>Error loading addr.dat</source>
- <translation type="unfinished"></translation>
+ <translation>載入 addr.dat 失敗</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="63"/>
<source>Error loading blkindex.dat</source>
- <translation type="unfinished"></translation>
+ <translation>載入 blkindex.dat 失敗</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="65"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
- <translation type="unfinished"></translation>
+ <translation>載入 wallet.dat 失敗: 錢包壞掉了</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation type="unfinished"></translation>
+ <translation>載入 wallet.dat 失敗: 此錢包需è¦æ–°ç‰ˆçš„ Bitcoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation type="unfinished"></translation>
+ <translation>錢包需è¦é‡å¯«: è«‹é‡å•Ÿä½å…ƒå¹£ä¾†å®Œæˆ</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
<source>Error loading wallet.dat</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error loading addr.dat </source>
- <translation type="obsolete">載入 addr.dat 錯誤
-</translation>
+ <translation>載入 wallet.dat 失敗</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="62"/>
@@ -1972,31 +1948,11 @@ SSL é¸é …: (SSL 設定程åºè«‹è¦‹ Bitcoin Wiki)
<translation>載入å€å¡Šç´¢å¼•ä¸­...</translation>
</message>
<message>
- <source>Error loading blkindex.dat </source>
- <translation type="obsolete">載入 blkindex.dat 失敗
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="64"/>
<source>Loading wallet...</source>
<translation>載入錢包中...</translation>
</message>
<message>
- <source>Error loading wallet.dat: Wallet corrupted </source>
- <translation type="obsolete">載入 wallet.dat 失敗: 錢包壞掉了
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin </source>
- <translation type="obsolete">載入 wallet.dat 錯誤: 此錢包需è¦æ–°ç‰ˆçš„ Bitcoin
-</translation>
- </message>
- <message>
- <source>Error loading wallet.dat </source>
- <translation type="obsolete">載入 wallet.dat 錯誤
-</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="69"/>
<source>Rescanning...</source>
<translation>é‡æ–°æŽƒæ中...</translation>
@@ -2037,472 +1993,6 @@ SSL é¸é …: (SSL 設定程åºè«‹è¦‹ Bitcoin Wiki)
<translation>無法與這å°é›»è…¦ä¸Šçš„通訊埠 %d 連çµ. 也許 Bitcoin 已經在執行了.</translation>
</message>
<message>
- <source>This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation type="obsolete">這筆交易的資料大å°è¶…éŽé™åˆ¶äº†. 你還是å¯ä»¥ä»˜å‡º %s 的費用來傳é€. 這項費用會付給處ç†è©²ç­†äº¤æ˜“的節點, 並幫助維æŒæ•´å€‹ç¶²è·¯. 你願æ„支付這項費用嗎?</translation>
- </message>
- <message>
- <source>Enter the current passphrase to the wallet.</source>
- <translation type="obsolete">輸入錢包目å‰çš„密碼.</translation>
- </message>
- <message>
- <source>Passphrase</source>
- <translation type="obsolete">密碼</translation>
- </message>
- <message>
- <source>Please supply the current wallet decryption passphrase.</source>
- <translation type="obsolete">è«‹æ供錢包目å‰çš„解密密碼</translation>
- </message>
- <message>
- <source>The passphrase entered for the wallet decryption was incorrect.</source>
- <translation type="obsolete">輸入的錢包解密密碼ä¸å°</translation>
- </message>
- <message>
- <source>Status</source>
- <translation type="obsolete">狀態</translation>
- </message>
- <message>
- <source>Date</source>
- <translation type="obsolete">日期</translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="obsolete">說明</translation>
- </message>
- <message>
- <source>Debit</source>
- <translation type="obsolete">出帳</translation>
- </message>
- <message>
- <source>Credit</source>
- <translation type="obsolete">入帳</translation>
- </message>
- <message>
- <source>Open for %d blocks</source>
- <translation type="obsolete">在 %d 個å€å¡Šå…§æœªå®š</translation>
- </message>
- <message>
- <source>Open until %s</source>
- <translation type="obsolete">在 %s å‰æœªå®š</translation>
- </message>
- <message>
- <source>%d/offline?</source>
- <translation type="obsolete">%d/斷線中?</translation>
- </message>
- <message>
- <source>%d/unconfirmed</source>
- <translation type="obsolete">%d/未確èª</translation>
- </message>
- <message>
- <source>%d confirmations</source>
- <translation type="obsolete">ç¶“ç¢ºèª %d 次</translation>
- </message>
- <message>
- <source>Generated</source>
- <translation type="obsolete">已產出</translation>
- </message>
- <message>
- <source>Generated (%s matures in %d more blocks)</source>
- <translation type="obsolete">已產出 (%s 將在 %d 個å€å¡Šç”¢å‡ºå¾Œç†Ÿæˆ)</translation>
- </message>
- <message>
- <source>Generated - Warning: This block was not received by any other nodes and will probably not be accepted!</source>
- <translation type="obsolete">已產出 - 警告: 沒有任何的其他節點收到此å€å¡Š, 也許ä¸æœƒè¢«æŽ¥å—!</translation>
- </message>
- <message>
- <source>Generated (not accepted)</source>
- <translation type="obsolete">已產出 (ä¸è¢«æŽ¥å—)</translation>
- </message>
- <message>
- <source>From: </source>
- <translation type="obsolete">來自: </translation>
- </message>
- <message>
- <source>Received with: </source>
- <translation type="obsolete">收å—æ–¼: </translation>
- </message>
- <message>
- <source>Payment to yourself</source>
- <translation type="obsolete">付給自己</translation>
- </message>
- <message>
- <source>To: </source>
- <translation type="obsolete">目的: </translation>
- </message>
- <message>
- <source> Generating</source>
- <translation type="obsolete"> 生產中</translation>
- </message>
- <message>
- <source>(not connected)</source>
- <translation type="obsolete">(未連線)</translation>
- </message>
- <message>
- <source> %d connections %d blocks %d transactions</source>
- <translation type="obsolete"> %d 個連線 %d 個å€å¡Š %d 次交易</translation>
- </message>
- <message>
- <source>Wallet already encrypted.</source>
- <translation type="obsolete">錢包已經加密了.</translation>
- </message>
- <message>
- <source>Enter the new passphrase to the wallet.
-Please use a passphrase of 10 or more random characters, or eight or more words.</source>
- <translation type="obsolete">輸入錢包的新密碼.
-密碼請用 10 個以上的字元, 或是 8 個以上的字詞.</translation>
- </message>
- <message>
- <source>Error: The supplied passphrase was too short.</source>
- <translation type="obsolete">錯誤: æ供的密碼太短了.</translation>
- </message>
- <message>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!
-Are you sure you wish to encrypt your wallet?</source>
- <translation type="obsolete">警告: 如果將錢包加密後忘記密碼, 你會失去其中所有的ä½å…ƒå¹£!
-你確定è¦å°‡éŒ¢åŒ…加密嗎?</translation>
- </message>
- <message>
- <source>Please re-enter your new wallet passphrase.</source>
- <translation type="obsolete">è«‹å†è¼¸å…¥ä¸€æ¬¡æ–°å¯†ç¢¼.</translation>
- </message>
- <message>
- <source>Error: the supplied passphrases didn&apos;t match.</source>
- <translation type="obsolete">錯誤: æ供的密碼ä¸ç›¸ç¬¦.</translation>
- </message>
- <message>
- <source>Wallet encryption failed.</source>
- <translation type="obsolete">錢包加密失敗.</translation>
- </message>
- <message>
- <source>Wallet Encrypted.
-Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
- <translation type="obsolete">錢包已加密.
-請記得, å³ä½¿å°‡éŒ¢åŒ…加密, 也ä¸èƒ½å®Œå…¨é˜²æ­¢å› æƒ¡æ„軟體入侵, 而導致ä½å…ƒå¹£è¢«å·.</translation>
- </message>
- <message>
- <source>Wallet is unencrypted, please encrypt it first.</source>
- <translation type="obsolete">錢包未加密, 請先加密.</translation>
- </message>
- <message>
- <source>Enter the new passphrase for the wallet.</source>
- <translation type="obsolete">輸入錢包的新密碼.</translation>
- </message>
- <message>
- <source>Re-enter the new passphrase for the wallet.</source>
- <translation type="obsolete">å†è¼¸å…¥ä¸€æ¬¡éŒ¢åŒ…的新密碼.</translation>
- </message>
- <message>
- <source>Wallet Passphrase Changed.</source>
- <translation type="obsolete">錢包密碼已變更.</translation>
- </message>
- <message>
- <source>New Receiving Address</source>
- <translation type="obsolete">新增收款ä½å€</translation>
- </message>
- <message>
- <source>You should use a new address for each payment you receive.
-
-Label</source>
- <translation type="obsolete">æ¯æ¬¡æ”¶æ¬¾ä½ éƒ½æ‡‰è©²è¦ç”¨ä¸€å€‹æ–°çš„ä½å€.
-
-標記</translation>
- </message>
- <message>
- <source>&lt;b&gt;Status:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;狀態:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>, has not been successfully broadcast yet</source>
- <translation type="obsolete">, 尚未æˆåŠŸå…¬å‘Šå‡ºåŽ»</translation>
- </message>
- <message>
- <source>, broadcast through %d node</source>
- <translation type="obsolete">, 公告至 %d 個節點</translation>
- </message>
- <message>
- <source>, broadcast through %d nodes</source>
- <translation type="obsolete">, 公告至 %d 個節點</translation>
- </message>
- <message>
- <source>&lt;b&gt;Date:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;日期:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
- <translation type="obsolete">&lt;b&gt;來æº:&lt;/b&gt; 生產所得&lt;br&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;From:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;來自:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="obsolete">ä¸æ˜Ž</translation>
- </message>
- <message>
- <source>&lt;b&gt;To:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;目的:&lt;/b&gt; </translation>
- </message>
- <message>
- <source> (yours, label: </source>
- <translation type="obsolete"> (你的, 標記為: </translation>
- </message>
- <message>
- <source> (yours)</source>
- <translation type="obsolete"> (ä½ çš„)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;入帳:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>(%s matures in %d more blocks)</source>
- <translation type="obsolete">(%s 將在 %d 個å€å¡Šç”¢å‡ºå¾Œç†Ÿæˆ)</translation>
- </message>
- <message>
- <source>(not accepted)</source>
- <translation type="obsolete">(ä¸è¢«æŽ¥å—)</translation>
- </message>
- <message>
- <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;出帳:&lt;/b&gt;</translation>
- </message>
- <message>
- <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;交易手續費:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
- <translation type="obsolete">&lt;b&gt;æ·¨é¡:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>Message:</source>
- <translation type="obsolete">訊æ¯:</translation>
- </message>
- <message>
- <source>Comment:</source>
- <translation type="obsolete">附註:</translation>
- </message>
- <message>
- <source>Generated coins must wait 120 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, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
- <translation type="obsolete">生產出來的錢è¦å†ç­‰ 120 個å€å¡Šç”¢å‡ºä¹‹å¾Œ, æ‰èƒ½å¤ èŠ±ç”¨. 當你產出å€å¡Šæ™‚, 它會被公布到網路上, 以被串連至å€å¡ŠéŽ–éˆ. 如果串連失敗了, 它的狀態就會變æˆ&quot;ä¸è¢«æŽ¥å—&quot;, 且ä¸èƒ½è¢«èŠ±ç”¨. 當你產出å€å¡Šçš„幾秒é˜å…§, 其他節點也產出了å€å¡Šçš„話, 有時候就會發生這種情形.</translation>
- </message>
- <message>
- <source>Cannot write autostart/bitcoin.desktop file</source>
- <translation type="obsolete">無法寫入 autostart/bitcoin.desktop 檔案</translation>
- </message>
- <message>
- <source>Main</source>
- <translation type="obsolete">主è¦</translation>
- </message>
- <message>
- <source>&amp;Start Bitcoin on window system startup</source>
- <translation type="obsolete">視窗系統啓動時åŒæ™‚é–‹å•“ä½å…ƒå¹£</translation>
- </message>
- <message>
- <source>&amp;Minimize on close</source>
- <translation type="obsolete">關閉時最å°åŒ–</translation>
- </message>
- <message>
- <source>version %s</source>
- <translation type="obsolete">%s 版</translation>
- </message>
- <message>
- <source>Error in amount </source>
- <translation type="obsolete">金é¡æœ‰èª¤</translation>
- </message>
- <message>
- <source>Send Coins</source>
- <translation type="obsolete">付錢</translation>
- </message>
- <message>
- <source>Amount exceeds your balance </source>
- <translation type="obsolete">金é¡è¶…éŽäº†é¤˜é¡ </translation>
- </message>
- <message>
- <source>Total exceeds your balance when the </source>
- <translation type="obsolete">包å«æ‰‹çºŒè²» </translation>
- </message>
- <message>
- <source> transaction fee is included </source>
- <translation type="obsolete"> 後總é¡è¶…éŽäº†é¤˜é¡</translation>
- </message>
- <message>
- <source>Payment sent </source>
- <translation type="obsolete">已付款</translation>
- </message>
- <message>
- <source>Sending...</source>
- <translation type="obsolete">付出中...</translation>
- </message>
- <message>
- <source>Invalid address </source>
- <translation type="obsolete">無效的ä½å€ </translation>
- </message>
- <message>
- <source>Sending %s to %s</source>
- <translation type="obsolete">付出 %s 給 %s</translation>
- </message>
- <message>
- <source>CANCELLED</source>
- <translation type="obsolete">å·²å–消</translation>
- </message>
- <message>
- <source>Cancelled</source>
- <translation type="obsolete">å·²å–消</translation>
- </message>
- <message>
- <source>Transfer cancelled </source>
- <translation type="obsolete">交易已å–消</translation>
- </message>
- <message>
- <source>Error: </source>
- <translation type="obsolete">錯誤: </translation>
- </message>
- <message>
- <source>Insufficient funds</source>
- <translation type="obsolete">ç´¯ç©é‡‘é¡ä¸è¶³</translation>
- </message>
- <message>
- <source>Connecting...</source>
- <translation type="obsolete">連線中...</translation>
- </message>
- <message>
- <source>Unable to connect</source>
- <translation type="obsolete">無法連線</translation>
- </message>
- <message>
- <source>Requesting public key...</source>
- <translation type="obsolete">請求公鑰中...</translation>
- </message>
- <message>
- <source>Received public key...</source>
- <translation type="obsolete">接收公鑰中...</translation>
- </message>
- <message>
- <source>Recipient is not accepting transactions sent by IP address</source>
- <translation type="obsolete">收款人ä¸æŽ¥å—來自以下網路ä½å€çš„交易:</translation>
- </message>
- <message>
- <source>Transfer was not accepted</source>
- <translation type="obsolete">轉帳ä¸è¢«æŽ¥å—</translation>
- </message>
- <message>
- <source>Invalid response received</source>
- <translation type="obsolete">收到了無效的回應</translation>
- </message>
- <message>
- <source>Creating transaction...</source>
- <translation type="obsolete">交易建立中...</translation>
- </message>
- <message>
- <source>This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds</source>
- <translation type="obsolete">這筆交易因為金é¡æˆ–複雜度或最近累ç©æ”¶æ¬¾çš„關係, 需è¦è‡³å°‘ %s 的手續費</translation>
- </message>
- <message>
- <source>Transaction creation failed</source>
- <translation type="obsolete">交易建立失敗</translation>
- </message>
- <message>
- <source>Transaction aborted</source>
- <translation type="obsolete">交易å–消</translation>
- </message>
- <message>
- <source>Lost connection, transaction cancelled</source>
- <translation type="obsolete">斷線了, 交易已å–消</translation>
- </message>
- <message>
- <source>Sending payment...</source>
- <translation type="obsolete">付款中...</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 type="obsolete">交易被拒絕了. 有時候會發生這種事, 是因為你錢包中的一些錢已經被花掉了. 比如說你複製了錢包檔 wallet.dat, 然後用複製的錢包花掉了錢, ä½ ç¾åœ¨æ‰€ç”¨çš„原來的錢包中å»æ²’有該筆交易紀錄.</translation>
- </message>
- <message>
- <source>Waiting for confirmation...</source>
- <translation type="obsolete">等待確èªä¸­...</translation>
- </message>
- <message>
- <source>The payment was sent, but the recipient was unable to verify it.
-The transaction is recorded and will credit to the recipient,
-but the comment information will be blank.</source>
- <translation type="obsolete">已付款, 但是無法驗證收款人.
-這筆交易已經被紀錄了, 金é¡ä¹Ÿæœƒè¢«è¨˜å…¥è‡³æ”¶æ¬¾äººçš„帳戶,
-然而附註資訊將會是空白.</translation>
- </message>
- <message>
- <source>Payment was sent, but an invalid response was received</source>
- <translation type="obsolete">已付款, 但是收到無效的回應</translation>
- </message>
- <message>
- <source>Payment completed</source>
- <translation type="obsolete">付款完æˆ</translation>
- </message>
- <message>
- <source>Name</source>
- <translation type="obsolete">å稱</translation>
- </message>
- <message>
- <source>Address</source>
- <translation type="obsolete">ä½å€</translation>
- </message>
- <message>
- <source>Label</source>
- <translation type="obsolete">標記</translation>
- </message>
- <message>
- <source>Bitcoin Address</source>
- <translation type="obsolete">ä½å…ƒå¹£ä½å€</translation>
- </message>
- <message>
- <source>This is one of your own addresses for receiving payments and cannot be entered in the address book. </source>
- <translation type="obsolete">這是你的一個收款ä½å€, 因而無法輸入於ä½å€ç°¿ä¸­.</translation>
- </message>
- <message>
- <source>Edit Address</source>
- <translation type="obsolete">編輯ä½å€</translation>
- </message>
- <message>
- <source>Edit Address Label</source>
- <translation type="obsolete">編輯ä½å€æ¨™è¨˜</translation>
- </message>
- <message>
- <source>Add Address</source>
- <translation type="obsolete">新增ä½å€</translation>
- </message>
- <message>
- <source>Bitcoin</source>
- <translation type="obsolete">ä½å…ƒå¹£</translation>
- </message>
- <message>
- <source>Bitcoin - Generating</source>
- <translation type="obsolete">ä½å…ƒå¹£ - 生產中</translation>
- </message>
- <message>
- <source>Bitcoin - (not connected)</source>
- <translation type="obsolete">ä½å…ƒå¹£ - (未連線)</translation>
- </message>
- <message>
- <source>&amp;Open Bitcoin</source>
- <translation type="obsolete">é–‹å•“ä½å…ƒå¹£</translation>
- </message>
- <message>
- <source>&amp;Send Bitcoins</source>
- <translation type="obsolete">付ä½å…ƒå¹£</translation>
- </message>
- <message>
- <source>O&amp;ptions...</source>
- <translation type="obsolete">é¸é …...</translation>
- </message>
- <message>
- <source>E&amp;xit</source>
- <translation type="obsolete">çµæŸ</translation>
- </message>
- <message>
- <source>Program has crashed and will terminate. </source>
- <translation type="obsolete">程å¼å·²ç•¶æŽ‰ä¸”將被終止.</translation>
- </message>
- <message>
<location filename="../bitcoinstrings.cpp" line="81"/>
<source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
<translation>警告: 請檢查電腦時間日期是å¦æ­£ç¢º. ä½å…ƒå¹£ç„¡æ³•åœ¨æ™‚é˜ä¸æº–的情æ³ä¸‹æ­£å¸¸é‹ä½œ.</translation>
@@ -2513,16 +2003,4 @@ but the comment information will be blank.</source>
<translation>公測版</translation>
</message>
</context>
-<context>
- <name>main</name>
- <message>
- <source>Bitcoin Qt</source>
- <translation type="obsolete">ä½å…ƒå¹£Qt版</translation>
- </message>
- <message>
- <location filename="../bitcoin.cpp" line="188"/>
- <source>Bitcoin-Qt</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
+</TS> \ No newline at end of file
diff --git a/src/qt/messagepage.cpp b/src/qt/messagepage.cpp
index dee1837ed6..57ad8292dc 100644
--- a/src/qt/messagepage.cpp
+++ b/src/qt/messagepage.cpp
@@ -1,6 +1,12 @@
#include <string>
#include <vector>
+#include <QClipboard>
+#include <QInputDialog>
+#include <QList>
+#include <QListWidgetItem>
+#include <QMessageBox>
+
#include "main.h"
#include "wallet.h"
#include "init.h"
@@ -13,17 +19,16 @@
#include "guiutil.h"
#include "walletmodel.h"
-#include <QClipboard>
-#include <QInputDialog>
-#include <QList>
-#include <QListWidgetItem>
-#include <QMessageBox>
-
MessagePage::MessagePage(QWidget *parent) :
QDialog(parent),
ui(new Ui::MessagePage)
{
ui->setupUi(this);
+
+#if (QT_VERSION >= 0x040700)
+ /* Do not move this to the XML file, Qt before 4.7 will choke on it */
+ ui->signature->setPlaceholderText(tr("Click \"Sign Message\" to get signature"));
+#endif
GUIUtil::setupAddressWidget(ui->signFrom, this);
}
@@ -91,7 +96,7 @@ void MessagePage::on_signMessage_clicked()
return;
}
- CDataStream ss(SER_GETHASH);
+ CDataStream ss(SER_GETHASH, 0);
ss << strMessageMagic;
ss << ui->message->document()->toPlainText().toStdString();
@@ -105,3 +110,10 @@ void MessagePage::on_signMessage_clicked()
ui->signature->setText(QString::fromStdString(EncodeBase64(&vchSig[0], vchSig.size())));
ui->signature->setFont(GUIUtil::bitcoinAddressFont());
}
+
+void MessagePage::on_clearButton_clicked()
+{
+ ui->signFrom->clear();
+ ui->message->clear();
+ ui->signature->clear();
+}
diff --git a/src/qt/messagepage.h b/src/qt/messagepage.h
index 55e6228124..b5a38166da 100644
--- a/src/qt/messagepage.h
+++ b/src/qt/messagepage.h
@@ -33,6 +33,7 @@ private slots:
void on_signMessage_clicked();
void on_copyToClipboard_clicked();
+ void on_clearButton_clicked();
};
#endif // MESSAGEPAGE_H
diff --git a/src/qt/notificator.cpp b/src/qt/notificator.cpp
index a2314caa47..e668079536 100644
--- a/src/qt/notificator.cpp
+++ b/src/qt/notificator.cpp
@@ -52,10 +52,13 @@ Notificator::Notificator(const QString &programName, QSystemTrayIcon *trayicon,
OSStatus status = LSGetApplicationForInfo(kLSUnknownType, kLSUnknownCreator, CFSTR("growlTicket"), kLSRolesAll, 0, &cfurl);
if (status != kLSApplicationNotFoundErr) {
CFBundleRef bundle = CFBundleCreate(0, cfurl);
- CFRelease(cfurl);
if (CFStringCompare(CFBundleGetIdentifier(bundle), CFSTR("com.Growl.GrowlHelperApp"), kCFCompareCaseInsensitive | kCFCompareBackwards) == kCFCompareEqualTo) {
- mode = Growl;
+ if (CFStringHasSuffix(CFURLGetString(cfurl), CFSTR("/Growl.app/")))
+ mode = Growl13;
+ else
+ mode = Growl12;
}
+ CFRelease(cfurl);
CFRelease(bundle);
}
#endif
@@ -226,7 +229,7 @@ void Notificator::notifySystray(Class cls, const QString &title, const QString &
void Notificator::notifyGrowl(Class cls, const QString &title, const QString &text, const QIcon &icon)
{
const QString script(
- "tell application \"GrowlHelperApp\"\n"
+ "tell application \"%5\"\n"
" set the allNotificationsList to {\"Notification\"}\n" // -- Make a list of all the notification types (all)
" set the enabledNotificationsList to {\"Notification\"}\n" // -- Make a list of the notifications (enabled)
" register as application \"%1\" all notifications allNotificationsList default notifications enabledNotificationsList\n" // -- Register our script with Growl
@@ -265,7 +268,8 @@ void Notificator::notifyGrowl(Class cls, const QString &title, const QString &te
QString quotedTitle(title), quotedText(text);
quotedTitle.replace("\\", "\\\\").replace("\"", "\\");
quotedText.replace("\\", "\\\\").replace("\"", "\\");
- qt_mac_execute_apple_script(script.arg(notificationApp, quotedTitle, quotedText, notificationIcon), 0);
+ QString growlApp(this->mode == Notificator::Growl13 ? "Growl" : "GrowlHelperApp");
+ qt_mac_execute_apple_script(script.arg(notificationApp, quotedTitle, quotedText, notificationIcon, growlApp), 0);
}
#endif
@@ -282,7 +286,8 @@ void Notificator::notify(Class cls, const QString &title, const QString &text, c
notifySystray(cls, title, text, icon, millisTimeout);
break;
#ifdef Q_WS_MAC
- case Growl:
+ case Growl12:
+ case Growl13:
notifyGrowl(cls, title, text, icon);
break;
#endif
diff --git a/src/qt/notificator.h b/src/qt/notificator.h
index 2d83013a7f..0271c26f48 100644
--- a/src/qt/notificator.h
+++ b/src/qt/notificator.h
@@ -49,7 +49,8 @@ private:
None, /**< Ignore informational notifications, and show a modal pop-up dialog for Critical notifications. */
Freedesktop, /**< Use DBus org.freedesktop.Notifications */
QSystemTray, /**< Use QSystemTray::showMessage */
- Growl /**< Use the Growl notification system (Mac only) */
+ Growl12, /**< Use the Growl 1.2 notification system (Mac only) */
+ Growl13 /**< Use the Growl 1.3 notification system (Mac only) */
};
QString programName;
Mode mode;
diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp
index 81fcdbfa4c..416880d462 100644
--- a/src/qt/optionsdialog.cpp
+++ b/src/qt/optionsdialog.cpp
@@ -38,6 +38,7 @@ private:
QCheckBox *minimize_on_close;
#endif
QCheckBox *connect_socks4;
+ QCheckBox *detach_database;
QLineEdit *proxy_ip;
QLineEdit *proxy_port;
BitcoinAmountField *fee_edit;
@@ -175,18 +176,16 @@ MainOptionsPage::MainOptionsPage(QWidget *parent):
minimize_to_tray = new QCheckBox(tr("&Minimize to the tray instead of the taskbar"));
minimize_to_tray->setToolTip(tr("Show only a tray icon after minimizing the window"));
layout->addWidget(minimize_to_tray);
-#endif
-
- map_port_upnp = new QCheckBox(tr("Map port using &UPnP"));
- map_port_upnp->setToolTip(tr("Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled."));
- layout->addWidget(map_port_upnp);
-#ifndef Q_WS_MAC
minimize_on_close = new QCheckBox(tr("M&inimize on close"));
minimize_on_close->setToolTip(tr("Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu."));
layout->addWidget(minimize_on_close);
#endif
+ map_port_upnp = new QCheckBox(tr("Map port using &UPnP"));
+ map_port_upnp->setToolTip(tr("Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled."));
+ layout->addWidget(map_port_upnp);
+
connect_socks4 = new QCheckBox(tr("&Connect through SOCKS4 proxy:"));
connect_socks4->setToolTip(tr("Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)"));
layout->addWidget(connect_socks4);
@@ -230,6 +229,10 @@ MainOptionsPage::MainOptionsPage(QWidget *parent):
layout->addLayout(fee_hbox);
+ detach_database = new QCheckBox(tr("Detach databases at shutdown"));
+ detach_database->setToolTip(tr("Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached."));
+ layout->addWidget(detach_database);
+
layout->addStretch(1); // Extra space at bottom
setLayout(layout);
@@ -257,6 +260,7 @@ void MainOptionsPage::setMapper(MonitoredDataMapper *mapper)
mapper->addMapping(proxy_ip, OptionsModel::ProxyIP);
mapper->addMapping(proxy_port, OptionsModel::ProxyPort);
mapper->addMapping(fee_edit, OptionsModel::Fee);
+ mapper->addMapping(detach_database, OptionsModel::DetachDatabases);
}
DisplayOptionsPage::DisplayOptionsPage(QWidget *parent):
@@ -277,7 +281,8 @@ DisplayOptionsPage::DisplayOptionsPage(QWidget *parent):
layout->addLayout(unit_hbox);
- display_addresses = new QCheckBox(tr("Display addresses in transaction list"), this);
+ display_addresses = new QCheckBox(tr("&Display addresses in transaction list"), this);
+ display_addresses->setToolTip(tr("Whether to show Bitcoin addresses in the transaction list"));
layout->addWidget(display_addresses);
layout->addStretch();
diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp
index edc1d61e9d..5bba308cf2 100644
--- a/src/qt/optionsmodel.cpp
+++ b/src/qt/optionsmodel.cpp
@@ -1,21 +1,96 @@
#include "optionsmodel.h"
#include "bitcoinunits.h"
+#include <QSettings>
-#include "headers.h"
#include "init.h"
+#include "walletdb.h"
-OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
- QAbstractListModel(parent),
- wallet(wallet),
- nDisplayUnit(BitcoinUnits::BTC),
- bDisplayAddresses(false)
+OptionsModel::OptionsModel(QObject *parent) :
+ QAbstractListModel(parent)
{
- // Read our specific settings from the wallet db
- CWalletDB walletdb(wallet->strWalletFile);
- walletdb.ReadSetting("nDisplayUnit", nDisplayUnit);
- walletdb.ReadSetting("bDisplayAddresses", bDisplayAddresses);
+ Init();
}
+void OptionsModel::Init()
+{
+ QSettings settings;
+
+ // These are QT-only settings:
+ nDisplayUnit = settings.value("nDisplayUnit", BitcoinUnits::BTC).toInt();
+ bDisplayAddresses = settings.value("bDisplayAddresses", false).toBool();
+ fMinimizeToTray = settings.value("fMinimizeToTray", false).toBool();
+ fMinimizeOnClose = settings.value("fMinimizeOnClose", false).toBool();
+ nTransactionFee = settings.value("nTransactionFee").toLongLong();
+
+ // These are shared with core bitcoin; we want
+ // command-line options to override the GUI settings:
+ if (settings.contains("fUseUPnP"))
+ SoftSetBoolArg("-upnp", settings.value("fUseUPnP").toBool());
+ if (settings.contains("addrProxy") && settings.value("fUseProxy").toBool())
+ SoftSetArg("-proxy", settings.value("addrProxy").toString().toStdString());
+ if (settings.contains("detachDB"))
+ SoftSetBoolArg("-detachdb", settings.value("detachDB").toBool());
+}
+
+bool OptionsModel::Upgrade()
+{
+ QSettings settings;
+
+ if (settings.contains("bImportFinished"))
+ return false; // Already upgraded
+
+ settings.setValue("bImportFinished", true);
+
+ // Move settings from old wallet.dat (if any):
+ CWalletDB walletdb("wallet.dat");
+
+ QList<QString> intOptions;
+ intOptions << "nDisplayUnit" << "nTransactionFee";
+ foreach(QString key, intOptions)
+ {
+ int value = 0;
+ if (walletdb.ReadSetting(key.toStdString(), value))
+ {
+ settings.setValue(key, value);
+ walletdb.EraseSetting(key.toStdString());
+ }
+ }
+ QList<QString> boolOptions;
+ boolOptions << "bDisplayAddresses" << "fMinimizeToTray" << "fMinimizeOnClose" << "fUseProxy" << "fUseUPnP";
+ foreach(QString key, boolOptions)
+ {
+ bool value = false;
+ if (walletdb.ReadSetting(key.toStdString(), value))
+ {
+ settings.setValue(key, value);
+ walletdb.EraseSetting(key.toStdString());
+ }
+ }
+ try
+ {
+ CAddress addrProxyAddress;
+ if (walletdb.ReadSetting("addrProxy", addrProxyAddress))
+ {
+ addrProxy = addrProxyAddress;
+ settings.setValue("addrProxy", addrProxy.ToStringIPPort().c_str());
+ walletdb.EraseSetting("addrProxy");
+ }
+ }
+ catch (std::ios_base::failure &e)
+ {
+ // 0.6.0rc1 saved this as a CService, which causes failure when parsing as a CAddress
+ if (walletdb.ReadSetting("addrProxy", addrProxy))
+ {
+ settings.setValue("addrProxy", addrProxy.ToStringIPPort().c_str());
+ walletdb.EraseSetting("addrProxy");
+ }
+ }
+ Init();
+
+ return true;
+}
+
+
int OptionsModel::rowCount(const QModelIndex & parent) const
{
return OptionIDRowCount;
@@ -25,6 +100,7 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
{
if(role == Qt::EditRole)
{
+ QSettings settings;
switch(index.row())
{
case StartAtStartup:
@@ -32,11 +108,11 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
case MinimizeToTray:
return QVariant(fMinimizeToTray);
case MapPortUPnP:
- return QVariant(fUseUPnP);
+ return settings.value("fUseUPnP", GetBoolArg("-upnp", true));
case MinimizeOnClose:
return QVariant(fMinimizeOnClose);
case ConnectSOCKS4:
- return QVariant(fUseProxy);
+ return settings.value("fUseProxy", false);
case ProxyIP:
return QVariant(QString::fromStdString(addrProxy.ToStringIP()));
case ProxyPort:
@@ -47,6 +123,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
return QVariant(nDisplayUnit);
case DisplayAddresses:
return QVariant(bDisplayAddresses);
+ case DetachDatabases:
+ return QVariant(fDetachDB);
default:
return QVariant();
}
@@ -59,7 +137,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
bool successful = true; /* set to false on parse error */
if(role == Qt::EditRole)
{
- CWalletDB walletdb(wallet->strWalletFile);
+ QSettings settings;
switch(index.row())
{
case StartAtStartup:
@@ -67,22 +145,22 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
break;
case MinimizeToTray:
fMinimizeToTray = value.toBool();
- walletdb.WriteSetting("fMinimizeToTray", fMinimizeToTray);
+ settings.setValue("fMinimizeToTray", fMinimizeToTray);
break;
case MapPortUPnP:
- fUseUPnP = value.toBool();
- walletdb.WriteSetting("fUseUPnP", fUseUPnP);
-#ifdef USE_UPNP
- MapPort(fUseUPnP);
-#endif
+ {
+ bool bUseUPnP = value.toBool();
+ settings.setValue("fUseUPnP", bUseUPnP);
+ MapPort(bUseUPnP);
+ }
break;
case MinimizeOnClose:
fMinimizeOnClose = value.toBool();
- walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
+ settings.setValue("fMinimizeOnClose", fMinimizeOnClose);
break;
case ConnectSOCKS4:
fUseProxy = value.toBool();
- walletdb.WriteSetting("fUseProxy", fUseProxy);
+ settings.setValue("fUseProxy", fUseProxy);
break;
case ProxyIP:
{
@@ -91,7 +169,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
if (addr.IsValid())
{
addrProxy.SetIP(addr);
- walletdb.WriteSetting("addrProxy", addrProxy);
+ settings.setValue("addrProxy", addrProxy.ToStringIPPort().c_str());
}
else
{
@@ -105,7 +183,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
if (nPort > 0 && nPort < std::numeric_limits<unsigned short>::max())
{
addrProxy.SetPort(nPort);
- walletdb.WriteSetting("addrProxy", addrProxy);
+ settings.setValue("addrProxy", addrProxy.ToStringIPPort().c_str());
}
else
{
@@ -115,19 +193,26 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
break;
case Fee: {
nTransactionFee = value.toLongLong();
- walletdb.WriteSetting("nTransactionFee", nTransactionFee);
+ settings.setValue("nTransactionFee", nTransactionFee);
}
break;
case DisplayUnit: {
int unit = value.toInt();
nDisplayUnit = unit;
- walletdb.WriteSetting("nDisplayUnit", nDisplayUnit);
+ settings.setValue("nDisplayUnit", nDisplayUnit);
emit displayUnitChanged(unit);
}
+ break;
case DisplayAddresses: {
bDisplayAddresses = value.toBool();
- walletdb.WriteSetting("bDisplayAddresses", bDisplayAddresses);
+ settings.setValue("bDisplayAddresses", bDisplayAddresses);
+ }
+ break;
+ case DetachDatabases: {
+ fDetachDB = value.toBool();
+ settings.setValue("detachDB", fDetachDB);
}
+ break;
default:
break;
}
diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h
index 775362d636..da4e86f104 100644
--- a/src/qt/optionsmodel.h
+++ b/src/qt/optionsmodel.h
@@ -3,8 +3,6 @@
#include <QAbstractListModel>
-class CWallet;
-
/** Interface from QT to configuration data structure for bitcoin client.
To QT, the options are presented as a list with the different options
laid out vertically.
@@ -15,7 +13,7 @@ class OptionsModel : public QAbstractListModel
{
Q_OBJECT
public:
- explicit OptionsModel(CWallet *wallet, QObject *parent = 0);
+ explicit OptionsModel(QObject *parent = 0);
enum OptionID {
StartAtStartup, // bool
@@ -28,9 +26,15 @@ public:
Fee, // qint64
DisplayUnit, // BitcoinUnits::Unit
DisplayAddresses, // bool
- OptionIDRowCount
+ DetachDatabases, // bool
+ OptionIDRowCount,
};
+ void Init();
+
+ /* Migrate settings from wallet.dat after app initialization */
+ bool Upgrade(); /* returns true if settings upgraded */
+
int rowCount(const QModelIndex & parent = QModelIndex()) const;
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
@@ -42,10 +46,10 @@ public:
int getDisplayUnit();
bool getDisplayAddresses();
private:
- // Wallet stores persistent options
- CWallet *wallet;
int nDisplayUnit;
bool bDisplayAddresses;
+ bool fMinimizeToTray;
+ bool fMinimizeOnClose;
signals:
void displayUnitChanged(int unit);
diff --git a/src/qt/qrcodedialog.cpp b/src/qt/qrcodedialog.cpp
index ed4c758e38..2a428fb79e 100644
--- a/src/qt/qrcodedialog.cpp
+++ b/src/qt/qrcodedialog.cpp
@@ -1,28 +1,26 @@
#include "qrcodedialog.h"
#include "ui_qrcodedialog.h"
+#include "guiutil.h"
+
#include <QPixmap>
#include <QUrl>
-#include <QFileDialog>
-#include <QDesktopServices>
#include <QDebug>
#include <qrencode.h>
-#define EXPORT_IMAGE_SIZE 256
+#define EXPORT_IMAGE_SIZE 256
-QRCodeDialog::QRCodeDialog(const QString &title, const QString &addr, const QString &label, bool enableReq, QWidget *parent) :
- QDialog(parent),
- ui(new Ui::QRCodeDialog),
- address(addr)
+QRCodeDialog::QRCodeDialog(const QString &addr, const QString &label, bool enableReq, QWidget *parent) :
+ QDialog(parent), ui(new Ui::QRCodeDialog), address(addr)
{
ui->setupUi(this);
- setWindowTitle(title);
+ setWindowTitle(QString("%1").arg(address));
setAttribute(Qt::WA_DeleteOnClose);
- ui->chkReq->setVisible(enableReq);
+ ui->chkReqPayment->setVisible(enableReq);
ui->lnReqAmount->setVisible(enableReq);
- ui->lblAm1->setVisible(enableReq);
- ui->lblAm2->setVisible(enableReq);
+ ui->lblAmount->setVisible(enableReq);
+ ui->lblBTC->setVisible(enableReq);
ui->lnLabel->setText(label);
@@ -34,73 +32,98 @@ QRCodeDialog::~QRCodeDialog()
delete ui;
}
-void QRCodeDialog::genCode() {
-
+void QRCodeDialog::genCode()
+{
QString uri = getURI();
- //qDebug() << "Encoding:" << uri.toUtf8().constData();
- QRcode *code = QRcode_encodeString(uri.toUtf8().constData(), 0, QR_ECLEVEL_L, QR_MODE_8, 1);
- myImage = QImage(code->width + 8, code->width + 8, QImage::Format_RGB32);
- myImage.fill(0xffffff);
- unsigned char *p = code->data;
- for(int y = 0; y < code->width; y++) {
- for(int x = 0; x < code->width; x++) {
- myImage.setPixel(x + 4, y + 4, ((*p & 1) ? 0x0 : 0xffffff));
- p++;
+
+ if (uri != "")
+ {
+ ui->lblQRCode->setText("");
+
+ QRcode *code = QRcode_encodeString(uri.toUtf8().constData(), 0, QR_ECLEVEL_L, QR_MODE_8, 1);
+ if (!code)
+ {
+ ui->lblQRCode->setText(tr("Error encoding URI into QR Code."));
+ return;
+ }
+ myImage = QImage(code->width + 8, code->width + 8, QImage::Format_RGB32);
+ myImage.fill(0xffffff);
+ unsigned char *p = code->data;
+ for (int y = 0; y < code->width; y++)
+ {
+ for (int x = 0; x < code->width; x++)
+ {
+ myImage.setPixel(x + 4, y + 4, ((*p & 1) ? 0x0 : 0xffffff));
+ p++;
+ }
}
+ QRcode_free(code);
+ ui->lblQRCode->setPixmap(QPixmap::fromImage(myImage).scaled(300, 300));
}
- QRcode_free(code);
- ui->lblQRCode->setPixmap(QPixmap::fromImage(myImage).scaled(300, 300));
+ else
+ ui->lblQRCode->setText(tr("Resulting URI too long, try to reduce the text for label / message."));
}
-QString QRCodeDialog::getURI() {
+QString QRCodeDialog::getURI()
+{
QString ret = QString("bitcoin:%1").arg(address);
int paramCount = 0;
- if(ui->chkReq->isChecked() && ui->lnReqAmount->text().isEmpty() == false) {
- bool ok= false;
- double amount = ui->lnReqAmount->text().toDouble(&ok);
- if(ok) {
- ret += QString("?amount=%1X8").arg(ui->lnReqAmount->text());
+ if (ui->chkReqPayment->isChecked() && !ui->lnReqAmount->text().isEmpty())
+ {
+ bool ok = false;
+ ui->lnReqAmount->text().toDouble(&ok);
+ if (ok)
+ {
+ ret += QString("?amount=%1").arg(ui->lnReqAmount->text());
paramCount++;
}
}
- if(ui->lnLabel->text().isEmpty() == false) {
+ if (!ui->lnLabel->text().isEmpty())
+ {
QString lbl(QUrl::toPercentEncoding(ui->lnLabel->text()));
ret += QString("%1label=%2").arg(paramCount == 0 ? "?" : "&").arg(lbl);
paramCount++;
}
- if(ui->lnMessage->text().isEmpty() == false) {
+ if (!ui->lnMessage->text().isEmpty())
+ {
QString msg(QUrl::toPercentEncoding(ui->lnMessage->text()));
ret += QString("%1message=%2").arg(paramCount == 0 ? "?" : "&").arg(msg);
paramCount++;
}
- return ret;
+ // limit URI length to 255 chars, to prevent a DoS against the QR-Code dialog
+ if (ret.length() < 256)
+ return ret;
+ else
+ return QString("");
}
-void QRCodeDialog::on_lnReqAmount_textChanged(const QString &) {
+void QRCodeDialog::on_lnReqAmount_textChanged(const QString &arg1)
+{
genCode();
}
-void QRCodeDialog::on_lnLabel_textChanged(const QString &) {
+void QRCodeDialog::on_lnLabel_textChanged(const QString &arg1)
+{
genCode();
}
-void QRCodeDialog::on_lnMessage_textChanged(const QString &) {
+void QRCodeDialog::on_lnMessage_textChanged(const QString &arg1)
+{
genCode();
}
void QRCodeDialog::on_btnSaveAs_clicked()
{
- QString fn = QFileDialog::getSaveFileName(this, "Save Image...", QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation), "Images (*.png)");
- if(!fn.isEmpty()) {
+ QString fn = GUIUtil::getSaveFileName(this, tr("Save Image..."), QString(), tr("PNG Images (*.png)"));
+ if (!fn.isEmpty())
myImage.scaled(EXPORT_IMAGE_SIZE, EXPORT_IMAGE_SIZE).save(fn);
- }
}
-void QRCodeDialog::on_chkReq_toggled(bool)
+void QRCodeDialog::on_chkReqPayment_toggled(bool)
{
genCode();
}
diff --git a/src/qt/qrcodedialog.h b/src/qt/qrcodedialog.h
index 7463a8810e..ad0611605b 100644
--- a/src/qt/qrcodedialog.h
+++ b/src/qt/qrcodedialog.h
@@ -13,7 +13,7 @@ class QRCodeDialog : public QDialog
Q_OBJECT
public:
- explicit QRCodeDialog(const QString &title, const QString &address, const QString &label, bool allowReq, QWidget *parent = 0);
+ explicit QRCodeDialog(const QString &addr, const QString &label, bool enableReq, QWidget *parent = 0);
~QRCodeDialog();
private slots:
@@ -22,7 +22,7 @@ private slots:
void on_lnMessage_textChanged(const QString &arg1);
void on_btnSaveAs_clicked();
- void on_chkReq_toggled(bool checked);
+ void on_chkReqPayment_toggled(bool checked);
private:
Ui::QRCodeDialog *ui;
diff --git a/src/qt/qtipcserver.cpp b/src/qt/qtipcserver.cpp
index 2ed8b915c5..102ac0ff4e 100644
--- a/src/qt/qtipcserver.cpp
+++ b/src/qt/qtipcserver.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -7,7 +7,9 @@
#include <boost/tokenizer.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
-#include "headers.h"
+#include "ui_interface.h"
+#include "util.h"
+#include "qtipcserver.h"
using namespace boost::interprocess;
using namespace boost::posix_time;
@@ -16,7 +18,7 @@ using namespace std;
void ipcShutdown()
{
- message_queue::remove("BitcoinURL");
+ message_queue::remove(BITCOINURI_QUEUE_NAME);
}
void ipcThread(void* parg)
@@ -30,16 +32,7 @@ void ipcThread(void* parg)
ptime d = boost::posix_time::microsec_clock::universal_time() + millisec(100);
if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d))
{
- strBuf[nSize] = '\0';
- // Convert bitcoin:// URLs to bitcoin: URIs
- if (strBuf[8] == '/' && strBuf[9] == '/')
- {
- for (int i = 8; i < 256; i++)
- {
- strBuf[i] = strBuf[i+2];
- }
- }
- ThreadSafeHandleURL(strBuf);
+ ThreadSafeHandleURI(std::string(strBuf, nSize));
Sleep(1000);
}
if (fShutdown)
@@ -53,12 +46,23 @@ void ipcThread(void* parg)
void ipcInit()
{
+#ifdef MAC_OSX
+ // TODO: implement bitcoin: URI handling the Mac Way
+ return;
+#endif
+#ifdef WIN32
+ // TODO: THOROUGHLY test boost::interprocess fix,
+ // and make sure there are no Windows argument-handling exploitable
+ // problems.
+ return;
+#endif
+
message_queue* mq;
char strBuf[257];
size_t nSize;
unsigned int nPriority;
try {
- mq = new message_queue(open_or_create, "BitcoinURL", 2, 256);
+ mq = new message_queue(open_or_create, BITCOINURI_QUEUE_NAME, 2, 256);
// Make sure we don't lose any bitcoin: URIs
for (int i = 0; i < 2; i++)
@@ -66,24 +70,15 @@ void ipcInit()
ptime d = boost::posix_time::microsec_clock::universal_time() + millisec(1);
if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d))
{
- strBuf[nSize] = '\0';
- // Convert bitcoin:// URLs to bitcoin: URIs
- if (strBuf[8] == '/' && strBuf[9] == '/')
- {
- for (int i = 8; i < 256; i++)
- {
- strBuf[i] = strBuf[i+2];
- }
- }
- ThreadSafeHandleURL(strBuf);
+ ThreadSafeHandleURI(std::string(strBuf, nSize));
}
else
break;
}
// Make sure only one bitcoin instance is listening
- message_queue::remove("BitcoinURL");
- mq = new message_queue(open_or_create, "BitcoinURL", 2, 256);
+ message_queue::remove(BITCOINURI_QUEUE_NAME);
+ mq = new message_queue(open_or_create, BITCOINURI_QUEUE_NAME, 2, 256);
}
catch (interprocess_exception &ex) {
return;
diff --git a/src/qt/qtipcserver.h b/src/qt/qtipcserver.h
index 1de0334afd..fcff10d8da 100644
--- a/src/qt/qtipcserver.h
+++ b/src/qt/qtipcserver.h
@@ -1,2 +1,4 @@
+#define BITCOINURI_QUEUE_NAME "BitcoinURI"
+
void ipcInit();
void ipcShutdown();
diff --git a/src/qt/res/icons/connect4_16.png b/src/qt/res/icons/connect4_16.png
index e2fe97d496..c1232f5682 100644
--- a/src/qt/res/icons/connect4_16.png
+++ b/src/qt/res/icons/connect4_16.png
Binary files differ
diff --git a/src/qt/res/icons/filesave.png b/src/qt/res/icons/filesave.png
new file mode 100644
index 0000000000..ae13a151d5
--- /dev/null
+++ b/src/qt/res/icons/filesave.png
Binary files differ
diff --git a/src/qt/res/icons/qrcode.png b/src/qt/res/icons/qrcode.png
new file mode 100644
index 0000000000..a8d97174b3
--- /dev/null
+++ b/src/qt/res/icons/qrcode.png
Binary files differ
diff --git a/src/qt/res/images/qrcode.png b/src/qt/res/images/qrcode.png
deleted file mode 100644
index c89a49bbce..0000000000
--- a/src/qt/res/images/qrcode.png
+++ /dev/null
Binary files differ
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index 0d9a604d3b..b4029aa0d2 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -154,6 +154,8 @@ void SendCoinsDialog::on_sendButton_clicked()
tr("Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."),
QMessageBox::Ok, QMessageBox::Ok);
break;
+ case WalletModel::Aborted: // User aborted, nothing to do
+ break;
case WalletModel::OK:
accept();
break;
@@ -265,10 +267,10 @@ void SendCoinsDialog::pasteEntry(const SendCoinsRecipient &rv)
}
-void SendCoinsDialog::handleURL(const QUrl *url)
+void SendCoinsDialog::handleURI(const QString &uri)
{
SendCoinsRecipient rv;
- if(!GUIUtil::parseBitcoinURL(url, &rv))
+ if(!GUIUtil::parseBitcoinURI(uri, &rv))
{
return;
}
diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h
index 847ee8b697..5dcbfbeb61 100644
--- a/src/qt/sendcoinsdialog.h
+++ b/src/qt/sendcoinsdialog.h
@@ -30,7 +30,7 @@ public:
QWidget *setupTabChain(QWidget *prev);
void pasteEntry(const SendCoinsRecipient &rv);
- void handleURL(const QUrl *url);
+ void handleURI(const QString &uri);
public slots:
void clear();
diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp
index ab5460f8c2..5960597c77 100644
--- a/src/qt/sendcoinsentry.cpp
+++ b/src/qt/sendcoinsentry.cpp
@@ -20,10 +20,10 @@ SendCoinsEntry::SendCoinsEntry(QWidget *parent) :
#ifdef Q_WS_MAC
ui->payToLayout->setSpacing(4);
#endif
-
#if QT_VERSION >= 0x040700
- ui->payTo->setPlaceholderText(tr("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"));
+ /* Do not move this to the XML file, Qt before 4.7 will choke on it */
ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book"));
+ ui->payTo->setPlaceholderText(tr("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"));
#endif
setFocusPolicy(Qt::TabFocus);
setFocusProxy(ui->payTo);
@@ -59,12 +59,16 @@ void SendCoinsEntry::on_payTo_textChanged(const QString &address)
{
if(!model)
return;
- ui->addAsLabel->setText(model->getAddressTableModel()->labelForAddress(address));
+ // Fill in label from address book, if address has an associated label
+ QString associatedLabel = model->getAddressTableModel()->labelForAddress(address);
+ if(!associatedLabel.isEmpty())
+ ui->addAsLabel->setText(associatedLabel);
}
void SendCoinsEntry::setModel(WalletModel *model)
{
this->model = model;
+ clear();
}
void SendCoinsEntry::setRemoveEnabled(bool enabled)
diff --git a/src/qt/test/test_main.cpp b/src/qt/test/test_main.cpp
new file mode 100644
index 0000000000..5b11e39ea3
--- /dev/null
+++ b/src/qt/test/test_main.cpp
@@ -0,0 +1,11 @@
+#include <QTest>
+#include <QObject>
+
+#include "uritests.h"
+
+// This is all you need to run all the tests
+int main(int argc, char *argv[])
+{
+ URITests test1;
+ QTest::qExec(&test1);
+}
diff --git a/src/qt/test/uritests.cpp b/src/qt/test/uritests.cpp
new file mode 100644
index 0000000000..70c20be0ea
--- /dev/null
+++ b/src/qt/test/uritests.cpp
@@ -0,0 +1,71 @@
+#include "uritests.h"
+#include "../guiutil.h"
+#include "../walletmodel.h"
+
+#include <QUrl>
+
+/*
+struct SendCoinsRecipient
+{
+ QString address;
+ QString label;
+ qint64 amount;
+};
+*/
+
+void URITests::uriTests()
+{
+ SendCoinsRecipient rv;
+ QUrl uri;
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist="));
+ QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
+
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist="));
+ QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
+ QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
+ QVERIFY(rv.label == QString());
+ QVERIFY(rv.amount == 0);
+
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Wikipedia Example Address"));
+ QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
+ QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
+ QVERIFY(rv.label == QString("Wikipedia Example Address"));
+ QVERIFY(rv.amount == 0);
+
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001"));
+ QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
+ QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
+ QVERIFY(rv.label == QString());
+ QVERIFY(rv.amount == 100000);
+
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001"));
+ QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
+ QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
+ QVERIFY(rv.label == QString());
+ QVERIFY(rv.amount == 100100000);
+
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&label=Wikipedia Example"));
+ QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
+ QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
+ QVERIFY(rv.amount == 10000000000);
+ QVERIFY(rv.label == QString("Wikipedia Example"));
+
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address"));
+ QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
+ QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
+ QVERIFY(rv.label == QString());
+
+ QVERIFY(GUIUtil::parseBitcoinURI("bitcoin://175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address", &rv));
+ QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
+ QVERIFY(rv.label == QString());
+
+ // We currently dont implement the message paramenter (ok, yea, we break spec...)
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=Wikipedia Example Address"));
+ QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
+
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000&label=Wikipedia Example"));
+ QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
+
+ uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000.0&label=Wikipedia Example"));
+ QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
+}
diff --git a/src/qt/test/uritests.h b/src/qt/test/uritests.h
new file mode 100644
index 0000000000..1237516e5f
--- /dev/null
+++ b/src/qt/test/uritests.h
@@ -0,0 +1,15 @@
+#ifndef URITESTS_H
+#define URITESTS_H
+
+#include <QTest>
+#include <QObject>
+
+class URITests : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void uriTests();
+};
+
+#endif // URITESTS_H
diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp
index 089fe751b8..286cddf2a9 100644
--- a/src/qt/transactiondesc.cpp
+++ b/src/qt/transactiondesc.cpp
@@ -1,10 +1,12 @@
-#include <transactiondesc.h>
+#include "transactiondesc.h"
#include "guiutil.h"
#include "bitcoinunits.h"
-#include "headers.h"
-#include "qtui.h"
+#include "main.h"
+#include "wallet.h"
+#include "db.h"
+#include "ui_interface.h"
#include <QString>
@@ -34,8 +36,9 @@ QString TransactionDesc::FormatTxStatus(const CWalletTx& wtx)
QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx)
{
QString strHTML;
- CRITICAL_BLOCK(wallet->cs_wallet)
+
{
+ LOCK(wallet->cs_wallet);
strHTML.reserve(4000);
strHTML += "<html><font face='verdana, arial, helvetica, sans-serif'>";
@@ -243,8 +246,9 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx)
strHTML += "<br><b>Inputs:</b>";
strHTML += "<ul>";
- CRITICAL_BLOCK(wallet->cs_wallet)
+
{
+ LOCK(wallet->cs_wallet);
BOOST_FOREACH(const CTxIn& txin, wtx.vin)
{
COutPoint prevout = txin.prevout;
diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp
index 2cd135df34..90fc5b7da3 100644
--- a/src/qt/transactionrecord.cpp
+++ b/src/qt/transactionrecord.cpp
@@ -1,6 +1,6 @@
#include "transactionrecord.h"
-#include "headers.h"
+#include "wallet.h"
/* Return positive answer if transaction should be shown in list.
*/
@@ -33,7 +33,7 @@ bool TransactionRecord::showTransaction(const CWalletTx &wtx)
QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *wallet, const CWalletTx &wtx)
{
QList<TransactionRecord> parts;
- int64 nTime = wtx.nTimeDisplayed = wtx.GetTxTime();
+ int64 nTime = wtx.GetTxTime();
int64 nCredit = wtx.GetCredit(true);
int64 nDebit = wtx.GetDebit();
int64 nNet = nCredit - nDebit;
@@ -47,49 +47,35 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
//
// Credit
//
- TransactionRecord sub(hash, nTime);
-
- sub.credit = nNet;
-
- if (wtx.IsCoinBase())
- {
- // Generated
- sub.type = TransactionRecord::Generated;
-
- if (nCredit == 0)
- {
- int64 nUnmatured = 0;
- BOOST_FOREACH(const CTxOut& txout, wtx.vout)
- nUnmatured += wallet->GetCredit(txout);
- sub.credit = nUnmatured;
- }
- }
- else
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
{
- bool foundAddress = false;
- // Received by Bitcoin Address
- BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ if(wallet->IsMine(txout))
{
- if(wallet->IsMine(txout))
+ TransactionRecord sub(hash, nTime);
+ CBitcoinAddress address;
+ sub.idx = parts.size(); // sequence number
+ sub.credit = txout.nValue;
+ if (wtx.IsCoinBase())
{
- CBitcoinAddress address;
- if (ExtractAddress(txout.scriptPubKey, address) && wallet->HaveKey(address))
- {
- sub.type = TransactionRecord::RecvWithAddress;
- sub.address = address.ToString();
- foundAddress = true;
- break;
- }
+ // Generated
+ sub.type = TransactionRecord::Generated;
}
- }
- if(!foundAddress)
- {
- // Received by IP connection, or other non-address transaction like OP_EVAL
- sub.type = TransactionRecord::RecvFromOther;
- sub.address = mapValue["from"];
+ else if (ExtractAddress(txout.scriptPubKey, address) && wallet->HaveKey(address))
+ {
+ // Received by Bitcoin Address
+ sub.type = TransactionRecord::RecvWithAddress;
+ sub.address = address.ToString();
+ }
+ else
+ {
+ // Received by IP connection (deprecated features), or a multisignature or other non-simple transaction
+ sub.type = TransactionRecord::RecvFromOther;
+ sub.address = mapValue["from"];
+ }
+
+ parts.append(sub);
}
}
- parts.append(sub);
}
else
{
@@ -160,12 +146,6 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
//
// Mixed debit transaction, can't break down payees
//
- bool fAllMine = true;
- BOOST_FOREACH(const CTxOut& txout, wtx.vout)
- fAllMine = fAllMine && wallet->IsMine(txout);
- BOOST_FOREACH(const CTxIn& txin, wtx.vin)
- fAllMine = fAllMine && wallet->IsMine(txin);
-
parts.append(TransactionRecord(hash, nTime, TransactionRecord::Other, "", nNet, 0));
}
}
diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp
index b863546691..5f505f444e 100644
--- a/src/qt/transactiontablemodel.cpp
+++ b/src/qt/transactiontablemodel.cpp
@@ -8,7 +8,7 @@
#include "addresstablemodel.h"
#include "bitcoinunits.h"
-#include "headers.h"
+#include "wallet.h"
#include <QLocale>
#include <QList>
@@ -45,8 +45,9 @@ struct TxLessThan
};
// Private implementation
-struct TransactionTablePriv
+class TransactionTablePriv
{
+public:
TransactionTablePriv(CWallet *wallet, TransactionTableModel *parent):
wallet(wallet),
parent(parent)
@@ -69,8 +70,8 @@ struct TransactionTablePriv
qDebug() << "refreshWallet";
#endif
cachedWallet.clear();
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
for(std::map<uint256, CWalletTx>::iterator it = wallet->mapWallet.begin(); it != wallet->mapWallet.end(); ++it)
{
cachedWallet.append(TransactionRecord::decomposeTransaction(wallet, it->second));
@@ -95,8 +96,8 @@ struct TransactionTablePriv
QList<uint256> updated_sorted = updated;
qSort(updated_sorted);
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
for(int update_idx = updated_sorted.size()-1; update_idx >= 0; --update_idx)
{
const uint256 &hash = updated_sorted.at(update_idx);
@@ -171,8 +172,8 @@ struct TransactionTablePriv
// simply re-use the cached status.
if(rec->statusUpdateNeeded())
{
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
std::map<uint256, CWalletTx>::iterator mi = wallet->mapWallet.find(rec->hash);
if(mi != wallet->mapWallet.end())
@@ -191,8 +192,8 @@ struct TransactionTablePriv
QString describe(TransactionRecord *rec)
{
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
std::map<uint256, CWalletTx>::iterator mi = wallet->mapWallet.find(rec->hash);
if(mi != wallet->mapWallet.end())
{
@@ -229,9 +230,9 @@ void TransactionTableModel::update()
QList<uint256> updated;
// Check if there are changes to wallet map
- TRY_CRITICAL_BLOCK(wallet->cs_wallet)
{
- if(!wallet->vWalletUpdated.empty())
+ TRY_LOCK(wallet->cs_wallet, lockWallet);
+ if (lockWallet && !wallet->vWalletUpdated.empty())
{
BOOST_FOREACH(uint256 hash, wallet->vWalletUpdated)
{
@@ -288,20 +289,19 @@ QString TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) cons
}
if(wtx->type == TransactionRecord::Generated)
{
- status += "\n";
switch(wtx->status.maturity)
{
case TransactionStatus::Immature:
- status += tr("Mined balance will be available in %n more blocks", "",
+ status += "\n" + tr("Mined balance will be available in %n more blocks", "",
wtx->status.matures_in);
break;
case TransactionStatus::Mature:
break;
case TransactionStatus::MaturesWarning:
- status += tr("This block was not received by any other nodes and will probably not be accepted!");
+ status += "\n" + tr("This block was not received by any other nodes and will probably not be accepted!");
break;
case TransactionStatus::NotAccepted:
- status += tr("Generated but not accepted");
+ status += "\n" + tr("Generated but not accepted");
break;
}
}
diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp
index 4c357d1379..eaed48bfdf 100644
--- a/src/qt/transactionview.cpp
+++ b/src/qt/transactionview.cpp
@@ -21,7 +21,6 @@
#include <QTableView>
#include <QHeaderView>
#include <QPushButton>
-#include <QFileDialog>
#include <QMessageBox>
#include <QPoint>
#include <QMenu>
@@ -264,10 +263,9 @@ void TransactionView::changedAmount(const QString &amount)
void TransactionView::exportClicked()
{
// CSV is currently the only supported format
- QString filename = QFileDialog::getSaveFileName(
+ QString filename = GUIUtil::getSaveFileName(
this,
- tr("Export Transaction Data"),
- QDir::currentPath(),
+ tr("Export Transaction Data"), QString(),
tr("Comma separated file (*.csv)"));
if (filename.isNull()) return;
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index f028f10f6c..b9ccb06c09 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -4,9 +4,10 @@
#include "addresstablemodel.h"
#include "transactiontablemodel.h"
-#include "headers.h"
+#include "ui_interface.h"
+#include "wallet.h"
+#include "walletdb.h" // for BackupWallet
-#include <QTimer>
#include <QSet>
WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent) :
@@ -15,12 +16,6 @@ WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *p
cachedBalance(0), cachedUnconfirmedBalance(0), cachedNumTransactions(0),
cachedEncryptionStatus(Unencrypted)
{
- // Until signal notifications is built into the bitcoin core,
- // simply update everything after polling using a timer.
- QTimer *timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), this, SLOT(update()));
- timer->start(MODEL_UPDATE_DELAY);
-
addressTableModel = new AddressTableModel(wallet, this);
transactionTableModel = new TransactionTableModel(wallet, this);
}
@@ -38,8 +33,8 @@ qint64 WalletModel::getUnconfirmedBalance() const
int WalletModel::getNumTransactions() const
{
int numTransactions = 0;
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
numTransactions = wallet->mapWallet.size();
}
return numTransactions;
@@ -64,7 +59,10 @@ void WalletModel::update()
cachedBalance = newBalance;
cachedUnconfirmedBalance = newUnconfirmedBalance;
cachedNumTransactions = newNumTransactions;
+}
+void WalletModel::updateAddressList()
+{
addressTableModel->update();
}
@@ -116,9 +114,9 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(const QList<SendCoinsRecipie
return SendCoinsReturn(AmountWithFeeExceedsBalance, nTransactionFee);
}
- CRITICAL_BLOCK(cs_main)
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK2(cs_main, wallet->cs_wallet);
+
// Sendmany
std::vector<std::pair<CScript, int64> > vecSend;
foreach(const SendCoinsRecipient &rcp, recipients)
@@ -141,7 +139,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(const QList<SendCoinsRecipie
}
return TransactionCreationFailed;
}
- if(!ThreadSafeAskFee(nFeeRequired, tr("Sending...").toStdString(), NULL))
+ if(!ThreadSafeAskFee(nFeeRequired, tr("Sending...").toStdString()))
{
return Aborted;
}
@@ -152,20 +150,24 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(const QList<SendCoinsRecipie
hex = QString::fromStdString(wtx.GetHash().GetHex());
}
- // Add addresses that we've sent to to the address book
+ // Add addresses / update labels that we've sent to to the address book
foreach(const SendCoinsRecipient &rcp, recipients)
{
std::string strAddress = rcp.address.toStdString();
- CRITICAL_BLOCK(wallet->cs_wallet)
+ std::string strLabel = rcp.label.toStdString();
{
- if (!wallet->mapAddressBook.count(strAddress))
- wallet->SetAddressBookName(strAddress, rcp.label.toStdString());
+ LOCK(wallet->cs_wallet);
+
+ std::map<CBitcoinAddress, std::string>::iterator mi = wallet->mapAddressBook.find(strAddress);
+
+ // Check if we have a new address or an updated label
+ if (mi == wallet->mapAddressBook.end() || mi->second != strLabel)
+ {
+ wallet->SetAddressBookName(strAddress, strLabel);
+ }
}
}
- // Update our model of the address table
- addressTableModel->updateList();
-
return SendCoinsReturn(OK, 0, hex);
}
@@ -231,14 +233,19 @@ bool WalletModel::setWalletLocked(bool locked, const SecureString &passPhrase)
bool WalletModel::changePassphrase(const SecureString &oldPass, const SecureString &newPass)
{
bool retval;
- CRITICAL_BLOCK(wallet->cs_wallet)
{
+ LOCK(wallet->cs_wallet);
wallet->Lock(); // Make sure wallet is locked before attempting pass change
retval = wallet->ChangeWalletPassphrase(oldPass, newPass);
}
return retval;
}
+bool WalletModel::backupWallet(const QString &filename)
+{
+ return BackupWallet(*wallet, filename.toLocal8Bit().data());
+}
+
// WalletModel::UnlockContext implementation
WalletModel::UnlockContext WalletModel::requestUnlock()
{
diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h
index 89e8cdd2a0..6c47f61bef 100644
--- a/src/qt/walletmodel.h
+++ b/src/qt/walletmodel.h
@@ -3,15 +3,16 @@
#include <QObject>
-#include "util.h"
+#include "allocators.h" /* for SecureString */
class OptionsModel;
class AddressTableModel;
class TransactionTableModel;
class CWallet;
-struct SendCoinsRecipient
+class SendCoinsRecipient
{
+public:
QString address;
QString label;
qint64 amount;
@@ -34,8 +35,7 @@ public:
DuplicateAddress,
TransactionCreationFailed, // Error returned when wallet is still locked
TransactionCommitFailed,
- Aborted,
- MiscError
+ Aborted
};
enum EncryptionStatus
@@ -77,6 +77,8 @@ public:
// Passphrase only needed when unlocking
bool setWalletLocked(bool locked, const SecureString &passPhrase=SecureString());
bool changePassphrase(const SecureString &oldPass, const SecureString &newPass);
+ // Wallet backup
+ bool backupWallet(const QString &filename);
// RAI object for unlocking wallet, returned by requestUnlock()
class UnlockContext
@@ -132,12 +134,11 @@ signals:
void requireUnlock();
// Asynchronous error notification
- void error(const QString &title, const QString &message);
+ void error(const QString &title, const QString &message, bool modal);
public slots:
-
-private slots:
void update();
+ void updateAddressList();
};
diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp
index 471421e75c..1bc87e9217 100644
--- a/src/rpcdump.cpp
+++ b/src/rpcdump.cpp
@@ -1,20 +1,13 @@
-// Copyright (c) 2011 Bitcoin Developers
+// Copyright (c) 2009-2012 Bitcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
#include "init.h" // for pwalletMain
#include "bitcoinrpc.h"
+#include "ui_interface.h"
-// #include <boost/asio.hpp>
-// #include <boost/iostreams/concepts.hpp>
-// #include <boost/iostreams/stream.hpp>
#include <boost/lexical_cast.hpp>
-// #ifdef USE_SSL
-// #include <boost/asio/ssl.hpp>
-// typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> SSLStream;
-// #endif
-// #include <boost/xpressive/xpressive_dynamic.hpp>
+
#include "json/json_spirit_reader_template.h"
#include "json/json_spirit_writer_template.h"
#include "json/json_spirit_utils.h"
@@ -67,9 +60,9 @@ Value importprivkey(const Array& params, bool fHelp)
key.SetSecret(secret, fCompressed);
CBitcoinAddress vchAddress = CBitcoinAddress(key.GetPubKey());
- CRITICAL_BLOCK(cs_main)
- CRITICAL_BLOCK(pwalletMain->cs_wallet)
{
+ LOCK2(cs_main, pwalletMain->cs_wallet);
+
pwalletMain->MarkDirty();
pwalletMain->SetAddressBookName(vchAddress, strLabel);
diff --git a/src/script.cpp b/src/script.cpp
index 66962d78b3..65e9b7c9a2 100644
--- a/src/script.cpp
+++ b/src/script.cpp
@@ -1,12 +1,18 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
+#include <boost/foreach.hpp>
using namespace std;
using namespace boost;
+#include "script.h"
+#include "keystore.h"
+#include "bignum.h"
+#include "key.h"
+#include "main.h"
+
bool CheckSig(vector<unsigned char> vchSig, vector<unsigned char> vchPubKey, CScript scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType);
@@ -32,7 +38,7 @@ CBigNum CastToBigNum(const valtype& vch)
bool CastToBool(const valtype& vch)
{
- for (int i = 0; i < vch.size(); i++)
+ for (unsigned int i = 0; i < vch.size(); i++)
{
if (vch[i] != 0)
{
@@ -530,7 +536,7 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, co
return false;
int n = CastToBigNum(stacktop(-1)).getint();
popstack(stack);
- if (n < 0 || n >= stack.size())
+ if (n < 0 || n >= (int)stack.size())
return false;
valtype vch = stacktop(-n-1);
if (opcode == OP_ROLL)
@@ -598,9 +604,9 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, co
int nEnd = nBegin + CastToBigNum(stacktop(-1)).getint();
if (nBegin < 0 || nEnd < nBegin)
return false;
- if (nBegin > vch.size())
+ if (nBegin > (int)vch.size())
nBegin = vch.size();
- if (nEnd > vch.size())
+ if (nEnd > (int)vch.size())
nEnd = vch.size();
vch.erase(vch.begin() + nEnd, vch.end());
vch.erase(vch.begin(), vch.begin() + nBegin);
@@ -619,7 +625,7 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, co
int nSize = CastToBigNum(stacktop(-1)).getint();
if (nSize < 0)
return false;
- if (nSize > vch.size())
+ if (nSize > (int)vch.size())
nSize = vch.size();
if (opcode == OP_LEFT)
vch.erase(vch.begin() + nSize, vch.end());
@@ -649,7 +655,7 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, co
if (stack.size() < 1)
return false;
valtype& vch = stacktop(-1);
- for (int i = 0; i < vch.size(); i++)
+ for (unsigned int i = 0; i < vch.size(); i++)
vch[i] = ~vch[i];
}
break;
@@ -666,17 +672,17 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, co
MakeSameSize(vch1, vch2);
if (opcode == OP_AND)
{
- for (int i = 0; i < vch1.size(); i++)
+ for (unsigned int i = 0; i < vch1.size(); i++)
vch1[i] &= vch2[i];
}
else if (opcode == OP_OR)
{
- for (int i = 0; i < vch1.size(); i++)
+ for (unsigned int i = 0; i < vch1.size(); i++)
vch1[i] |= vch2[i];
}
else if (opcode == OP_XOR)
{
- for (int i = 0; i < vch1.size(); i++)
+ for (unsigned int i = 0; i < vch1.size(); i++)
vch1[i] ^= vch2[i];
}
popstack(stack);
@@ -1044,7 +1050,7 @@ uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int
scriptCode.FindAndDelete(CScript(OP_CODESEPARATOR));
// Blank out other inputs' signatures
- for (int i = 0; i < txTmp.vin.size(); i++)
+ for (unsigned int i = 0; i < txTmp.vin.size(); i++)
txTmp.vin[i].scriptSig = CScript();
txTmp.vin[nIn].scriptSig = scriptCode;
@@ -1055,7 +1061,7 @@ uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int
txTmp.vout.clear();
// Let the others update at will
- for (int i = 0; i < txTmp.vin.size(); i++)
+ for (unsigned int i = 0; i < txTmp.vin.size(); i++)
if (i != nIn)
txTmp.vin[i].nSequence = 0;
}
@@ -1069,11 +1075,11 @@ uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int
return 1;
}
txTmp.vout.resize(nOut+1);
- for (int i = 0; i < nOut; i++)
+ for (unsigned int i = 0; i < nOut; i++)
txTmp.vout[i].SetNull();
// Let the others update at will
- for (int i = 0; i < txTmp.vin.size(); i++)
+ for (unsigned int i = 0; i < txTmp.vin.size(); i++)
if (i != nIn)
txTmp.vin[i].nSequence = 0;
}
@@ -1086,7 +1092,7 @@ uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int
}
// Serialize and hash
- CDataStream ss(SER_GETHASH);
+ CDataStream ss(SER_GETHASH, 0);
ss.reserve(10000);
ss << txTmp << nHashType;
return Hash(ss.begin(), ss.end());
@@ -1312,6 +1318,25 @@ bool Solver(const CKeyStore& keystore, const CScript& scriptPubKey, uint256 hash
return false;
}
+int ScriptSigArgsExpected(txnouttype t, const std::vector<std::vector<unsigned char> >& vSolutions)
+{
+ switch (t)
+ {
+ case TX_NONSTANDARD:
+ return -1;
+ case TX_PUBKEY:
+ return 1;
+ case TX_PUBKEYHASH:
+ return 2;
+ case TX_MULTISIG:
+ if (vSolutions.size() < 1 || vSolutions[0].size() < 1)
+ return -1;
+ return vSolutions[0][0] + 1;
+ case TX_SCRIPTHASH:
+ return 1; // doesn't include args needed by the script
+ }
+ return -1;
+}
bool IsStandard(const CScript& scriptPubKey)
{
@@ -1335,9 +1360,9 @@ bool IsStandard(const CScript& scriptPubKey)
}
-int HaveKeys(const vector<valtype>& pubkeys, const CKeyStore& keystore)
+unsigned int HaveKeys(const vector<valtype>& pubkeys, const CKeyStore& keystore)
{
- int nResult = 0;
+ unsigned int nResult = 0;
BOOST_FOREACH(const valtype& pubkey, pubkeys)
{
CBitcoinAddress address;
@@ -1424,8 +1449,7 @@ bool ExtractAddresses(const CScript& scriptPubKey, txnouttype& typeRet, vector<C
if (typeRet == TX_MULTISIG)
{
nRequiredRet = vSolutions.front()[0];
- int n = vSolutions.back()[0];
- for (int i = 1; i < vSolutions.size()-1; i++)
+ for (unsigned int i = 1; i < vSolutions.size()-1; i++)
{
CBitcoinAddress address;
address.SetPubKey(vSolutions[i]);
@@ -1542,9 +1566,9 @@ bool VerifySignature(const CTransaction& txFrom, const CTransaction& txTo, unsig
return true;
}
-int CScript::GetSigOpCount(bool fAccurate) const
+unsigned int CScript::GetSigOpCount(bool fAccurate) const
{
- int n = 0;
+ unsigned int n = 0;
const_iterator pc = begin();
opcodetype lastOpcode = OP_INVALIDOPCODE;
while (pc < end())
@@ -1566,7 +1590,7 @@ int CScript::GetSigOpCount(bool fAccurate) const
return n;
}
-int CScript::GetSigOpCount(const CScript& scriptSig) const
+unsigned int CScript::GetSigOpCount(const CScript& scriptSig) const
{
if (!IsPayToScriptHash())
return GetSigOpCount(true);
diff --git a/src/script.h b/src/script.h
index 63f9f9353a..e41e09b6b3 100644
--- a/src/script.h
+++ b/src/script.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef H_BITCOIN_SCRIPT
@@ -15,6 +15,7 @@
class CTransaction;
class CKeyStore;
+/** Signature hash types/flags */
enum
{
SIGHASH_ALL = 1,
@@ -36,139 +37,140 @@ enum txnouttype
const char* GetTxnOutputType(txnouttype t);
+/** Script opcodes */
enum opcodetype
{
// push value
- OP_0=0,
- OP_FALSE=OP_0,
- OP_PUSHDATA1=76,
- OP_PUSHDATA2,
- OP_PUSHDATA4,
- OP_1NEGATE,
- OP_RESERVED,
- OP_1,
+ OP_0 = 0x00,
+ OP_FALSE = OP_0,
+ OP_PUSHDATA1 = 0x4c,
+ OP_PUSHDATA2 = 0x4d,
+ OP_PUSHDATA4 = 0x4e,
+ OP_1NEGATE = 0x4f,
+ OP_RESERVED = 0x50,
+ OP_1 = 0x51,
OP_TRUE=OP_1,
- OP_2,
- OP_3,
- OP_4,
- OP_5,
- OP_6,
- OP_7,
- OP_8,
- OP_9,
- OP_10,
- OP_11,
- OP_12,
- OP_13,
- OP_14,
- OP_15,
- OP_16,
+ OP_2 = 0x52,
+ OP_3 = 0x53,
+ OP_4 = 0x54,
+ OP_5 = 0x55,
+ OP_6 = 0x56,
+ OP_7 = 0x57,
+ OP_8 = 0x58,
+ OP_9 = 0x59,
+ OP_10 = 0x5a,
+ OP_11 = 0x5b,
+ OP_12 = 0x5c,
+ OP_13 = 0x5d,
+ OP_14 = 0x5e,
+ OP_15 = 0x5f,
+ OP_16 = 0x60,
// control
- OP_NOP,
- OP_VER,
- OP_IF,
- OP_NOTIF,
- OP_VERIF,
- OP_VERNOTIF,
- OP_ELSE,
- OP_ENDIF,
- OP_VERIFY,
- OP_RETURN,
+ OP_NOP = 0x61,
+ OP_VER = 0x62,
+ OP_IF = 0x63,
+ OP_NOTIF = 0x64,
+ OP_VERIF = 0x65,
+ OP_VERNOTIF = 0x66,
+ OP_ELSE = 0x67,
+ OP_ENDIF = 0x68,
+ OP_VERIFY = 0x69,
+ OP_RETURN = 0x6a,
// stack ops
- OP_TOALTSTACK,
- OP_FROMALTSTACK,
- OP_2DROP,
- OP_2DUP,
- OP_3DUP,
- OP_2OVER,
- OP_2ROT,
- OP_2SWAP,
- OP_IFDUP,
- OP_DEPTH,
- OP_DROP,
- OP_DUP,
- OP_NIP,
- OP_OVER,
- OP_PICK,
- OP_ROLL,
- OP_ROT,
- OP_SWAP,
- OP_TUCK,
+ OP_TOALTSTACK = 0x6b,
+ OP_FROMALTSTACK = 0x6c,
+ OP_2DROP = 0x6d,
+ OP_2DUP = 0x6e,
+ OP_3DUP = 0x6f,
+ OP_2OVER = 0x70,
+ OP_2ROT = 0x71,
+ OP_2SWAP = 0x72,
+ OP_IFDUP = 0x73,
+ OP_DEPTH = 0x74,
+ OP_DROP = 0x75,
+ OP_DUP = 0x76,
+ OP_NIP = 0x77,
+ OP_OVER = 0x78,
+ OP_PICK = 0x79,
+ OP_ROLL = 0x7a,
+ OP_ROT = 0x7b,
+ OP_SWAP = 0x7c,
+ OP_TUCK = 0x7d,
// splice ops
- OP_CAT,
- OP_SUBSTR,
- OP_LEFT,
- OP_RIGHT,
- OP_SIZE,
+ OP_CAT = 0x7e,
+ OP_SUBSTR = 0x7f,
+ OP_LEFT = 0x80,
+ OP_RIGHT = 0x81,
+ OP_SIZE = 0x82,
// bit logic
- OP_INVERT,
- OP_AND,
- OP_OR,
- OP_XOR,
- OP_EQUAL,
- OP_EQUALVERIFY,
- OP_RESERVED1,
- OP_RESERVED2,
+ OP_INVERT = 0x83,
+ OP_AND = 0x84,
+ OP_OR = 0x85,
+ OP_XOR = 0x86,
+ OP_EQUAL = 0x87,
+ OP_EQUALVERIFY = 0x88,
+ OP_RESERVED1 = 0x89,
+ OP_RESERVED2 = 0x8a,
// numeric
- OP_1ADD,
- OP_1SUB,
- OP_2MUL,
- OP_2DIV,
- OP_NEGATE,
- OP_ABS,
- OP_NOT,
- OP_0NOTEQUAL,
-
- OP_ADD,
- OP_SUB,
- OP_MUL,
- OP_DIV,
- OP_MOD,
- OP_LSHIFT,
- OP_RSHIFT,
-
- OP_BOOLAND,
- OP_BOOLOR,
- OP_NUMEQUAL,
- OP_NUMEQUALVERIFY,
- OP_NUMNOTEQUAL,
- OP_LESSTHAN,
- OP_GREATERTHAN,
- OP_LESSTHANOREQUAL,
- OP_GREATERTHANOREQUAL,
- OP_MIN,
- OP_MAX,
-
- OP_WITHIN,
+ OP_1ADD = 0x8b,
+ OP_1SUB = 0x8c,
+ OP_2MUL = 0x8d,
+ OP_2DIV = 0x8e,
+ OP_NEGATE = 0x8f,
+ OP_ABS = 0x90,
+ OP_NOT = 0x91,
+ OP_0NOTEQUAL = 0x92,
+
+ OP_ADD = 0x93,
+ OP_SUB = 0x94,
+ OP_MUL = 0x95,
+ OP_DIV = 0x96,
+ OP_MOD = 0x97,
+ OP_LSHIFT = 0x98,
+ OP_RSHIFT = 0x99,
+
+ OP_BOOLAND = 0x9a,
+ OP_BOOLOR = 0x9b,
+ OP_NUMEQUAL = 0x9c,
+ OP_NUMEQUALVERIFY = 0x9d,
+ OP_NUMNOTEQUAL = 0x9e,
+ OP_LESSTHAN = 0x9f,
+ OP_GREATERTHAN = 0xa0,
+ OP_LESSTHANOREQUAL = 0xa1,
+ OP_GREATERTHANOREQUAL = 0xa2,
+ OP_MIN = 0xa3,
+ OP_MAX = 0xa4,
+
+ OP_WITHIN = 0xa5,
// crypto
- OP_RIPEMD160,
- OP_SHA1,
- OP_SHA256,
- OP_HASH160,
- OP_HASH256,
- OP_CODESEPARATOR,
- OP_CHECKSIG,
- OP_CHECKSIGVERIFY,
- OP_CHECKMULTISIG,
- OP_CHECKMULTISIGVERIFY,
+ OP_RIPEMD160 = 0xa6,
+ OP_SHA1 = 0xa7,
+ OP_SHA256 = 0xa8,
+ OP_HASH160 = 0xa9,
+ OP_HASH256 = 0xaa,
+ OP_CODESEPARATOR = 0xab,
+ OP_CHECKSIG = 0xac,
+ OP_CHECKSIGVERIFY = 0xad,
+ OP_CHECKMULTISIG = 0xae,
+ OP_CHECKMULTISIGVERIFY = 0xaf,
// expansion
- OP_NOP1,
- OP_NOP2,
- OP_NOP3,
- OP_NOP4,
- OP_NOP5,
- OP_NOP6,
- OP_NOP7,
- OP_NOP8,
- OP_NOP9,
- OP_NOP10,
+ OP_NOP1 = 0xb0,
+ OP_NOP2 = 0xb1,
+ OP_NOP3 = 0xb2,
+ OP_NOP4 = 0xb3,
+ OP_NOP5 = 0xb4,
+ OP_NOP6 = 0xb5,
+ OP_NOP7 = 0xb6,
+ OP_NOP8 = 0xb7,
+ OP_NOP9 = 0xb8,
+ OP_NOP10 = 0xb9,
@@ -212,7 +214,7 @@ inline std::string StackString(const std::vector<std::vector<unsigned char> >& v
-
+/** Serialized script, used inside transaction inputs and outputs */
class CScript : public std::vector<unsigned char>
{
protected:
@@ -266,7 +268,8 @@ public:
}
- explicit CScript(char b) { operator<<(b); }
+ //explicit CScript(char b) is not portable. Use 'signed char' or 'unsigned char'.
+ explicit CScript(signed char b) { operator<<(b); }
explicit CScript(short b) { operator<<(b); }
explicit CScript(int b) { operator<<(b); }
explicit CScript(long b) { operator<<(b); }
@@ -283,7 +286,8 @@ public:
explicit CScript(const std::vector<unsigned char>& b) { operator<<(b); }
- CScript& operator<<(char b) { return push_int64(b); }
+ //CScript& operator<<(char b) is not portable. Use 'signed char' or 'unsigned char'.
+ CScript& operator<<(signed char b) { return push_int64(b); }
CScript& operator<<(short b) { return push_int64(b); }
CScript& operator<<(int b) { return push_int64(b); }
CScript& operator<<(long b) { return push_int64(b); }
@@ -463,7 +467,7 @@ public:
opcodetype opcode;
do
{
- while (end() - pc >= b.size() && memcmp(&pc[0], &b[0], b.size()) == 0)
+ while (end() - pc >= (long)b.size() && memcmp(&pc[0], &b[0], b.size()) == 0)
{
erase(pc, pc + b.size());
++nFound;
@@ -487,11 +491,11 @@ public:
// CHECKMULTISIGs serialized in scriptSigs are
// counted more accurately, assuming they are of the form
// ... OP_N CHECKMULTISIG ...
- int GetSigOpCount(bool fAccurate) const;
+ unsigned int GetSigOpCount(bool fAccurate) const;
// Accurately count sigOps, including sigOps in
// pay-to-script-hash transactions:
- int GetSigOpCount(const CScript& scriptSig) const;
+ unsigned int GetSigOpCount(const CScript& scriptSig) const;
bool IsPayToScriptHash() const;
@@ -560,6 +564,7 @@ public:
bool EvalScript(std::vector<std::vector<unsigned char> >& stack, const CScript& script, const CTransaction& txTo, unsigned int nIn, int nHashType);
bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, std::vector<std::vector<unsigned char> >& vSolutionsRet);
+int ScriptSigArgsExpected(txnouttype t, const std::vector<std::vector<unsigned char> >& vSolutions);
bool IsStandard(const CScript& scriptPubKey);
bool IsMine(const CKeyStore& keystore, const CScript& scriptPubKey);
bool ExtractAddress(const CScript& scriptPubKey, CBitcoinAddress& addressRet);
diff --git a/src/serialize.h b/src/serialize.h
index c9dbdf7f9d..fe2aebe7f5 100644
--- a/src/serialize.h
+++ b/src/serialize.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_SERIALIZE_H
@@ -19,41 +19,17 @@
#include <boost/tuple/tuple_comparison.hpp>
#include <boost/tuple/tuple_io.hpp>
+#include "allocators.h"
+#include "version.h"
+
typedef long long int64;
typedef unsigned long long uint64;
-#ifdef WIN32
-#include <windows.h>
-// This is used to attempt to keep keying material out of swap
-// Note that VirtualLock does not provide this as a guarantee on Windows,
-// but, in practice, memory that has been VirtualLock'd almost never gets written to
-// the pagefile except in rare circumstances where memory is extremely low.
-#include <windows.h>
-#define mlock(p, n) VirtualLock((p), (n));
-#define munlock(p, n) VirtualUnlock((p), (n));
-#else
-#include <sys/mman.h>
-#include <limits.h>
-/* This comes from limits.h if it's not defined there set a sane default */
-#ifndef PAGESIZE
-#include <unistd.h>
-#define PAGESIZE sysconf(_SC_PAGESIZE)
-#endif
-#define mlock(a,b) \
- mlock(((void *)(((size_t)(a)) & (~((PAGESIZE)-1)))),\
- (((((size_t)(a)) + (b) - 1) | ((PAGESIZE) - 1)) + 1) - (((size_t)(a)) & (~((PAGESIZE) - 1))))
-#define munlock(a,b) \
- munlock(((void *)(((size_t)(a)) & (~((PAGESIZE)-1)))),\
- (((((size_t)(a)) + (b) - 1) | ((PAGESIZE) - 1)) + 1) - (((size_t)(a)) & (~((PAGESIZE) - 1))))
-#endif
-
class CScript;
class CDataStream;
class CAutoFile;
static const unsigned int MAX_SIZE = 0x02000000;
-static const int PROTOCOL_VERSION = 60000;
-
// Used to bypass the rule against non-const reference to temporary
// where it makes sense with wrappers such as CFlatData or CTxDB
template<typename T>
@@ -81,7 +57,7 @@ enum
};
#define IMPLEMENT_SERIALIZE(statements) \
- unsigned int GetSerializeSize(int nType=0, int nVersion=PROTOCOL_VERSION) const \
+ unsigned int GetSerializeSize(int nType, int nVersion) const \
{ \
CSerActionGetSerializeSize ser_action; \
const bool fGetSize = true; \
@@ -96,7 +72,7 @@ enum
return nSerSize; \
} \
template<typename Stream> \
- void Serialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION) const \
+ void Serialize(Stream& s, int nType, int nVersion) const \
{ \
CSerActionSerialize ser_action; \
const bool fGetSize = false; \
@@ -107,7 +83,7 @@ enum
{statements} \
} \
template<typename Stream> \
- void Unserialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION) \
+ void Unserialize(Stream& s, int nType, int nVersion) \
{ \
CSerActionUnserialize ser_action; \
const bool fGetSize = false; \
@@ -264,11 +240,11 @@ uint64 ReadCompactSize(Stream& is)
-//
-// Wrapper for serializing arrays and POD
-// There's a clever template way to make arrays serialize normally, but MSVC6 doesn't support it
-//
#define FLATDATA(obj) REF(CFlatData((char*)&(obj), (char*)&(obj) + sizeof(obj)))
+
+/** Wrapper for serializing arrays and POD.
+ * There's a clever template way to make arrays serialize normally, but MSVC6 doesn't support it.
+ */
class CFlatData
{
protected:
@@ -299,50 +275,6 @@ public:
}
};
-
-
-//
-// string stored as a fixed length field
-//
-template<std::size_t LEN>
-class CFixedFieldString
-{
-protected:
- const std::string* pcstr;
- std::string* pstr;
-public:
- explicit CFixedFieldString(const std::string& str) : pcstr(&str), pstr(NULL) { }
- explicit CFixedFieldString(std::string& str) : pcstr(&str), pstr(&str) { }
-
- unsigned int GetSerializeSize(int, int=0) const
- {
- return LEN;
- }
-
- template<typename Stream>
- void Serialize(Stream& s, int, int=0) const
- {
- char pszBuf[LEN];
- strncpy(pszBuf, pcstr->c_str(), LEN);
- s.write(pszBuf, LEN);
- }
-
- template<typename Stream>
- void Unserialize(Stream& s, int, int=0)
- {
- if (pstr == NULL)
- throw std::ios_base::failure("CFixedFieldString::Unserialize : trying to unserialize to const string");
- char pszBuf[LEN+1];
- s.read(pszBuf, LEN);
- pszBuf[LEN] = '\0';
- *pstr = pszBuf;
- }
-};
-
-
-
-
-
//
// Forward declarations
//
@@ -355,43 +287,43 @@ template<typename Stream, typename C> void Unserialize(Stream& is, std::basic_st
// vector
template<typename T, typename A> unsigned int GetSerializeSize_impl(const std::vector<T, A>& v, int nType, int nVersion, const boost::true_type&);
template<typename T, typename A> unsigned int GetSerializeSize_impl(const std::vector<T, A>& v, int nType, int nVersion, const boost::false_type&);
-template<typename T, typename A> inline unsigned int GetSerializeSize(const std::vector<T, A>& v, int nType, int nVersion=PROTOCOL_VERSION);
+template<typename T, typename A> inline unsigned int GetSerializeSize(const std::vector<T, A>& v, int nType, int nVersion);
template<typename Stream, typename T, typename A> void Serialize_impl(Stream& os, const std::vector<T, A>& v, int nType, int nVersion, const boost::true_type&);
template<typename Stream, typename T, typename A> void Serialize_impl(Stream& os, const std::vector<T, A>& v, int nType, int nVersion, const boost::false_type&);
-template<typename Stream, typename T, typename A> inline void Serialize(Stream& os, const std::vector<T, A>& v, int nType, int nVersion=PROTOCOL_VERSION);
+template<typename Stream, typename T, typename A> inline void Serialize(Stream& os, const std::vector<T, A>& v, int nType, int nVersion);
template<typename Stream, typename T, typename A> void Unserialize_impl(Stream& is, std::vector<T, A>& v, int nType, int nVersion, const boost::true_type&);
template<typename Stream, typename T, typename A> void Unserialize_impl(Stream& is, std::vector<T, A>& v, int nType, int nVersion, const boost::false_type&);
-template<typename Stream, typename T, typename A> inline void Unserialize(Stream& is, std::vector<T, A>& v, int nType, int nVersion=PROTOCOL_VERSION);
+template<typename Stream, typename T, typename A> inline void Unserialize(Stream& is, std::vector<T, A>& v, int nType, int nVersion);
// others derived from vector
-extern inline unsigned int GetSerializeSize(const CScript& v, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream> void Serialize(Stream& os, const CScript& v, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream> void Unserialize(Stream& is, CScript& v, int nType, int nVersion=PROTOCOL_VERSION);
+extern inline unsigned int GetSerializeSize(const CScript& v, int nType, int nVersion);
+template<typename Stream> void Serialize(Stream& os, const CScript& v, int nType, int nVersion);
+template<typename Stream> void Unserialize(Stream& is, CScript& v, int nType, int nVersion);
// pair
-template<typename K, typename T> unsigned int GetSerializeSize(const std::pair<K, T>& item, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename K, typename T> void Serialize(Stream& os, const std::pair<K, T>& item, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename K, typename T> void Unserialize(Stream& is, std::pair<K, T>& item, int nType, int nVersion=PROTOCOL_VERSION);
+template<typename K, typename T> unsigned int GetSerializeSize(const std::pair<K, T>& item, int nType, int nVersion);
+template<typename Stream, typename K, typename T> void Serialize(Stream& os, const std::pair<K, T>& item, int nType, int nVersion);
+template<typename Stream, typename K, typename T> void Unserialize(Stream& is, std::pair<K, T>& item, int nType, int nVersion);
// 3 tuple
-template<typename T0, typename T1, typename T2> unsigned int GetSerializeSize(const boost::tuple<T0, T1, T2>& item, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename T0, typename T1, typename T2> void Serialize(Stream& os, const boost::tuple<T0, T1, T2>& item, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename T0, typename T1, typename T2> void Unserialize(Stream& is, boost::tuple<T0, T1, T2>& item, int nType, int nVersion=PROTOCOL_VERSION);
+template<typename T0, typename T1, typename T2> unsigned int GetSerializeSize(const boost::tuple<T0, T1, T2>& item, int nType, int nVersion);
+template<typename Stream, typename T0, typename T1, typename T2> void Serialize(Stream& os, const boost::tuple<T0, T1, T2>& item, int nType, int nVersion);
+template<typename Stream, typename T0, typename T1, typename T2> void Unserialize(Stream& is, boost::tuple<T0, T1, T2>& item, int nType, int nVersion);
// 4 tuple
-template<typename T0, typename T1, typename T2, typename T3> unsigned int GetSerializeSize(const boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename T0, typename T1, typename T2, typename T3> void Serialize(Stream& os, const boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename T0, typename T1, typename T2, typename T3> void Unserialize(Stream& is, boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion=PROTOCOL_VERSION);
+template<typename T0, typename T1, typename T2, typename T3> unsigned int GetSerializeSize(const boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion);
+template<typename Stream, typename T0, typename T1, typename T2, typename T3> void Serialize(Stream& os, const boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion);
+template<typename Stream, typename T0, typename T1, typename T2, typename T3> void Unserialize(Stream& is, boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion);
// map
-template<typename K, typename T, typename Pred, typename A> unsigned int GetSerializeSize(const std::map<K, T, Pred, A>& m, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename K, typename T, typename Pred, typename A> void Serialize(Stream& os, const std::map<K, T, Pred, A>& m, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename K, typename T, typename Pred, typename A> void Unserialize(Stream& is, std::map<K, T, Pred, A>& m, int nType, int nVersion=PROTOCOL_VERSION);
+template<typename K, typename T, typename Pred, typename A> unsigned int GetSerializeSize(const std::map<K, T, Pred, A>& m, int nType, int nVersion);
+template<typename Stream, typename K, typename T, typename Pred, typename A> void Serialize(Stream& os, const std::map<K, T, Pred, A>& m, int nType, int nVersion);
+template<typename Stream, typename K, typename T, typename Pred, typename A> void Unserialize(Stream& is, std::map<K, T, Pred, A>& m, int nType, int nVersion);
// set
-template<typename K, typename Pred, typename A> unsigned int GetSerializeSize(const std::set<K, Pred, A>& m, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename K, typename Pred, typename A> void Serialize(Stream& os, const std::set<K, Pred, A>& m, int nType, int nVersion=PROTOCOL_VERSION);
-template<typename Stream, typename K, typename Pred, typename A> void Unserialize(Stream& is, std::set<K, Pred, A>& m, int nType, int nVersion=PROTOCOL_VERSION);
+template<typename K, typename Pred, typename A> unsigned int GetSerializeSize(const std::set<K, Pred, A>& m, int nType, int nVersion);
+template<typename Stream, typename K, typename Pred, typename A> void Serialize(Stream& os, const std::set<K, Pred, A>& m, int nType, int nVersion);
+template<typename Stream, typename K, typename Pred, typename A> void Unserialize(Stream& is, std::set<K, Pred, A>& m, int nType, int nVersion);
@@ -404,19 +336,19 @@ template<typename Stream, typename K, typename Pred, typename A> void Unserializ
// Thanks to Boost serialization for this idea.
//
template<typename T>
-inline unsigned int GetSerializeSize(const T& a, long nType, int nVersion=PROTOCOL_VERSION)
+inline unsigned int GetSerializeSize(const T& a, long nType, int nVersion)
{
return a.GetSerializeSize((int)nType, nVersion);
}
template<typename Stream, typename T>
-inline void Serialize(Stream& os, const T& a, long nType, int nVersion=PROTOCOL_VERSION)
+inline void Serialize(Stream& os, const T& a, long nType, int nVersion)
{
a.Serialize(os, (int)nType, nVersion);
}
template<typename Stream, typename T>
-inline void Unserialize(Stream& is, T& a, long nType, int nVersion=PROTOCOL_VERSION)
+inline void Unserialize(Stream& is, T& a, long nType, int nVersion)
{
a.Unserialize(is, (int)nType, nVersion);
}
@@ -504,10 +436,6 @@ inline void Serialize(Stream& os, const std::vector<T, A>& v, int nType, int nVe
template<typename Stream, typename T, typename A>
void Unserialize_impl(Stream& is, std::vector<T, A>& v, int nType, int nVersion, const boost::true_type&)
{
- //unsigned int nSize = ReadCompactSize(is);
- //v.resize(nSize);
- //is.read((char*)&v[0], nSize * sizeof(T));
-
// Limit size per read so bogus size value won't cause out of memory
v.clear();
unsigned int nSize = ReadCompactSize(is);
@@ -524,11 +452,6 @@ void Unserialize_impl(Stream& is, std::vector<T, A>& v, int nType, int nVersion,
template<typename Stream, typename T, typename A>
void Unserialize_impl(Stream& is, std::vector<T, A>& v, int nType, int nVersion, const boost::false_type&)
{
- //unsigned int nSize = ReadCompactSize(is);
- //v.resize(nSize);
- //for (std::vector<T, A>::iterator vi = v.begin(); vi != v.end(); ++vi)
- // Unserialize(is, (*vi), nType, nVersion);
-
v.clear();
unsigned int nSize = ReadCompactSize(is);
unsigned int i = 0;
@@ -777,89 +700,14 @@ struct ser_streamplaceholder
-//
-// Allocator that locks its contents from being paged
-// out of memory and clears its contents before deletion.
-//
-template<typename T>
-struct secure_allocator : public std::allocator<T>
-{
- // MSVC8 default copy constructor is broken
- typedef std::allocator<T> base;
- typedef typename base::size_type size_type;
- typedef typename base::difference_type difference_type;
- typedef typename base::pointer pointer;
- typedef typename base::const_pointer const_pointer;
- typedef typename base::reference reference;
- typedef typename base::const_reference const_reference;
- typedef typename base::value_type value_type;
- secure_allocator() throw() {}
- secure_allocator(const secure_allocator& a) throw() : base(a) {}
- template <typename U>
- secure_allocator(const secure_allocator<U>& a) throw() : base(a) {}
- ~secure_allocator() throw() {}
- template<typename _Other> struct rebind
- { typedef secure_allocator<_Other> other; };
-
- T* allocate(std::size_t n, const void *hint = 0)
- {
- T *p;
- p = std::allocator<T>::allocate(n, hint);
- if (p != NULL)
- mlock(p, sizeof(T) * n);
- return p;
- }
- void deallocate(T* p, std::size_t n)
- {
- if (p != NULL)
- {
- memset(p, 0, sizeof(T) * n);
- munlock(p, sizeof(T) * n);
- }
- std::allocator<T>::deallocate(p, n);
- }
-};
-//
-// Allocator that clears its contents before deletion.
-//
-template<typename T>
-struct zero_after_free_allocator : public std::allocator<T>
-{
- // MSVC8 default copy constructor is broken
- typedef std::allocator<T> base;
- typedef typename base::size_type size_type;
- typedef typename base::difference_type difference_type;
- typedef typename base::pointer pointer;
- typedef typename base::const_pointer const_pointer;
- typedef typename base::reference reference;
- typedef typename base::const_reference const_reference;
- typedef typename base::value_type value_type;
- zero_after_free_allocator() throw() {}
- zero_after_free_allocator(const zero_after_free_allocator& a) throw() : base(a) {}
- template <typename U>
- zero_after_free_allocator(const zero_after_free_allocator<U>& a) throw() : base(a) {}
- ~zero_after_free_allocator() throw() {}
- template<typename _Other> struct rebind
- { typedef zero_after_free_allocator<_Other> other; };
-
- void deallocate(T* p, std::size_t n)
- {
- if (p != NULL)
- memset(p, 0, sizeof(T) * n);
- std::allocator<T>::deallocate(p, n);
- }
-};
-
-
-
-//
-// Double ended buffer combining vector and stream-like interfaces.
-// >> and << read and write unformatted data using the above serialization templates.
-// Fills with data in linear time; some stringstream implementations take N^2 time.
-//
+/** Double ended buffer combining vector and stream-like interfaces.
+ *
+ * >> and << read and write unformatted data using the above serialization templates.
+ * Fills with data in linear time; some stringstream implementations take N^2 time.
+ */
class CDataStream
{
protected:
@@ -882,39 +730,39 @@ public:
typedef vector_type::const_iterator const_iterator;
typedef vector_type::reverse_iterator reverse_iterator;
- explicit CDataStream(int nTypeIn=SER_NETWORK, int nVersionIn=PROTOCOL_VERSION)
+ explicit CDataStream(int nTypeIn, int nVersionIn)
{
Init(nTypeIn, nVersionIn);
}
- CDataStream(const_iterator pbegin, const_iterator pend, int nTypeIn=SER_NETWORK, int nVersionIn=PROTOCOL_VERSION) : vch(pbegin, pend)
+ CDataStream(const_iterator pbegin, const_iterator pend, int nTypeIn, int nVersionIn) : vch(pbegin, pend)
{
Init(nTypeIn, nVersionIn);
}
#if !defined(_MSC_VER) || _MSC_VER >= 1300
- CDataStream(const char* pbegin, const char* pend, int nTypeIn=SER_NETWORK, int nVersionIn=PROTOCOL_VERSION) : vch(pbegin, pend)
+ CDataStream(const char* pbegin, const char* pend, int nTypeIn, int nVersionIn) : vch(pbegin, pend)
{
Init(nTypeIn, nVersionIn);
}
#endif
- CDataStream(const vector_type& vchIn, int nTypeIn=SER_NETWORK, int nVersionIn=PROTOCOL_VERSION) : vch(vchIn.begin(), vchIn.end())
+ CDataStream(const vector_type& vchIn, int nTypeIn, int nVersionIn) : vch(vchIn.begin(), vchIn.end())
{
Init(nTypeIn, nVersionIn);
}
- CDataStream(const std::vector<char>& vchIn, int nTypeIn=SER_NETWORK, int nVersionIn=PROTOCOL_VERSION) : vch(vchIn.begin(), vchIn.end())
+ CDataStream(const std::vector<char>& vchIn, int nTypeIn, int nVersionIn) : vch(vchIn.begin(), vchIn.end())
{
Init(nTypeIn, nVersionIn);
}
- CDataStream(const std::vector<unsigned char>& vchIn, int nTypeIn=SER_NETWORK, int nVersionIn=PROTOCOL_VERSION) : vch((char*)&vchIn.begin()[0], (char*)&vchIn.end()[0])
+ CDataStream(const std::vector<unsigned char>& vchIn, int nTypeIn, int nVersionIn) : vch((char*)&vchIn.begin()[0], (char*)&vchIn.end()[0])
{
Init(nTypeIn, nVersionIn);
}
- void Init(int nTypeIn=SER_NETWORK, int nVersionIn=PROTOCOL_VERSION)
+ void Init(int nTypeIn, int nVersionIn)
{
nReadPos = 0;
nType = nTypeIn;
@@ -1128,7 +976,7 @@ public:
}
template<typename Stream>
- void Serialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION) const
+ void Serialize(Stream& s, int nType, int nVersion) const
{
// Special case: stream << stream concatenates like stream += stream
if (!vch.empty())
@@ -1219,12 +1067,12 @@ int main(int argc, char *argv[])
-//
-// Automatic closing wrapper for FILE*
-// - Will automatically close the file when it goes out of scope if not null.
-// - If you're returning the file pointer, return file.release().
-// - If you need to close the file early, use file.fclose() instead of fclose(file).
-//
+/** RAII wrapper for FILE*.
+ *
+ * Will automatically close the file when it goes out of scope if not null.
+ * If you're returning the file pointer, return file.release().
+ * If you need to close the file early, use file.fclose() instead of fclose(file).
+ */
class CAutoFile
{
protected:
@@ -1235,9 +1083,7 @@ public:
int nType;
int nVersion;
- typedef FILE element_type;
-
- CAutoFile(FILE* filenew=NULL, int nTypeIn=SER_DISK, int nVersionIn=PROTOCOL_VERSION)
+ CAutoFile(FILE* filenew, int nTypeIn, int nVersionIn)
{
file = filenew;
nType = nTypeIn;
@@ -1290,7 +1136,7 @@ public:
void ReadVersion() { *this >> nVersion; }
void WriteVersion() { *this << nVersion; }
- CAutoFile& read(char* pch, int nSize)
+ CAutoFile& read(char* pch, size_t nSize)
{
if (!file)
throw std::ios_base::failure("CAutoFile::read : file handle is NULL");
@@ -1299,7 +1145,7 @@ public:
return (*this);
}
- CAutoFile& write(const char* pch, int nSize)
+ CAutoFile& write(const char* pch, size_t nSize)
{
if (!file)
throw std::ios_base::failure("CAutoFile::write : file handle is NULL");
diff --git a/src/strlcpy.h b/src/strlcpy.h
index d4d1908e7a..2cc786e953 100644
--- a/src/strlcpy.h
+++ b/src/strlcpy.h
@@ -15,6 +15,10 @@
*/
#ifndef BITCOIN_STRLCPY_H
#define BITCOIN_STRLCPY_H
+
+#include <stdlib.h>
+#include <string.h>
+
/*
* Copy src to string dst of size siz. At most siz-1 characters
* will be copied. Always NUL terminates (unless siz == 0).
diff --git a/src/test/DoS_tests.cpp b/src/test/DoS_tests.cpp
index f29f036eb3..e5a8b4f68b 100644
--- a/src/test/DoS_tests.cpp
+++ b/src/test/DoS_tests.cpp
@@ -12,6 +12,12 @@
#include <stdint.h>
+// Tests this internal-to-main.cpp method:
+extern void AddOrphanTx(const CDataStream& vMsg);
+extern unsigned int LimitOrphanTxSize(unsigned int nMaxOrphans);
+extern std::map<uint256, CDataStream*> mapOrphanTransactions;
+extern std::multimap<uint256, CDataStream*> mapOrphanTransactionsByPrev;
+
CService ip(uint32_t i)
{
struct in_addr s;
@@ -123,4 +129,77 @@ BOOST_AUTO_TEST_CASE(DoS_checknbits)
}
+static uint256 RandomHash()
+{
+ std::vector<unsigned char> randbytes(32);
+ RAND_bytes(&randbytes[0], 32);
+ uint256 randomhash(randbytes);
+ return randomhash;
+}
+
+CTransaction RandomOrphan()
+{
+ std::map<uint256, CDataStream*>::iterator it;
+ it = mapOrphanTransactions.lower_bound(RandomHash());
+ if (it == mapOrphanTransactions.end())
+ it = mapOrphanTransactions.begin();
+ const CDataStream* pvMsg = it->second;
+ CTransaction tx;
+ CDataStream(*pvMsg) >> tx;
+ return tx;
+}
+
+BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
+{
+ CKey key;
+ key.MakeNewKey(true);
+ CBasicKeyStore keystore;
+ keystore.AddKey(key);
+
+ // 50 orphan transactions:
+ for (int i = 0; i < 50; i++)
+ {
+ CTransaction tx;
+ tx.vin.resize(1);
+ tx.vin[0].prevout.n = 0;
+ tx.vin[0].prevout.hash = RandomHash();
+ tx.vin[0].scriptSig << OP_1;
+ tx.vout.resize(1);
+ tx.vout[0].nValue = 1*CENT;
+ tx.vout[0].scriptPubKey.SetBitcoinAddress(key.GetPubKey());
+
+ CDataStream ds(SER_DISK, CLIENT_VERSION);
+ ds << tx;
+ AddOrphanTx(ds);
+ }
+
+ // ... and 50 that depend on other orphans:
+ for (int i = 0; i < 50; i++)
+ {
+ CTransaction txPrev = RandomOrphan();
+
+ CTransaction tx;
+ tx.vin.resize(1);
+ tx.vin[0].prevout.n = 0;
+ tx.vin[0].prevout.hash = txPrev.GetHash();
+ tx.vout.resize(1);
+ tx.vout[0].nValue = 1*CENT;
+ tx.vout[0].scriptPubKey.SetBitcoinAddress(key.GetPubKey());
+ SignSignature(keystore, txPrev, tx, 0);
+
+ CDataStream ds(SER_DISK, CLIENT_VERSION);
+ ds << tx;
+ AddOrphanTx(ds);
+ }
+
+ // Test LimitOrphanTxSize() function:
+ LimitOrphanTxSize(40);
+ BOOST_CHECK(mapOrphanTransactions.size() <= 40);
+ LimitOrphanTxSize(10);
+ BOOST_CHECK(mapOrphanTransactions.size() <= 10);
+ LimitOrphanTxSize(0);
+ BOOST_CHECK(mapOrphanTransactions.empty());
+ BOOST_CHECK(mapOrphanTransactionsByPrev.empty());
+}
+
BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/test/data/script_invalid.json b/src/test/data/script_invalid.json
new file mode 100644
index 0000000000..c05d3ba5b2
--- /dev/null
+++ b/src/test/data/script_invalid.json
@@ -0,0 +1,25 @@
+[
+["", ""],
+["", "NOP"],
+["NOP", ""],
+["NOP","NOP"],
+["0 1","EQUAL"],
+["1 1 ADD", "0 EQUAL"],
+["11 1 ADD 12 SUB", "11 EQUAL"],
+
+["2147483648 0 ADD", "NOP", "arithmetic operands must be in range [-2^31...2^31] "],
+["-2147483648 0 ADD", "NOP", "arithmetic operands must be in range [-2^31...2^31] "],
+["2147483647 DUP ADD", "4294967294 NUMEQUAL", "NUMEQUAL must be in numeric range"],
+["0xaabbccddeeff NOT", "0 EQUAL", "NOT is an arithmetic operand"],
+
+["2 DUP MUL", "4 EQUAL", "disabled"],
+["2 DUP DIV", "1 EQUAL", "disabled"],
+["2 2MUL", "4 EQUAL", "disabled"],
+["2 2DIV", "1 EQUAL", "disabled"],
+["7 3 MOD", "1 EQUAL", "disabled"],
+["2 2 LSHIFT", "8 EQUAL", "disabled"],
+["2 1 RSHIFT", "1 EQUAL", "disabled"],
+
+
+["NOP1","NOP10"]
+]
diff --git a/src/test/data/script_valid.json b/src/test/data/script_valid.json
new file mode 100644
index 0000000000..e7ad6d9cc0
--- /dev/null
+++ b/src/test/data/script_valid.json
@@ -0,0 +1,78 @@
+[
+["2 -2 ADD", "0 EQUAL"],
+["2147483647 -2147483647 ADD", "0 EQUAL"],
+["-1 -1 ADD", "-2 EQUAL"],
+
+["1","NOP"],
+["0 0","EQUAL"],
+["1 1 ADD", "2 EQUAL"],
+["1 1ADD", "2 EQUAL"],
+["111 1SUB", "110 EQUAL"],
+["111 1 ADD 12 SUB", "100 EQUAL"],
+["0 ABS", "0 EQUAL"],
+["16 ABS", "16 EQUAL"],
+["-16 ABS", "-16 NEGATE EQUAL"],
+["0 NOT", "NOP"],
+["1 NOT", "0 EQUAL"],
+["11 NOT", "0 EQUAL"],
+["0 0NOTEQUAL", "0 EQUAL"],
+["1 0NOTEQUAL", "1 EQUAL"],
+["111 0NOTEQUAL", "1 EQUAL"],
+["-111 0NOTEQUAL", "1 EQUAL"],
+["1 1 BOOLAND", "NOP"],
+["1 0 BOOLAND", "NOT"],
+["0 1 BOOLAND", "NOT"],
+["0 0 BOOLAND", "NOT"],
+["16 17 BOOLAND", "NOP"],
+["1 1 BOOLOR", "NOP"],
+["1 0 BOOLOR", "NOP"],
+["0 1 BOOLOR", "NOP"],
+["0 0 BOOLOR", "NOT"],
+["16 17 BOOLOR", "NOP"],
+["11 10 1 ADD", "NUMEQUAL"],
+["11 10 1 ADD", "NUMEQUALVERIFY 1"],
+["11 10 1 ADD", "NUMNOTEQUAL NOT"],
+["111 10 1 ADD", "NUMNOTEQUAL"],
+["11 10", "LESSTHAN NOT"],
+["4 4", "LESSTHAN NOT"],
+["10 11", "LESSTHAN"],
+["-11 11", "LESSTHAN"],
+["-11 -10", "LESSTHAN"],
+["11 10", "GREATERTHAN"],
+["4 4", "GREATERTHAN NOT"],
+["10 11", "GREATERTHAN NOT"],
+["-11 11", "GREATERTHAN NOT"],
+["-11 -10", "GREATERTHAN NOT"],
+["11 10", "LESSTHANOREQUAL NOT"],
+["4 4", "LESSTHANOREQUAL"],
+["10 11", "LESSTHANOREQUAL"],
+["-11 11", "LESSTHANOREQUAL"],
+["-11 -10", "LESSTHANOREQUAL"],
+["11 10", "GREATERTHANOREQUAL"],
+["4 4", "GREATERTHANOREQUAL"],
+["10 11", "GREATERTHANOREQUAL NOT"],
+["-11 11", "GREATERTHANOREQUAL NOT"],
+["-11 -10", "GREATERTHANOREQUAL NOT"],
+["1 0 MIN", "0 NUMEQUAL"],
+["0 1 MIN", "0 NUMEQUAL"],
+["-1 0 MIN", "-1 NUMEQUAL"],
+["0 -2147483647 MIN", "-2147483647 NUMEQUAL"],
+["2147483647 0 MAX", "2147483647 NUMEQUAL"],
+["0 100 MAX", "100 NUMEQUAL"],
+["-100 0 MAX", "0 NUMEQUAL"],
+["0 -2147483647 MAX", "0 NUMEQUAL"],
+["0 0 1", "WITHIN"],
+["1 0 1", "WITHIN NOT"],
+["0 -2147483647 2147483647", "WITHIN"],
+["-1 -100 100", "WITHIN"],
+["11 -100 100", "WITHIN"],
+["-2147483647 -100 100", "WITHIN NOT"],
+["2147483647 -100 100", "WITHIN NOT"],
+
+["2147483647 2147483647 SUB", "0 EQUAL"],
+["2147483647 DUP ADD", "4294967294 EQUAL", ">32 bit EQUAL is valid"],
+["2147483647 NEGATE DUP ADD", "-4294967294 EQUAL"],
+
+
+["NOP","1"]
+]
diff --git a/src/test/getarg_tests.cpp b/src/test/getarg_tests.cpp
new file mode 100644
index 0000000000..78953d296f
--- /dev/null
+++ b/src/test/getarg_tests.cpp
@@ -0,0 +1,167 @@
+#include <boost/algorithm/string.hpp>
+#include <boost/foreach.hpp>
+#include <boost/test/unit_test.hpp>
+
+#include "util.h"
+
+BOOST_AUTO_TEST_SUITE(getarg_tests)
+
+static void
+ResetArgs(const std::string& strArg)
+{
+ std::vector<std::string> vecArg;
+ boost::split(vecArg, strArg, boost::is_space(), boost::token_compress_on);
+
+ // Insert dummy executable name:
+ vecArg.insert(vecArg.begin(), "testbitcoin");
+
+ // Convert to char*:
+ std::vector<const char*> vecChar;
+ BOOST_FOREACH(std::string& s, vecArg)
+ vecChar.push_back(s.c_str());
+
+ ParseParameters(vecChar.size(), &vecChar[0]);
+}
+
+BOOST_AUTO_TEST_CASE(boolarg)
+{
+ ResetArgs("-foo");
+ BOOST_CHECK(GetBoolArg("-foo"));
+ BOOST_CHECK(GetBoolArg("-foo", false));
+ BOOST_CHECK(GetBoolArg("-foo", true));
+
+ BOOST_CHECK(!GetBoolArg("-fo"));
+ BOOST_CHECK(!GetBoolArg("-fo", false));
+ BOOST_CHECK(GetBoolArg("-fo", true));
+
+ BOOST_CHECK(!GetBoolArg("-fooo"));
+ BOOST_CHECK(!GetBoolArg("-fooo", false));
+ BOOST_CHECK(GetBoolArg("-fooo", true));
+
+ ResetArgs("-foo=0");
+ BOOST_CHECK(!GetBoolArg("-foo"));
+ BOOST_CHECK(!GetBoolArg("-foo", false));
+ BOOST_CHECK(!GetBoolArg("-foo", true));
+
+ ResetArgs("-foo=1");
+ BOOST_CHECK(GetBoolArg("-foo"));
+ BOOST_CHECK(GetBoolArg("-foo", false));
+ BOOST_CHECK(GetBoolArg("-foo", true));
+
+ // New 0.6 feature: auto-map -nosomething to !-something:
+ ResetArgs("-nofoo");
+ BOOST_CHECK(!GetBoolArg("-foo"));
+ BOOST_CHECK(!GetBoolArg("-foo", false));
+ BOOST_CHECK(!GetBoolArg("-foo", true));
+
+ ResetArgs("-nofoo=1");
+ BOOST_CHECK(!GetBoolArg("-foo"));
+ BOOST_CHECK(!GetBoolArg("-foo", false));
+ BOOST_CHECK(!GetBoolArg("-foo", true));
+
+ ResetArgs("-foo -nofoo"); // -foo should win
+ BOOST_CHECK(GetBoolArg("-foo"));
+ BOOST_CHECK(GetBoolArg("-foo", false));
+ BOOST_CHECK(GetBoolArg("-foo", true));
+
+ ResetArgs("-foo=1 -nofoo=1"); // -foo should win
+ BOOST_CHECK(GetBoolArg("-foo"));
+ BOOST_CHECK(GetBoolArg("-foo", false));
+ BOOST_CHECK(GetBoolArg("-foo", true));
+
+ ResetArgs("-foo=0 -nofoo=0"); // -foo should win
+ BOOST_CHECK(!GetBoolArg("-foo"));
+ BOOST_CHECK(!GetBoolArg("-foo", false));
+ BOOST_CHECK(!GetBoolArg("-foo", true));
+
+ // New 0.6 feature: treat -- same as -:
+ ResetArgs("--foo=1");
+ BOOST_CHECK(GetBoolArg("-foo"));
+ BOOST_CHECK(GetBoolArg("-foo", false));
+ BOOST_CHECK(GetBoolArg("-foo", true));
+
+ ResetArgs("--nofoo=1");
+ BOOST_CHECK(!GetBoolArg("-foo"));
+ BOOST_CHECK(!GetBoolArg("-foo", false));
+ BOOST_CHECK(!GetBoolArg("-foo", true));
+
+}
+
+BOOST_AUTO_TEST_CASE(stringarg)
+{
+ ResetArgs("");
+ BOOST_CHECK_EQUAL(GetArg("-foo", ""), "");
+ BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "eleven");
+
+ ResetArgs("-foo -bar");
+ BOOST_CHECK_EQUAL(GetArg("-foo", ""), "");
+ BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "");
+
+ ResetArgs("-foo=");
+ BOOST_CHECK_EQUAL(GetArg("-foo", ""), "");
+ BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "");
+
+ ResetArgs("-foo=11");
+ BOOST_CHECK_EQUAL(GetArg("-foo", ""), "11");
+ BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "11");
+
+ ResetArgs("-foo=eleven");
+ BOOST_CHECK_EQUAL(GetArg("-foo", ""), "eleven");
+ BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "eleven");
+
+}
+
+BOOST_AUTO_TEST_CASE(intarg)
+{
+ ResetArgs("");
+ BOOST_CHECK_EQUAL(GetArg("-foo", 11), 11);
+ BOOST_CHECK_EQUAL(GetArg("-foo", 0), 0);
+
+ ResetArgs("-foo -bar");
+ BOOST_CHECK_EQUAL(GetArg("-foo", 11), 0);
+ BOOST_CHECK_EQUAL(GetArg("-bar", 11), 0);
+
+ ResetArgs("-foo=11 -bar=12");
+ BOOST_CHECK_EQUAL(GetArg("-foo", 0), 11);
+ BOOST_CHECK_EQUAL(GetArg("-bar", 11), 12);
+
+ ResetArgs("-foo=NaN -bar=NotANumber");
+ BOOST_CHECK_EQUAL(GetArg("-foo", 1), 0);
+ BOOST_CHECK_EQUAL(GetArg("-bar", 11), 0);
+}
+
+BOOST_AUTO_TEST_CASE(doubledash)
+{
+ ResetArgs("--foo");
+ BOOST_CHECK_EQUAL(GetBoolArg("-foo"), true);
+
+ ResetArgs("--foo=verbose --bar=1");
+ BOOST_CHECK_EQUAL(GetArg("-foo", ""), "verbose");
+ BOOST_CHECK_EQUAL(GetArg("-bar", 0), 1);
+}
+
+BOOST_AUTO_TEST_CASE(boolargno)
+{
+ ResetArgs("-nofoo");
+ BOOST_CHECK(!GetBoolArg("-foo"));
+ BOOST_CHECK(!GetBoolArg("-foo", true));
+ BOOST_CHECK(!GetBoolArg("-foo", false));
+
+ ResetArgs("-nofoo=1");
+ BOOST_CHECK(!GetBoolArg("-foo"));
+ BOOST_CHECK(!GetBoolArg("-foo", true));
+ BOOST_CHECK(!GetBoolArg("-foo", false));
+
+ ResetArgs("-nofoo=0");
+ BOOST_CHECK(GetBoolArg("-foo"));
+ BOOST_CHECK(GetBoolArg("-foo", true));
+ BOOST_CHECK(GetBoolArg("-foo", false));
+
+ ResetArgs("-foo --nofoo");
+ BOOST_CHECK(GetBoolArg("-foo"));
+
+ ResetArgs("-nofoo -foo"); // foo always wins:
+ BOOST_CHECK(GetBoolArg("-foo"));
+}
+
+BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/test/key_tests.cpp b/src/test/key_tests.cpp
index bc8759b6fa..a6dab623b0 100644
--- a/src/test/key_tests.cpp
+++ b/src/test/key_tests.cpp
@@ -14,6 +14,7 @@ static const string strSecret1 ("5HxWvvfubhXpYYpS3tJkw6fq9jE9j18THftkZjHHfmFiWtm
static const string strSecret2 ("5KC4ejrDjv152FGwP386VD1i2NYc5KkfSMyv1nGy1VGDxGHqVY3");
static const string strSecret1C("Kwr371tjA9u2rFSMZjTNun2PXXP3WPZu2afRHTcta6KxEUdm1vEw");
static const string strSecret2C("L3Hq7a8FEQwJkW1M2GNKDW28546Vp5miewcCzSqUD9kCAXrJdS3g");
+static const string strAddress1("1HV9Lc3sNHZxwj4Zk6fB38tEmBryq2cBiF");
#ifdef KEY_TESTS_DUMPINFO
void dumpKeyInfo(uint256 privkey)
@@ -47,11 +48,12 @@ BOOST_AUTO_TEST_SUITE(key_tests)
BOOST_AUTO_TEST_CASE(key_test1)
{
- CBitcoinSecret bsecret1, bsecret2, bsecret1C, bsecret2C;
- bsecret1.SetString (strSecret1);
- bsecret2.SetString (strSecret2);
- bsecret1C.SetString(strSecret1C);
- bsecret2C.SetString(strSecret2C);
+ CBitcoinSecret bsecret1, bsecret2, bsecret1C, bsecret2C, baddress1;
+ BOOST_CHECK( bsecret1.SetString (strSecret1));
+ BOOST_CHECK( bsecret2.SetString (strSecret2));
+ BOOST_CHECK( bsecret1C.SetString(strSecret1C));
+ BOOST_CHECK( bsecret2C.SetString(strSecret2C));
+ BOOST_CHECK(!baddress1.SetString(strAddress1));
bool fCompressed;
CSecret secret1 = bsecret1.GetSecret (fCompressed);
diff --git a/src/test/miner_tests.cpp b/src/test/miner_tests.cpp
index d4abd6d2a7..5712b4a1b1 100644
--- a/src/test/miner_tests.cpp
+++ b/src/test/miner_tests.cpp
@@ -1,6 +1,7 @@
#include <boost/test/unit_test.hpp>
#include "uint256.h"
+#include "util.h"
extern void SHA256Transform(void* pstate, void* pinput, const void* pinit);
@@ -11,7 +12,7 @@ BOOST_AUTO_TEST_CASE(sha256transform_equality)
unsigned int pSHA256InitState[8] = {0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19};
- unsigned char pstate[32];
+ // unsigned char pstate[32];
unsigned char pinput[64];
int i;
diff --git a/src/test/mruset_tests.cpp b/src/test/mruset_tests.cpp
new file mode 100644
index 0000000000..ca5a1f1b12
--- /dev/null
+++ b/src/test/mruset_tests.cpp
@@ -0,0 +1,90 @@
+#include <boost/test/unit_test.hpp>
+
+using namespace std;
+
+#include "mruset.h"
+#include "util.h"
+
+#define NUM_TESTS 16
+#define MAX_SIZE 100
+
+class mrutester
+{
+private:
+ mruset<int> mru;
+ std::set<int> set;
+
+public:
+ mrutester() { mru.max_size(MAX_SIZE); }
+ int size() const { return set.size(); }
+
+ void insert(int n)
+ {
+ mru.insert(n);
+ set.insert(n);
+ BOOST_CHECK(mru == set);
+ }
+};
+
+BOOST_AUTO_TEST_SUITE(mruset_tests)
+
+// Test that an mruset behaves like a set, as long as no more than MAX_SIZE elements are in it
+BOOST_AUTO_TEST_CASE(mruset_like_set)
+{
+
+ for (int nTest=0; nTest<NUM_TESTS; nTest++)
+ {
+ mrutester tester;
+ while (tester.size() < MAX_SIZE)
+ tester.insert(GetRandInt(2 * MAX_SIZE));
+ }
+
+}
+
+// Test that an mruset's size never exceeds its max_size
+BOOST_AUTO_TEST_CASE(mruset_limited_size)
+{
+ for (int nTest=0; nTest<NUM_TESTS; nTest++)
+ {
+ mruset<int> mru(MAX_SIZE);
+ for (int nAction=0; nAction<3*MAX_SIZE; nAction++)
+ {
+ int n = GetRandInt(2 * MAX_SIZE);
+ mru.insert(n);
+ BOOST_CHECK(mru.size() <= MAX_SIZE);
+ }
+ }
+}
+
+// 16-bit permutation function
+int static permute(int n)
+{
+ // hexadecimals of pi; verified to be linearly independent
+ static const int table[16] = {0x243F, 0x6A88, 0x85A3, 0x08D3, 0x1319, 0x8A2E, 0x0370, 0x7344,
+ 0xA409, 0x3822, 0x299F, 0x31D0, 0x082E, 0xFA98, 0xEC4E, 0x6C89};
+
+ int ret = 0;
+ for (int bit=0; bit<16; bit++)
+ if (n & (1<<bit))
+ ret ^= table[bit];
+
+ return ret;
+}
+
+// Test that an mruset acts like a moving window, if no duplcate elements are added
+BOOST_AUTO_TEST_CASE(mruset_window)
+{
+ mruset<int> mru(MAX_SIZE);
+ for (int n=0; n<10*MAX_SIZE; n++)
+ {
+ mru.insert(permute(n));
+
+ set<int> tester;
+ for (int m=max(0,n-MAX_SIZE+1); m<=n; m++)
+ tester.insert(permute(m));
+
+ BOOST_CHECK(mru == tester);
+ }
+}
+
+BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/test/multisig_tests.cpp b/src/test/multisig_tests.cpp
index 56b18044b8..8ae9290fcc 100644
--- a/src/test/multisig_tests.cpp
+++ b/src/test/multisig_tests.cpp
@@ -46,7 +46,7 @@ BOOST_AUTO_TEST_CASE(multisig_verify)
{
CKey key[4];
for (int i = 0; i < 4; i++)
- key[i].MakeNewKey();
+ key[i].MakeNewKey(true);
CScript a_and_b;
a_and_b << OP_2 << key[0].GetPubKey() << key[1].GetPubKey() << OP_2 << OP_CHECKMULTISIG;
@@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(multisig_IsStandard)
{
CKey key[4];
for (int i = 0; i < 4; i++)
- key[i].MakeNewKey();
+ key[i].MakeNewKey(true);
CScript a_and_b;
a_and_b << OP_2 << key[0].GetPubKey() << key[1].GetPubKey() << OP_2 << OP_CHECKMULTISIG;
@@ -178,7 +178,7 @@ BOOST_AUTO_TEST_CASE(multisig_Solver1)
CBitcoinAddress keyaddr[3];
for (int i = 0; i < 3; i++)
{
- key[i].MakeNewKey();
+ key[i].MakeNewKey(true);
keystore.AddKey(key[i]);
keyaddr[i].SetPubKey(key[i].GetPubKey());
}
@@ -257,7 +257,7 @@ BOOST_AUTO_TEST_CASE(multisig_Sign)
CKey key[4];
for (int i = 0; i < 4; i++)
{
- key[i].MakeNewKey();
+ key[i].MakeNewKey(true);
keystore.AddKey(key[i]);
}
diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp
index 87462f765b..7a438e5d51 100644
--- a/src/test/rpc_tests.cpp
+++ b/src/test/rpc_tests.cpp
@@ -3,16 +3,11 @@
#include "base58.h"
#include "util.h"
-#include "json/json_spirit_reader_template.h"
-#include "json/json_spirit_writer_template.h"
-#include "json/json_spirit_utils.h"
+#include "bitcoinrpc.h"
using namespace std;
using namespace json_spirit;
-typedef Value(*rpcfn_type)(const Array& params, bool fHelp);
-extern map<string, rpcfn_type> mapCallTable;
-
BOOST_AUTO_TEST_SUITE(rpc_tests)
static Array
@@ -36,7 +31,7 @@ struct TestNetFixture
BOOST_FIXTURE_TEST_CASE(rpc_addmultisig, TestNetFixture)
{
- rpcfn_type addmultisig = mapCallTable["addmultisigaddress"];
+ rpcfn_type addmultisig = tableRPC["addmultisigaddress"]->actor;
// old, 65-byte-long:
const char* address1Hex = "0434e3e09f49ea168c5bbf53f877ff4206923858aab7c7e1df25bc263978107c95e35065a27ef6f1b27222db0ec97e0e895eaca603d3ee0d4c060ce3d8a00286c8";
diff --git a/src/test/script_P2SH_tests.cpp b/src/test/script_P2SH_tests.cpp
index c782e0c6c1..aa72c00092 100644
--- a/src/test/script_P2SH_tests.cpp
+++ b/src/test/script_P2SH_tests.cpp
@@ -57,7 +57,7 @@ BOOST_AUTO_TEST_CASE(sign)
CKey key[4];
for (int i = 0; i < 4; i++)
{
- key[i].MakeNewKey();
+ key[i].MakeNewKey(true);
keystore.AddKey(key[i]);
}
@@ -148,7 +148,7 @@ BOOST_AUTO_TEST_CASE(set)
std::vector<CKey> keys;
for (int i = 0; i < 4; i++)
{
- key[i].MakeNewKey();
+ key[i].MakeNewKey(true);
keystore.AddKey(key[i]);
keys.push_back(key[i]);
}
@@ -249,7 +249,7 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
vector<CKey> keys;
for (int i = 0; i < 3; i++)
{
- key[i].MakeNewKey();
+ key[i].MakeNewKey(true);
keystore.AddKey(key[i]);
keys.push_back(key[i]);
}
@@ -300,6 +300,15 @@ BOOST_AUTO_TEST_CASE(AreInputsStandard)
BOOST_CHECK(txTo.AreInputsStandard(mapInputs));
BOOST_CHECK_EQUAL(txTo.GetP2SHSigOpCount(mapInputs), 1);
+ // Make sure adding crap to the scriptSigs makes them non-standard:
+ for (int i = 0; i < 3; i++)
+ {
+ CScript t = txTo.vin[i].scriptSig;
+ txTo.vin[i].scriptSig = (CScript() << 11) + t;
+ BOOST_CHECK(!txTo.AreInputsStandard(mapInputs));
+ txTo.vin[i].scriptSig = t;
+ }
+
CTransaction txToNonStd;
txToNonStd.vout.resize(1);
txToNonStd.vout[0].scriptPubKey.SetBitcoinAddress(key[1].GetPubKey());
diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp
index 79dd7f1bd3..745df4bd7b 100644
--- a/src/test/script_tests.cpp
+++ b/src/test/script_tests.cpp
@@ -1,17 +1,171 @@
+#include <iostream>
+#include <fstream>
#include <vector>
-#include <boost/test/unit_test.hpp>
+#include <boost/algorithm/string/classification.hpp>
+#include <boost/algorithm/string/predicate.hpp>
+#include <boost/algorithm/string/replace.hpp>
+#include <boost/algorithm/string/split.hpp>
#include <boost/foreach.hpp>
+#include <boost/preprocessor/stringize.hpp>
+#include <boost/test/unit_test.hpp>
+#include "json/json_spirit_reader_template.h"
+#include "json/json_spirit_writer_template.h"
+#include "json/json_spirit_utils.h"
#include "main.h"
#include "wallet.h"
using namespace std;
+using namespace json_spirit;
+using namespace boost::algorithm;
+
extern uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType);
extern bool VerifyScript(const CScript& scriptSig, const CScript& scriptPubKey, const CTransaction& txTo, unsigned int nIn,
bool fValidatePayToScriptHash, int nHashType);
+CScript
+ParseScript(string s)
+{
+ CScript result;
+
+ static map<string, opcodetype> mapOpNames;
+
+ if (mapOpNames.size() == 0)
+ {
+ for (int op = OP_NOP; op <= OP_NOP10; op++)
+ {
+ const char* name = GetOpName((opcodetype)op);
+ if (strcmp(name, "OP_UNKNOWN") == 0)
+ continue;
+ string strName(name);
+ mapOpNames[strName] = (opcodetype)op;
+ // Convenience: OP_ADD and just ADD are both recognized:
+ replace_first(strName, "OP_", "");
+ mapOpNames[strName] = (opcodetype)op;
+ }
+ }
+
+ vector<string> words;
+ split(words, s, is_any_of(" \t\n"), token_compress_on);
+
+ BOOST_FOREACH(string w, words)
+ {
+ if (all(w, is_digit()) ||
+ (starts_with(w, "-") && all(string(w.begin()+1, w.end()), is_digit())))
+ {
+ // Number
+ int64 n = atoi64(w);
+ result << n;
+ }
+ else if (starts_with(w, "0x") && IsHex(string(w.begin()+2, w.end())))
+ {
+ // Hex data:
+ result << ParseHex(string(w.begin()+2, w.end()));
+ }
+ else if (s.size() >= 2 && starts_with(w, "'") && ends_with(w, "'"))
+ {
+ // Single-quoted string, pushed as data:
+ std::vector<unsigned char> value(s.begin()+1, s.end()-1);
+ result << value;
+ }
+ else if (mapOpNames.count(w))
+ {
+ // opcode, e.g. OP_ADD or OP_1:
+ result << mapOpNames[w];
+ }
+ else
+ {
+ BOOST_ERROR("Parse error: " << s);
+ return CScript();
+ }
+ }
+
+ return result;
+}
+
+Array
+read_json(const std::string& filename)
+{
+ namespace fs = boost::filesystem;
+ fs::path testFile = fs::current_path() / "test" / "data" / filename;
+
+#ifdef TEST_DATA_DIR
+ if (!fs::exists(testFile))
+ {
+ testFile = fs::path(BOOST_PP_STRINGIZE(TEST_DATA_DIR)) / filename;
+ }
+#endif
+
+ ifstream ifs(testFile.string().c_str(), ifstream::in);
+ Value v;
+ if (!read_stream(ifs, v))
+ {
+ BOOST_ERROR("Cound not find/open " << filename);
+ return Array();
+ }
+ if (v.type() != array_type)
+ {
+ BOOST_ERROR(filename << " does not contain a json array");
+ return Array();
+ }
+
+ return v.get_array();
+}
+
BOOST_AUTO_TEST_SUITE(script_tests)
+BOOST_AUTO_TEST_CASE(script_valid)
+{
+ // Read tests from test/data/script_valid.json
+ // Format is an array of arrays
+ // Inner arrays are [ "scriptSig", "scriptPubKey" ]
+ // ... where scriptSig and scriptPubKey are stringified
+ // scripts.
+ Array tests = read_json("script_valid.json");
+
+ BOOST_FOREACH(Value& tv, tests)
+ {
+ Array test = tv.get_array();
+ string strTest = write_string(tv, false);
+ if (test.size() < 2) // Allow size > 2; extra stuff ignored (useful for comments)
+ {
+ BOOST_ERROR("Bad test: " << strTest);
+ continue;
+ }
+ string scriptSigString = test[0].get_str();
+ CScript scriptSig = ParseScript(scriptSigString);
+ string scriptPubKeyString = test[1].get_str();
+ CScript scriptPubKey = ParseScript(scriptPubKeyString);
+
+ CTransaction tx;
+ BOOST_CHECK_MESSAGE(VerifyScript(scriptSig, scriptPubKey, tx, 0, true, SIGHASH_NONE), strTest);
+ }
+}
+
+BOOST_AUTO_TEST_CASE(script_invalid)
+{
+ // Scripts that should evaluate as invalid
+ Array tests = read_json("script_invalid.json");
+
+ BOOST_FOREACH(Value& tv, tests)
+ {
+ Array test = tv.get_array();
+ string strTest = write_string(tv, false);
+ if (test.size() < 2) // Allow size > 2; extra stuff ignored (useful for comments)
+ {
+ BOOST_ERROR("Bad test: " << strTest);
+ continue;
+ }
+ string scriptSigString = test[0].get_str();
+ CScript scriptSig = ParseScript(scriptSigString);
+ string scriptPubKeyString = test[1].get_str();
+ CScript scriptPubKey = ParseScript(scriptPubKeyString);
+
+ CTransaction tx;
+ BOOST_CHECK_MESSAGE(!VerifyScript(scriptSig, scriptPubKey, tx, 0, true, SIGHASH_NONE), strTest);
+ }
+}
+
BOOST_AUTO_TEST_CASE(script_PushData)
{
// Check that PUSHDATA1, PUSHDATA2, and PUSHDATA4 create the same value on
@@ -72,9 +226,9 @@ sign_multisig(CScript scriptPubKey, CKey key, CTransaction transaction)
BOOST_AUTO_TEST_CASE(script_CHECKMULTISIG12)
{
CKey key1, key2, key3;
- key1.MakeNewKey();
- key2.MakeNewKey();
- key3.MakeNewKey();
+ key1.MakeNewKey(true);
+ key2.MakeNewKey(false);
+ key3.MakeNewKey(true);
CScript scriptPubKey12;
scriptPubKey12 << OP_1 << key1.GetPubKey() << key2.GetPubKey() << OP_2 << OP_CHECKMULTISIG;
@@ -105,10 +259,10 @@ BOOST_AUTO_TEST_CASE(script_CHECKMULTISIG12)
BOOST_AUTO_TEST_CASE(script_CHECKMULTISIG23)
{
CKey key1, key2, key3, key4;
- key1.MakeNewKey();
- key2.MakeNewKey();
- key3.MakeNewKey();
- key4.MakeNewKey();
+ key1.MakeNewKey(true);
+ key2.MakeNewKey(false);
+ key3.MakeNewKey(true);
+ key4.MakeNewKey(false);
CScript scriptPubKey23;
scriptPubKey23 << OP_2 << key1.GetPubKey() << key2.GetPubKey() << key3.GetPubKey() << OP_3 << OP_CHECKMULTISIG;
diff --git a/src/test/sigopcount_tests.cpp b/src/test/sigopcount_tests.cpp
index 0b0a4a62d8..d301313a9d 100644
--- a/src/test/sigopcount_tests.cpp
+++ b/src/test/sigopcount_tests.cpp
@@ -41,7 +41,7 @@ BOOST_AUTO_TEST_CASE(GetSigOpCount)
for (int i = 0; i < 3; i++)
{
CKey k;
- k.MakeNewKey();
+ k.MakeNewKey(true);
keys.push_back(k);
}
CScript s2;
diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp
index 592fe3f81a..b680ede9a5 100644
--- a/src/test/transaction_tests.cpp
+++ b/src/test/transaction_tests.cpp
@@ -12,7 +12,7 @@ BOOST_AUTO_TEST_CASE(basic_transaction_tests)
// Random real transaction (e2769b09e784f32f62ef849763d4f45b98e07ba658647343b915ff832b110436)
unsigned char ch[] = {0x01, 0x00, 0x00, 0x00, 0x01, 0x6b, 0xff, 0x7f, 0xcd, 0x4f, 0x85, 0x65, 0xef, 0x40, 0x6d, 0xd5, 0xd6, 0x3d, 0x4f, 0xf9, 0x4f, 0x31, 0x8f, 0xe8, 0x20, 0x27, 0xfd, 0x4d, 0xc4, 0x51, 0xb0, 0x44, 0x74, 0x01, 0x9f, 0x74, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x49, 0x30, 0x46, 0x02, 0x21, 0x00, 0xda, 0x0d, 0xc6, 0xae, 0xce, 0xfe, 0x1e, 0x06, 0xef, 0xdf, 0x05, 0x77, 0x37, 0x57, 0xde, 0xb1, 0x68, 0x82, 0x09, 0x30, 0xe3, 0xb0, 0xd0, 0x3f, 0x46, 0xf5, 0xfc, 0xf1, 0x50, 0xbf, 0x99, 0x0c, 0x02, 0x21, 0x00, 0xd2, 0x5b, 0x5c, 0x87, 0x04, 0x00, 0x76, 0xe4, 0xf2, 0x53, 0xf8, 0x26, 0x2e, 0x76, 0x3e, 0x2d, 0xd5, 0x1e, 0x7f, 0xf0, 0xbe, 0x15, 0x77, 0x27, 0xc4, 0xbc, 0x42, 0x80, 0x7f, 0x17, 0xbd, 0x39, 0x01, 0x41, 0x04, 0xe6, 0xc2, 0x6e, 0xf6, 0x7d, 0xc6, 0x10, 0xd2, 0xcd, 0x19, 0x24, 0x84, 0x78, 0x9a, 0x6c, 0xf9, 0xae, 0xa9, 0x93, 0x0b, 0x94, 0x4b, 0x7e, 0x2d, 0xb5, 0x34, 0x2b, 0x9d, 0x9e, 0x5b, 0x9f, 0xf7, 0x9a, 0xff, 0x9a, 0x2e, 0xe1, 0x97, 0x8d, 0xd7, 0xfd, 0x01, 0xdf, 0xc5, 0x22, 0xee, 0x02, 0x28, 0x3d, 0x3b, 0x06, 0xa9, 0xd0, 0x3a, 0xcf, 0x80, 0x96, 0x96, 0x8d, 0x7d, 0xbb, 0x0f, 0x91, 0x78, 0xff, 0xff, 0xff, 0xff, 0x02, 0x8b, 0xa7, 0x94, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x76, 0xa9, 0x14, 0xba, 0xde, 0xec, 0xfd, 0xef, 0x05, 0x07, 0x24, 0x7f, 0xc8, 0xf7, 0x42, 0x41, 0xd7, 0x3b, 0xc0, 0x39, 0x97, 0x2d, 0x7b, 0x88, 0xac, 0x40, 0x94, 0xa8, 0x02, 0x00, 0x00, 0x00, 0x00, 0x19, 0x76, 0xa9, 0x14, 0xc1, 0x09, 0x32, 0x48, 0x3f, 0xec, 0x93, 0xed, 0x51, 0xf5, 0xfe, 0x95, 0xe7, 0x25, 0x59, 0xf2, 0xcc, 0x70, 0x43, 0xf9, 0x88, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00};
vector<unsigned char> vch(ch, ch + sizeof(ch) -1);
- CDataStream stream(vch);
+ CDataStream stream(vch, SER_DISK, CLIENT_VERSION);
CTransaction tx;
stream >> tx;
BOOST_CHECK_MESSAGE(tx.CheckTransaction(), "Simple deserialized transaction should be valid.");
@@ -24,8 +24,9 @@ BOOST_AUTO_TEST_CASE(basic_transaction_tests)
//
// Helper: create two dummy transactions, each with
-// two outputs. The first has 11 and 50 CENT outputs,
-// the second 21 and 22 CENT outputs.
+// two outputs. The first has 11 and 50 CENT outputs
+// paid to a TX_PUBKEY, the second 21 and 22 CENT outputs
+// paid to a TX_PUBKEYHASH.
//
static std::vector<CTransaction>
SetupDummyInputs(CBasicKeyStore& keystoreRet, MapPrevTx& inputsRet)
@@ -37,16 +38,16 @@ SetupDummyInputs(CBasicKeyStore& keystoreRet, MapPrevTx& inputsRet)
CKey key[4];
for (int i = 0; i < 4; i++)
{
- key[i].MakeNewKey();
+ key[i].MakeNewKey(i % 2);
keystoreRet.AddKey(key[i]);
}
// Create some dummy input transactions
dummyTransactions[0].vout.resize(2);
dummyTransactions[0].vout[0].nValue = 11*CENT;
- dummyTransactions[0].vout[0].scriptPubKey.SetBitcoinAddress(key[0].GetPubKey());
+ dummyTransactions[0].vout[0].scriptPubKey << key[0].GetPubKey() << OP_CHECKSIG;
dummyTransactions[0].vout[1].nValue = 50*CENT;
- dummyTransactions[0].vout[1].scriptPubKey.SetBitcoinAddress(key[1].GetPubKey());
+ dummyTransactions[0].vout[1].scriptPubKey << key[1].GetPubKey() << OP_CHECKSIG;
inputsRet[dummyTransactions[0].GetHash()] = make_pair(CTxIndex(), dummyTransactions[0]);
dummyTransactions[1].vout.resize(2);
@@ -69,16 +70,27 @@ BOOST_AUTO_TEST_CASE(test_Get)
t1.vin.resize(3);
t1.vin[0].prevout.hash = dummyTransactions[0].GetHash();
t1.vin[0].prevout.n = 1;
- t1.vin[1].prevout.hash = dummyTransactions[1].GetHash();;
+ t1.vin[0].scriptSig << std::vector<unsigned char>(65, 0);
+ t1.vin[1].prevout.hash = dummyTransactions[1].GetHash();
t1.vin[1].prevout.n = 0;
- t1.vin[2].prevout.hash = dummyTransactions[1].GetHash();;
+ t1.vin[1].scriptSig << std::vector<unsigned char>(65, 0) << std::vector<unsigned char>(33, 4);
+ t1.vin[2].prevout.hash = dummyTransactions[1].GetHash();
t1.vin[2].prevout.n = 1;
+ t1.vin[2].scriptSig << std::vector<unsigned char>(65, 0) << std::vector<unsigned char>(33, 4);
t1.vout.resize(2);
t1.vout[0].nValue = 90*CENT;
t1.vout[0].scriptPubKey << OP_1;
BOOST_CHECK(t1.AreInputsStandard(dummyInputs));
BOOST_CHECK_EQUAL(t1.GetValueIn(dummyInputs), (50+21+22)*CENT);
+
+ // Adding extra junk to the scriptSig should make it non-standard:
+ t1.vin[0].scriptSig << OP_11;
+ BOOST_CHECK(!t1.AreInputsStandard(dummyInputs));
+
+ // ... as should not having enough:
+ t1.vin[0].scriptSig = CScript();
+ BOOST_CHECK(!t1.AreInputsStandard(dummyInputs));
}
BOOST_AUTO_TEST_CASE(test_GetThrow)
diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp
index 94c0c77a44..0393edb1a7 100644
--- a/src/test/util_tests.cpp
+++ b/src/test/util_tests.cpp
@@ -15,14 +15,15 @@ BOOST_AUTO_TEST_CASE(util_criticalsection)
CCriticalSection cs;
do {
- CRITICAL_BLOCK(cs)
- break;
+ LOCK(cs);
+ break;
BOOST_ERROR("break was swallowed!");
} while(0);
do {
- TRY_CRITICAL_BLOCK(cs)
+ TRY_LOCK(cs, lockTest);
+ if (lockTest)
break;
BOOST_ERROR("break was swallowed!");
@@ -87,8 +88,19 @@ BOOST_AUTO_TEST_CASE(util_HexStr)
BOOST_CHECK_EQUAL(
HexStr(ParseHex_expected, ParseHex_expected + 5, true),
"04 67 8a fd b0");
+
+ BOOST_CHECK_EQUAL(
+ HexStr(ParseHex_expected, ParseHex_expected, true),
+ "");
+
+ std::vector<unsigned char> ParseHex_vec(ParseHex_expected, ParseHex_expected + 5);
+
+ BOOST_CHECK_EQUAL(
+ HexStr(ParseHex_vec, true),
+ "04 67 8a fd b0");
}
+
BOOST_AUTO_TEST_CASE(util_DateTimeStrFormat)
{
BOOST_CHECK_EQUAL(DateTimeStrFormat("%x %H:%M:%S", 0), "01/01/70 00:00:00");
diff --git a/src/qtui.h b/src/ui_interface.h
index 9791ba544d..514768086d 100644
--- a/src/qtui.h
+++ b/src/ui_interface.h
@@ -1,14 +1,12 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#ifndef BITCOIN_EXTERNUI_H
-#define BITCOIN_EXTERNUI_H
+#ifndef BITCOIN_UI_INTERFACE_H
+#define BITCOIN_UI_INTERFACE_H
#include <string>
-#include <boost/function/function0.hpp>
-#include "wallet.h"
+#include "util.h" // for int64
-typedef void wxWindow;
#define wxYES 0x00000002
#define wxOK 0x00000004
#define wxNO 0x00000008
@@ -35,15 +33,17 @@ typedef void wxWindow;
#define wxHELP 0x00008000
#define wxMORE 0x00010000
#define wxSETUP 0x00020000
+// Force blocking, modal message box dialog (not just notification)
+#define wxMODAL 0x00040000
-extern int MyMessageBox(const std::string& message, const std::string& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1);
-#define wxMessageBox MyMessageBox
-extern int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1);
-extern bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent);
-extern void ThreadSafeHandleURL(const std::string& strURL);
-extern void CalledSetStatusBar(const std::string& strText, int nField);
-extern void UIThreadCall(boost::function0<void> fn);
+/* These UI communication functions are implemented in bitcoin.cpp (for ui) and noui.cpp (no ui) */
+
+extern int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style=wxOK);
+extern bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption);
+extern void ThreadSafeHandleURI(const std::string& strURI);
extern void MainFrameRepaint();
+extern void AddressBookRepaint();
+extern void QueueShutdown();
extern void InitMessage(const std::string &message);
extern std::string _(const char* psz);
diff --git a/src/uint256.h b/src/uint256.h
index 0d27408575..9966a14ed7 100644
--- a/src/uint256.h
+++ b/src/uint256.h
@@ -1,13 +1,13 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_UINT256_H
#define BITCOIN_UINT256_H
-#include "serialize.h"
-
#include <limits.h>
+#include <stdio.h>
+#include <string.h>
#include <string>
#include <vector>
@@ -19,8 +19,9 @@ inline int Testuint256AdHoc(std::vector<std::string> vArg);
-// We have to keep a separate base class without constructors
-// so the compiler will let us use it in a union
+/** Base class without constructors for uint256 and uint160.
+ * This makes the compiler let u use it in a union.
+ */
template<unsigned int BITS>
class base_uint
{
@@ -92,13 +93,6 @@ public:
return *this;
}
- base_uint& operator&=(uint64 b)
- {
- pn[0] &= (unsigned int)b;
- pn[1] &= (unsigned int)(b >> 32);
- return *this;
- }
-
base_uint& operator|=(uint64 b)
{
pn[0] |= (unsigned int)b;
@@ -293,7 +287,7 @@ public:
std::string GetHex() const
{
char psz[sizeof(pn)*2 + 1];
- for (int i = 0; i < sizeof(pn); i++)
+ for (unsigned int i = 0; i < sizeof(pn); i++)
sprintf(psz + i*2, "%02x", ((unsigned char*)pn)[sizeof(pn) - i - 1]);
return std::string(psz, psz + sizeof(pn)*2);
}
@@ -312,9 +306,9 @@ public:
psz += 2;
// hex string to uint
- static char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 };
+ static unsigned char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 };
const char* pbegin = psz;
- while (phexdigit[*psz] || *psz == '0')
+ while (phexdigit[(unsigned char)*psz] || *psz == '0')
psz++;
psz--;
unsigned char* p1 = (unsigned char*)pn;
@@ -355,20 +349,27 @@ public:
return sizeof(pn);
}
+ uint64 Get64(int n=0) const
+ {
+ return pn[2*n] | (uint64)pn[2*n+1] << 32;
+ }
- unsigned int GetSerializeSize(int nType=0, int nVersion=PROTOCOL_VERSION) const
+// unsigned int GetSerializeSize(int nType=0, int nVersion=PROTOCOL_VERSION) const
+ unsigned int GetSerializeSize(int nType, int nVersion) const
{
return sizeof(pn);
}
template<typename Stream>
- void Serialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION) const
+// void Serialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION) const
+ void Serialize(Stream& s, int nType, int nVersion) const
{
s.write((char*)pn, sizeof(pn));
}
template<typename Stream>
- void Unserialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION)
+// void Unserialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION)
+ void Unserialize(Stream& s, int nType, int nVersion)
{
s.read((char*)pn, sizeof(pn));
}
@@ -396,6 +397,7 @@ typedef base_uint<256> base_uint256;
// uint160
//
+/** 160-bit unsigned integer */
class uint160 : public base_uint160
{
public:
@@ -510,6 +512,7 @@ inline const uint160 operator-(const uint160& a, const uint160& b) { return
// uint256
//
+/** 256-bit unsigned integer */
class uint256 : public base_uint256
{
public:
diff --git a/src/util.cpp b/src/util.cpp
index 6a4c2a2ef3..3d301d21e3 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1,10 +1,24 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
+
+#include "util.h"
#include "strlcpy.h"
+#include "version.h"
+#include "ui_interface.h"
#include <boost/algorithm/string/join.hpp>
+
+// Work around clang compilation problem in Boost 1.46:
+// /usr/include/boost/program_options/detail/config_file.hpp:163:17: error: call to function 'to_internal' that is neither visible in the template definition nor found by argument-dependent lookup
+// See also: http://stackoverflow.com/questions/10020179/compilation-fail-in-boost-librairies-program-options
+// http://clang.debian.net/status.php?version=3.0&key=CANNOT_FIND_FUNCTION
+namespace boost {
+ namespace program_options {
+ std::string to_internal(const std::string&);
+ }
+}
+
#include <boost/program_options/detail/config_file.hpp>
#include <boost/program_options/parsers.hpp>
#include <boost/filesystem.hpp>
@@ -12,6 +26,31 @@
#include <boost/interprocess/sync/interprocess_mutex.hpp>
#include <boost/interprocess/sync/interprocess_recursive_mutex.hpp>
#include <boost/foreach.hpp>
+#include <openssl/crypto.h>
+#include <openssl/rand.h>
+
+#ifdef WIN32
+#ifdef _MSC_VER
+#pragma warning(disable:4786)
+#pragma warning(disable:4804)
+#pragma warning(disable:4805)
+#pragma warning(disable:4717)
+#endif
+#ifdef _WIN32_WINNT
+#undef _WIN32_WINNT
+#endif
+#define _WIN32_WINNT 0x0501
+#ifdef _WIN32_IE
+#undef _WIN32_IE
+#endif
+#define _WIN32_IE 0x0501
+#define WIN32_LEAN_AND_MEAN 1
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#include "shlobj.h"
+#include "shlwapi.h"
+#endif
using namespace std;
using namespace boost;
@@ -21,7 +60,6 @@ map<string, vector<string> > mapMultiArgs;
bool fDebug = false;
bool fPrintToConsole = false;
bool fPrintToDebugger = false;
-char pszSetDataDir[MAX_PATH] = "";
bool fRequestShutdown = false;
bool fShutdown = false;
bool fDaemon = false;
@@ -33,16 +71,6 @@ bool fNoListen = false;
bool fLogTimestamps = false;
CMedianFilter<int64> vTimeOffsets(200,0);
-
-
-// Workaround for "multiple definition of `_tls_used'"
-// http://svn.boost.org/trac/boost/ticket/4258
-extern "C" void tss_cleanup_implemented() { }
-
-
-
-
-
// Init openssl library multithreading support
static boost::interprocess::interprocess_mutex** ppmutexOpenSSL;
void locking_callback(int mode, int i, const char* file, int line)
@@ -174,10 +202,8 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
if (!fileout)
{
- char pszFile[MAX_PATH+100];
- GetDataDir(pszFile);
- strlcat(pszFile, "/debug.log", sizeof(pszFile));
- fileout = fopen(pszFile, "a");
+ boost::filesystem::path pathDebug = GetDataDir() / "debug.log";
+ fileout = fopen(pathDebug.string().c_str(), "a");
if (fileout) setbuf(fileout, NULL); // unbuffered
}
if (fileout)
@@ -205,8 +231,8 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
static CCriticalSection cs_OutputDebugStringF;
// accumulate a line at a time
- CRITICAL_BLOCK(cs_OutputDebugStringF)
{
+ LOCK(cs_OutputDebugStringF);
static char pszBuffer[50000];
static char* pend;
if (pend == NULL)
@@ -226,7 +252,7 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
*pend = '\0';
char* p1 = pszBuffer;
char* p2;
- while (p2 = strchr(p1, '\n'))
+ while ((p2 = strchr(p1, '\n')))
{
p2++;
char c = *p2;
@@ -257,7 +283,7 @@ int my_snprintf(char* buffer, size_t limit, const char* format, ...)
va_start(arg_ptr, format);
int ret = _vsnprintf(buffer, limit, format, arg_ptr);
va_end(arg_ptr);
- if (ret < 0 || ret >= limit)
+ if (ret < 0 || ret >= (int)limit)
{
ret = limit - 1;
buffer[limit-1] = 0;
@@ -265,7 +291,7 @@ int my_snprintf(char* buffer, size_t limit, const char* format, ...)
return ret;
}
-string strprintf(const std::string &format, ...)
+string real_strprintf(const std::string &format, int dummy, ...)
{
char buffer[50000];
char* p = buffer;
@@ -274,7 +300,7 @@ string strprintf(const std::string &format, ...)
loop
{
va_list arg_ptr;
- va_start(arg_ptr, format);
+ va_start(arg_ptr, dummy);
ret = _vsnprintf(p, limit, format.c_str(), arg_ptr);
va_end(arg_ptr);
if (ret >= 0 && ret < limit)
@@ -292,17 +318,16 @@ string strprintf(const std::string &format, ...)
return str;
}
-bool error(const std::string &format, ...)
+bool error(const char *format, ...)
{
char buffer[50000];
int limit = sizeof(buffer);
va_list arg_ptr;
va_start(arg_ptr, format);
- int ret = _vsnprintf(buffer, limit, format.c_str(), arg_ptr);
+ int ret = _vsnprintf(buffer, limit, format, arg_ptr);
va_end(arg_ptr);
if (ret < 0 || ret >= limit)
{
- ret = limit - 1;
buffer[limit-1] = 0;
}
printf("ERROR: %s\n", buffer);
@@ -400,14 +425,14 @@ bool ParseMoney(const char* pszIn, int64& nRet)
}
-static char phexdigit[256] =
+static signed char phexdigit[256] =
{ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,
-1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
- -1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1
+ -1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
@@ -436,12 +461,12 @@ vector<unsigned char> ParseHex(const char* psz)
{
while (isspace(*psz))
psz++;
- char c = phexdigit[(unsigned char)*psz++];
- if (c == (char)-1)
+ signed char c = phexdigit[(unsigned char)*psz++];
+ if (c == (signed char)-1)
break;
unsigned char n = (c << 4);
c = phexdigit[(unsigned char)*psz++];
- if (c == (char)-1)
+ if (c == (signed char)-1)
break;
n |= c;
vch.push_back(n);
@@ -454,7 +479,22 @@ vector<unsigned char> ParseHex(const string& str)
return ParseHex(str.c_str());
}
-void ParseParameters(int argc, char* argv[])
+static void InterpretNegativeSetting(string name, map<string, string>& mapSettingsRet)
+{
+ // interpret -nofoo as -foo=0 (and -nofoo=0 as -foo=1) as long as -foo not set
+ if (name.find("-no") == 0)
+ {
+ std::string positive("-");
+ positive.append(name.begin()+3, name.end());
+ if (mapSettingsRet.count(positive) == 0)
+ {
+ bool value = !GetBoolArg(name);
+ mapSettingsRet[positive] = (value ? "1" : "0");
+ }
+ }
+}
+
+void ParseParameters(int argc, const char*const argv[])
{
mapArgs.clear();
mapMultiArgs.clear();
@@ -475,9 +515,53 @@ void ParseParameters(int argc, char* argv[])
#endif
if (psz[0] != '-')
break;
+
mapArgs[psz] = pszValue;
mapMultiArgs[psz].push_back(pszValue);
}
+
+ // New 0.6 features:
+ BOOST_FOREACH(const PAIRTYPE(string,string)& entry, mapArgs)
+ {
+ string name = entry.first;
+
+ // interpret --foo as -foo (as long as both are not set)
+ if (name.find("--") == 0)
+ {
+ std::string singleDash(name.begin()+1, name.end());
+ if (mapArgs.count(singleDash) == 0)
+ mapArgs[singleDash] = entry.second;
+ name = singleDash;
+ }
+
+ // interpret -nofoo as -foo=0 (and -nofoo=0 as -foo=1) as long as -foo not set
+ InterpretNegativeSetting(name, mapArgs);
+ }
+}
+
+std::string GetArg(const std::string& strArg, const std::string& strDefault)
+{
+ if (mapArgs.count(strArg))
+ return mapArgs[strArg];
+ return strDefault;
+}
+
+int64 GetArg(const std::string& strArg, int64 nDefault)
+{
+ if (mapArgs.count(strArg))
+ return atoi64(mapArgs[strArg]);
+ return nDefault;
+}
+
+bool GetBoolArg(const std::string& strArg, bool fDefault)
+{
+ if (mapArgs.count(strArg))
+ {
+ if (mapArgs[strArg].empty())
+ return true;
+ return (atoi(mapArgs[strArg]) != 0);
+ }
+ return fDefault;
}
bool SoftSetArg(const std::string& strArg, const std::string& strValue)
@@ -488,7 +572,7 @@ bool SoftSetArg(const std::string& strArg, const std::string& strValue)
return true;
}
-bool SoftSetArg(const std::string& strArg, bool fValue)
+bool SoftSetBoolArg(const std::string& strArg, bool fValue)
{
if (fValue)
return SoftSetArg(strArg, std::string("1"));
@@ -578,7 +662,7 @@ vector<unsigned char> DecodeBase64(const char* p, bool* pfInvalid)
while (1)
{
- int dec = decode64_table[*p];
+ int dec = decode64_table[(unsigned char)*p];
if (dec == -1) break;
p++;
switch (mode)
@@ -618,12 +702,12 @@ vector<unsigned char> DecodeBase64(const char* p, bool* pfInvalid)
break;
case 2: // 4n+2 base64 characters processed: require '=='
- if (left || p[0] != '=' || p[1] != '=' || decode64_table[p[2]] != -1)
+ if (left || p[0] != '=' || p[1] != '=' || decode64_table[(unsigned char)p[2]] != -1)
*pfInvalid = true;
break;
case 3: // 4n+3 base64 characters processed: require '='
- if (left || p[0] != '=' || decode64_table[p[1]] != -1)
+ if (left || p[0] != '=' || decode64_table[(unsigned char)p[1]] != -1)
*pfInvalid = true;
break;
}
@@ -708,17 +792,6 @@ void PrintException(std::exception* pex, const char* pszThread)
throw;
}
-void ThreadOneMessageBox(string strMessage)
-{
- // Skip message boxes if one is already open
- static bool fMessageBoxOpen;
- if (fMessageBoxOpen)
- return;
- fMessageBoxOpen = true;
- ThreadSafeMessageBox(strMessage, "Bitcoin", wxOK | wxICON_EXCLAMATION);
- fMessageBoxOpen = false;
-}
-
void PrintExceptionContinue(std::exception* pex, const char* pszThread)
{
char pszMessage[10000];
@@ -728,125 +801,99 @@ void PrintExceptionContinue(std::exception* pex, const char* pszThread)
strMiscWarning = pszMessage;
}
-
-
-
-
-
-
-
#ifdef WIN32
-typedef WINSHELLAPI BOOL (WINAPI *PSHGETSPECIALFOLDERPATHA)(HWND hwndOwner, LPSTR lpszPath, int nFolder, BOOL fCreate);
-
-string MyGetSpecialFolderPath(int nFolder, bool fCreate)
+boost::filesystem::path MyGetSpecialFolderPath(int nFolder, bool fCreate)
{
- char pszPath[MAX_PATH+100] = "";
+ namespace fs = boost::filesystem;
- // SHGetSpecialFolderPath isn't always available on old Windows versions
- HMODULE hShell32 = LoadLibraryA("shell32.dll");
- if (hShell32)
+ char pszPath[MAX_PATH] = "";
+ if(SHGetSpecialFolderPathA(NULL, pszPath, nFolder, fCreate))
{
- PSHGETSPECIALFOLDERPATHA pSHGetSpecialFolderPath =
- (PSHGETSPECIALFOLDERPATHA)GetProcAddress(hShell32, "SHGetSpecialFolderPathA");
- if (pSHGetSpecialFolderPath)
- (*pSHGetSpecialFolderPath)(NULL, pszPath, nFolder, fCreate);
- FreeModule(hShell32);
+ return fs::path(pszPath);
}
-
- // Backup option
- if (pszPath[0] == '\0')
+ else if (nFolder == CSIDL_STARTUP)
{
- if (nFolder == CSIDL_STARTUP)
- {
- strcpy(pszPath, getenv("USERPROFILE"));
- strcat(pszPath, "\\Start Menu\\Programs\\Startup");
- }
- else if (nFolder == CSIDL_APPDATA)
- {
- strcpy(pszPath, getenv("APPDATA"));
- }
+ return fs::path(getenv("USERPROFILE")) / "Start Menu" / "Programs" / "Startup";
}
-
- return pszPath;
+ else if (nFolder == CSIDL_APPDATA)
+ {
+ return fs::path(getenv("APPDATA"));
+ }
+ return fs::path("");
}
#endif
-string GetDefaultDataDir()
+boost::filesystem::path GetDefaultDataDir()
{
+ namespace fs = boost::filesystem;
+
// Windows: C:\Documents and Settings\username\Application Data\Bitcoin
// Mac: ~/Library/Application Support/Bitcoin
// Unix: ~/.bitcoin
#ifdef WIN32
// Windows
- return MyGetSpecialFolderPath(CSIDL_APPDATA, true) + "\\Bitcoin";
+ return MyGetSpecialFolderPath(CSIDL_APPDATA, true) / "Bitcoin";
#else
+ fs::path pathRet;
char* pszHome = getenv("HOME");
if (pszHome == NULL || strlen(pszHome) == 0)
- pszHome = (char*)"/";
- string strHome = pszHome;
- if (strHome[strHome.size()-1] != '/')
- strHome += '/';
+ pathRet = fs::path("/");
+ else
+ pathRet = fs::path(pszHome);
#ifdef MAC_OSX
// Mac
- strHome += "Library/Application Support/";
- filesystem::create_directory(strHome.c_str());
- return strHome + "Bitcoin";
+ pathRet /= "Library/Application Support";
+ filesystem::create_directory(pathRet);
+ return pathRet / "Bitcoin";
#else
// Unix
- return strHome + ".bitcoin";
+ return pathRet / ".bitcoin";
#endif
#endif
}
-void GetDataDir(char* pszDir)
+const boost::filesystem::path &GetDataDir(bool fNetSpecific)
{
- // pszDir must be at least MAX_PATH length.
- int nVariation;
- if (pszSetDataDir[0] != 0)
- {
- strlcpy(pszDir, pszSetDataDir, MAX_PATH);
- nVariation = 0;
- }
- else
- {
- // This can be called during exceptions by printf, so we cache the
- // value so we don't have to do memory allocations after that.
- static char pszCachedDir[MAX_PATH];
- if (pszCachedDir[0] == 0)
- strlcpy(pszCachedDir, GetDefaultDataDir().c_str(), sizeof(pszCachedDir));
- strlcpy(pszDir, pszCachedDir, MAX_PATH);
- nVariation = 1;
- }
- if (fTestNet)
- {
- char* p = pszDir + strlen(pszDir);
- if (p > pszDir && p[-1] != '/' && p[-1] != '\\')
- *p++ = '/';
- strcpy(p, "testnet");
- nVariation += 2;
- }
- static bool pfMkdir[4];
- if (!pfMkdir[nVariation])
- {
- pfMkdir[nVariation] = true;
- boost::filesystem::create_directory(pszDir);
+ namespace fs = boost::filesystem;
+
+ static fs::path pathCached[2];
+ static CCriticalSection csPathCached;
+ static bool cachedPath[2] = {false, false};
+
+ fs::path &path = pathCached[fNetSpecific];
+
+ // This can be called during exceptions by printf, so we cache the
+ // value so we don't have to do memory allocations after that.
+ if (cachedPath[fNetSpecific])
+ return path;
+
+ LOCK(csPathCached);
+
+ if (mapArgs.count("-datadir")) {
+ path = fs::system_complete(mapArgs["-datadir"]);
+ if (!fs::is_directory(path)) {
+ path = "";
+ return path;
+ }
+ } else {
+ path = GetDefaultDataDir();
}
-}
+ if (fNetSpecific && GetBoolArg("-testnet", false))
+ path /= "testnet";
-string GetDataDir()
-{
- char pszDir[MAX_PATH];
- GetDataDir(pszDir);
- return pszDir;
+ fs::create_directory(path);
+
+ cachedPath[fNetSpecific]=true;
+ return path;
}
-string GetConfigFile()
+boost::filesystem::path GetConfigFile()
{
namespace fs = boost::filesystem;
- fs::path pathConfig(GetArg("-conf", "bitcoin.conf"));
- if (!pathConfig.is_complete())
- pathConfig = fs::path(GetDataDir()) / pathConfig;
- return pathConfig.string();
+
+ fs::path pathConfigFile(GetArg("-conf", "bitcoin.conf"));
+ if (!pathConfigFile.is_complete()) pathConfigFile = GetDataDir(false) / pathConfigFile;
+ return pathConfigFile;
}
void ReadConfigFile(map<string, string>& mapSettingsRet,
@@ -857,33 +904,37 @@ void ReadConfigFile(map<string, string>& mapSettingsRet,
fs::ifstream streamConfig(GetConfigFile());
if (!streamConfig.good())
- return;
+ return; // No bitcoin.conf file is OK
set<string> setOptions;
setOptions.insert("*");
-
+
for (pod::config_file_iterator it(streamConfig, setOptions), end; it != end; ++it)
{
// Don't overwrite existing settings so command line settings override bitcoin.conf
string strKey = string("-") + it->string_key;
if (mapSettingsRet.count(strKey) == 0)
+ {
mapSettingsRet[strKey] = it->value[0];
+ // interpret nofoo=1 as foo=0 (and nofoo=0 as foo=1) as long as foo not set)
+ InterpretNegativeSetting(strKey, mapSettingsRet);
+ }
mapMultiSettingsRet[strKey].push_back(it->value[0]);
}
}
-string GetPidFile()
+boost::filesystem::path GetPidFile()
{
namespace fs = boost::filesystem;
- fs::path pathConfig(GetArg("-pid", "bitcoind.pid"));
- if (!pathConfig.is_complete())
- pathConfig = fs::path(GetDataDir()) / pathConfig;
- return pathConfig.string();
+
+ fs::path pathPidFile(GetArg("-pid", "bitcoind.pid"));
+ if (!pathPidFile.is_complete()) pathPidFile = GetDataDir() / pathPidFile;
+ return pathPidFile;
}
-void CreatePidFile(string pidFile, pid_t pid)
+void CreatePidFile(const boost::filesystem::path &path, pid_t pid)
{
- FILE* file = fopen(pidFile.c_str(), "w");
+ FILE* file = fopen(path.string().c_str(), "w");
if (file)
{
fprintf(file, "%d\n", pid);
@@ -904,8 +955,8 @@ int GetFilesize(FILE* file)
void ShrinkDebugFile()
{
// Scroll debug.log if it's getting too big
- string strFile = GetDataDir() + "/debug.log";
- FILE* file = fopen(strFile.c_str(), "r");
+ boost::filesystem::path pathLog = GetDataDir() / "debug.log";
+ FILE* file = fopen(pathLog.string().c_str(), "r");
if (file && GetFilesize(file) > 10 * 1000000)
{
// Restart the file with some of the end
@@ -914,7 +965,7 @@ void ShrinkDebugFile()
int nBytes = fread(pch, 1, sizeof(pch), file);
fclose(file);
- file = fopen(strFile.c_str(), "w");
+ file = fopen(pathLog.string().c_str(), "w");
if (file)
{
fwrite(pch, 1, nBytes, file);
@@ -998,7 +1049,7 @@ void AddTimeData(const CNetAddr& ip, int64 nTime)
string strMessage = _("Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly.");
strMiscWarning = strMessage;
printf("*** %s\n", strMessage.c_str());
- boost::thread(boost::bind(ThreadSafeMessageBox, strMessage+" ", string("Bitcoin"), wxOK | wxICON_EXCLAMATION, (wxWindow*)NULL, -1, -1));
+ ThreadSafeMessageBox(strMessage+" ", string("Bitcoin"), wxOK | wxICON_EXCLAMATION);
}
}
}
@@ -1028,12 +1079,7 @@ string FormatVersion(int nVersion)
string FormatFullVersion()
{
- string s = FormatVersion(CLIENT_VERSION);
- if (VERSION_IS_BETA) {
- s += "-";
- s += _("beta");
- }
- return s;
+ return CLIENT_BUILD;
}
// Format the subversion field according to BIP 14 spec (https://en.bitcoin.it/wiki/BIP_0014)
@@ -1048,6 +1094,149 @@ std::string FormatSubVersion(const std::string& name, int nClientVersion, const
return ss.str();
}
+#ifdef WIN32
+boost::filesystem::path static StartupShortcutPath()
+{
+ return MyGetSpecialFolderPath(CSIDL_STARTUP, true) / "Bitcoin.lnk";
+}
+
+bool GetStartOnSystemStartup()
+{
+ return filesystem::exists(StartupShortcutPath());
+}
+
+bool SetStartOnSystemStartup(bool fAutoStart)
+{
+ // If the shortcut exists already, remove it for updating
+ boost::filesystem::remove(StartupShortcutPath());
+
+ if (fAutoStart)
+ {
+ CoInitialize(NULL);
+
+ // Get a pointer to the IShellLink interface.
+ IShellLink* psl = NULL;
+ HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL,
+ CLSCTX_INPROC_SERVER, IID_IShellLink,
+ reinterpret_cast<void**>(&psl));
+
+ if (SUCCEEDED(hres))
+ {
+ // Get the current executable path
+ TCHAR pszExePath[MAX_PATH];
+ GetModuleFileName(NULL, pszExePath, sizeof(pszExePath));
+
+ TCHAR pszArgs[5] = TEXT("-min");
+
+ // Set the path to the shortcut target
+ psl->SetPath(pszExePath);
+ PathRemoveFileSpec(pszExePath);
+ psl->SetWorkingDirectory(pszExePath);
+ psl->SetShowCmd(SW_SHOWMINNOACTIVE);
+ psl->SetArguments(pszArgs);
+
+ // Query IShellLink for the IPersistFile interface for
+ // saving the shortcut in persistent storage.
+ IPersistFile* ppf = NULL;
+ hres = psl->QueryInterface(IID_IPersistFile,
+ reinterpret_cast<void**>(&ppf));
+ if (SUCCEEDED(hres))
+ {
+ WCHAR pwsz[MAX_PATH];
+ // Ensure that the string is ANSI.
+ MultiByteToWideChar(CP_ACP, 0, StartupShortcutPath().string().c_str(), -1, pwsz, MAX_PATH);
+ // Save the link by calling IPersistFile::Save.
+ hres = ppf->Save(pwsz, TRUE);
+ ppf->Release();
+ psl->Release();
+ CoUninitialize();
+ return true;
+ }
+ psl->Release();
+ }
+ CoUninitialize();
+ return false;
+ }
+ return true;
+}
+
+#elif defined(LINUX)
+
+// Follow the Desktop Application Autostart Spec:
+// http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html
+
+boost::filesystem::path static GetAutostartDir()
+{
+ namespace fs = boost::filesystem;
+
+ char* pszConfigHome = getenv("XDG_CONFIG_HOME");
+ if (pszConfigHome) return fs::path(pszConfigHome) / "autostart";
+ char* pszHome = getenv("HOME");
+ if (pszHome) return fs::path(pszHome) / ".config" / "autostart";
+ return fs::path();
+}
+
+boost::filesystem::path static GetAutostartFilePath()
+{
+ return GetAutostartDir() / "bitcoin.desktop";
+}
+
+bool GetStartOnSystemStartup()
+{
+ boost::filesystem::ifstream optionFile(GetAutostartFilePath());
+ if (!optionFile.good())
+ return false;
+ // Scan through file for "Hidden=true":
+ string line;
+ while (!optionFile.eof())
+ {
+ getline(optionFile, line);
+ if (line.find("Hidden") != string::npos &&
+ line.find("true") != string::npos)
+ return false;
+ }
+ optionFile.close();
+
+ return true;
+}
+
+bool SetStartOnSystemStartup(bool fAutoStart)
+{
+ if (!fAutoStart)
+ boost::filesystem::remove(GetAutostartFilePath());
+ else
+ {
+ char pszExePath[MAX_PATH+1];
+ memset(pszExePath, 0, sizeof(pszExePath));
+ if (readlink("/proc/self/exe", pszExePath, sizeof(pszExePath)-1) == -1)
+ return false;
+
+ boost::filesystem::create_directories(GetAutostartDir());
+
+ boost::filesystem::ofstream optionFile(GetAutostartFilePath(), ios_base::out|ios_base::trunc);
+ if (!optionFile.good())
+ return false;
+ // Write a bitcoin.desktop file to the autostart directory:
+ optionFile << "[Desktop Entry]\n";
+ optionFile << "Type=Application\n";
+ optionFile << "Name=Bitcoin\n";
+ optionFile << "Exec=" << pszExePath << " -min\n";
+ optionFile << "Terminal=false\n";
+ optionFile << "Hidden=false\n";
+ optionFile.close();
+ }
+ return true;
+}
+#else
+
+// TODO: OSX startup stuff; see:
+// http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/CustomLogin.html
+
+bool GetStartOnSystemStartup() { return false; }
+bool SetStartOnSystemStartup(bool fAutoStart) { return false; }
+
+#endif
+
#ifdef DEBUG_LOCKORDER
@@ -1082,25 +1271,25 @@ private:
int sourceLine;
};
-typedef std::vector< std::pair<CCriticalSection*, CLockLocation> > LockStack;
+typedef std::vector< std::pair<void*, CLockLocation> > LockStack;
static boost::interprocess::interprocess_mutex dd_mutex;
-static std::map<std::pair<CCriticalSection*, CCriticalSection*>, LockStack> lockorders;
+static std::map<std::pair<void*, void*>, LockStack> lockorders;
static boost::thread_specific_ptr<LockStack> lockstack;
-static void potential_deadlock_detected(const std::pair<CCriticalSection*, CCriticalSection*>& mismatch, const LockStack& s1, const LockStack& s2)
+static void potential_deadlock_detected(const std::pair<void*, void*>& mismatch, const LockStack& s1, const LockStack& s2)
{
printf("POTENTIAL DEADLOCK DETECTED\n");
printf("Previous lock order was:\n");
- BOOST_FOREACH(const PAIRTYPE(CCriticalSection*, CLockLocation)& i, s2)
+ BOOST_FOREACH(const PAIRTYPE(void*, CLockLocation)& i, s2)
{
if (i.first == mismatch.first) printf(" (1)");
if (i.first == mismatch.second) printf(" (2)");
printf(" %s\n", i.second.ToString().c_str());
}
printf("Current lock order is:\n");
- BOOST_FOREACH(const PAIRTYPE(CCriticalSection*, CLockLocation)& i, s1)
+ BOOST_FOREACH(const PAIRTYPE(void*, CLockLocation)& i, s1)
{
if (i.first == mismatch.first) printf(" (1)");
if (i.first == mismatch.second) printf(" (2)");
@@ -1108,7 +1297,7 @@ static void potential_deadlock_detected(const std::pair<CCriticalSection*, CCrit
}
}
-static void push_lock(CCriticalSection* c, const CLockLocation& locklocation)
+static void push_lock(void* c, const CLockLocation& locklocation, bool fTry)
{
bool fOrderOK = true;
if (lockstack.get() == NULL)
@@ -1119,16 +1308,16 @@ static void push_lock(CCriticalSection* c, const CLockLocation& locklocation)
(*lockstack).push_back(std::make_pair(c, locklocation));
- BOOST_FOREACH(const PAIRTYPE(CCriticalSection*, CLockLocation)& i, (*lockstack))
+ if (!fTry) BOOST_FOREACH(const PAIRTYPE(void*, CLockLocation)& i, (*lockstack))
{
if (i.first == c) break;
- std::pair<CCriticalSection*, CCriticalSection*> p1 = std::make_pair(i.first, c);
+ std::pair<void*, void*> p1 = std::make_pair(i.first, c);
if (lockorders.count(p1))
continue;
lockorders[p1] = (*lockstack);
- std::pair<CCriticalSection*, CCriticalSection*> p2 = std::make_pair(c, i.first);
+ std::pair<void*, void*> p2 = std::make_pair(c, i.first);
if (lockorders.count(p2))
{
potential_deadlock_detected(p1, lockorders[p2], lockorders[p1]);
@@ -1150,62 +1339,14 @@ static void pop_lock()
dd_mutex.unlock();
}
-void CCriticalSection::Enter(const char* pszName, const char* pszFile, int nLine)
+void EnterCritical(const char* pszName, const char* pszFile, int nLine, void* cs, bool fTry)
{
- push_lock(this, CLockLocation(pszName, pszFile, nLine));
-#ifdef DEBUG_LOCKCONTENTION
- bool result = mutex.try_lock();
- if (!result)
- {
- printf("LOCKCONTENTION: %s\n", pszName);
- printf("Locker: %s:%d\n", pszFile, nLine);
- mutex.lock();
- printf("Locked\n");
- }
-#else
- mutex.lock();
-#endif
-}
-void CCriticalSection::Leave()
-{
- mutex.unlock();
- pop_lock();
-}
-bool CCriticalSection::TryEnter(const char* pszName, const char* pszFile, int nLine)
-{
- push_lock(this, CLockLocation(pszName, pszFile, nLine));
- bool result = mutex.try_lock();
- if (!result) pop_lock();
- return result;
-}
-
-#else
-
-void CCriticalSection::Enter(const char* pszName, const char* pszFile, int nLine)
-{
-#ifdef DEBUG_LOCKCONTENTION
- bool result = mutex.try_lock();
- if (!result)
- {
- printf("LOCKCONTENTION: %s\n", pszName);
- printf("Locker: %s:%d\n", pszFile, nLine);
- mutex.lock();
- }
-#else
- mutex.lock();
-#endif
+ push_lock(cs, CLockLocation(pszName, pszFile, nLine), fTry);
}
-void CCriticalSection::Leave()
+void LeaveCritical()
{
- mutex.unlock();
-}
-
-bool CCriticalSection::TryEnter(const char*, const char*, int)
-{
- bool result = mutex.try_lock();
- return result;
+ pop_lock();
}
#endif /* DEBUG_LOCKORDER */
-
diff --git a/src/util.h b/src/util.h
index 19f06521ef..5f8d0375da 100644
--- a/src/util.h
+++ b/src/util.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_UTIL_H
@@ -11,24 +11,34 @@
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
+#else
+typedef int pid_t; /* define for windows compatiblity */
#endif
#include <map>
#include <vector>
#include <string>
#include <boost/thread.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/filesystem/path.hpp>
#include <boost/interprocess/sync/interprocess_recursive_mutex.hpp>
+#include <boost/interprocess/sync/scoped_lock.hpp>
+#include <boost/interprocess/sync/interprocess_condition.hpp>
+#include <boost/interprocess/sync/lock_options.hpp>
#include <boost/date_time/gregorian/gregorian_types.hpp>
#include <boost/date_time/posix_time/posix_time_types.hpp>
#include <openssl/sha.h>
#include <openssl/ripemd.h>
-#include "netbase.h"
+#include "netbase.h" // for AddTimeData
typedef long long int64;
typedef unsigned long long uint64;
+static const int64 COIN = 100000000;
+static const int64 CENT = 1000000;
+
#define loop for (;;)
#define BEGIN(a) ((char*)&(a))
#define END(a) ((char*)&((&(a))[1]))
@@ -85,17 +95,11 @@ T* alignup(T* p)
#define strlwr(psz) to_lower(psz)
#define _strlwr(psz) to_lower(psz)
#define MAX_PATH 1024
-#define Beep(n1,n2) (0)
inline void Sleep(int64 n)
{
- boost::thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(n));
-}
-#endif
-
-#if !defined(QT_GUI)
-inline const char* _(const char* psz)
-{
- return psz;
+ /*Boost has a year 2038 problem— if the request sleep time is past epoch+2^31 seconds the sleep returns instantly.
+ So we clamp our sleeps here to 10 years and hope that boost is fixed by 2028.*/
+ boost::thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(n>315576000000LL?315576000000LL:n));
}
#endif
@@ -112,7 +116,6 @@ extern std::map<std::string, std::vector<std::string> > mapMultiArgs;
extern bool fDebug;
extern bool fPrintToConsole;
extern bool fPrintToDebugger;
-extern char pszSetDataDir[MAX_PATH];
extern bool fRequestShutdown;
extern bool fShutdown;
extern bool fDaemon;
@@ -127,8 +130,15 @@ void RandAddSeed();
void RandAddSeedPerfmon();
int OutputDebugStringF(const char* pszFormat, ...);
int my_snprintf(char* buffer, size_t limit, const char* format, ...);
-std::string strprintf(const std::string &format, ...);
-bool error(const std::string &format, ...);
+
+/* It is not allowed to use va_start with a pass-by-reference argument.
+ (C++ standard, 18.7, paragraph 3). Use a dummy argument to work around this, and use a
+ macro to keep similar semantics.
+*/
+std::string real_strprintf(const std::string &format, int dummy, ...);
+#define strprintf(format, ...) real_strprintf(format, 0, __VA_ARGS__)
+
+bool error(const char *format, ...);
void LogException(std::exception* pex, const char* pszThread);
void PrintException(std::exception* pex, const char* pszThread);
void PrintExceptionContinue(std::exception* pex, const char* pszThread);
@@ -143,20 +153,18 @@ std::vector<unsigned char> DecodeBase64(const char* p, bool* pfInvalid = NULL);
std::string DecodeBase64(const std::string& str);
std::string EncodeBase64(const unsigned char* pch, size_t len);
std::string EncodeBase64(const std::string& str);
-void ParseParameters(int argc, char* argv[]);
+void ParseParameters(int argc, const char*const argv[]);
bool WildcardMatch(const char* psz, const char* mask);
bool WildcardMatch(const std::string& str, const std::string& mask);
int GetFilesize(FILE* file);
-void GetDataDir(char* pszDirRet);
-std::string GetConfigFile();
-std::string GetPidFile();
-void CreatePidFile(std::string pidFile, pid_t pid);
+boost::filesystem::path GetDefaultDataDir();
+const boost::filesystem::path &GetDataDir(bool fNetSpecific = true);
+boost::filesystem::path GetConfigFile();
+boost::filesystem::path GetPidFile();
+void CreatePidFile(const boost::filesystem::path &path, pid_t pid);
void ReadConfigFile(std::map<std::string, std::string>& mapSettingsRet, std::map<std::string, std::vector<std::string> >& mapMultiSettingsRet);
-#ifdef WIN32
-std::string MyGetSpecialFolderPath(int nFolder, bool fCreate);
-#endif
-std::string GetDefaultDataDir();
-std::string GetDataDir();
+bool GetStartOnSystemStartup();
+bool SetStartOnSystemStartup(bool fAutoStart);
void ShrinkDebugFile();
int GetRandInt(int nMax);
uint64 GetRand(uint64 nMax);
@@ -177,87 +185,121 @@ void AddTimeData(const CNetAddr& ip, int64 nTime);
+/** Wrapped boost mutex: supports recursive locking, but no waiting */
+typedef boost::interprocess::interprocess_recursive_mutex CCriticalSection;
-// Wrapper to automatically initialize mutex
-class CCriticalSection
-{
-protected:
- boost::interprocess::interprocess_recursive_mutex mutex;
-public:
- explicit CCriticalSection() { }
- ~CCriticalSection() { }
- void Enter(const char* pszName, const char* pszFile, int nLine);
- void Leave();
- bool TryEnter(const char* pszName, const char* pszFile, int nLine);
-};
+/** Wrapped boost mutex: supports waiting but not recursive locking */
+typedef boost::interprocess::interprocess_mutex CWaitableCriticalSection;
-// Automatically leave critical section when leaving block, needed for exception safety
-class CCriticalBlock
-{
-protected:
- CCriticalSection* pcs;
+#ifdef DEBUG_LOCKORDER
+void EnterCritical(const char* pszName, const char* pszFile, int nLine, void* cs, bool fTry = false);
+void LeaveCritical();
+#else
+void static inline EnterCritical(const char* pszName, const char* pszFile, int nLine, void* cs, bool fTry = false) {}
+void static inline LeaveCritical() {}
+#endif
+/** Wrapper around boost::interprocess::scoped_lock */
+template<typename Mutex>
+class CMutexLock
+{
+private:
+ boost::interprocess::scoped_lock<Mutex> lock;
public:
- CCriticalBlock(CCriticalSection& csIn, const char* pszName, const char* pszFile, int nLine)
+
+ void Enter(const char* pszName, const char* pszFile, int nLine)
{
- pcs = &csIn;
- pcs->Enter(pszName, pszFile, nLine);
+ if (!lock.owns())
+ {
+ EnterCritical(pszName, pszFile, nLine, (void*)(lock.mutex()));
+#ifdef DEBUG_LOCKCONTENTION
+ if (!lock.try_lock())
+ {
+ printf("LOCKCONTENTION: %s\n", pszName);
+ printf("Locker: %s:%d\n", pszFile, nLine);
+ }
+#endif
+ lock.lock();
+ }
}
- operator bool() const
+ void Leave()
{
- return true;
+ if (lock.owns())
+ {
+ lock.unlock();
+ LeaveCritical();
+ }
}
- ~CCriticalBlock()
+ bool TryEnter(const char* pszName, const char* pszFile, int nLine)
{
- pcs->Leave();
+ if (!lock.owns())
+ {
+ EnterCritical(pszName, pszFile, nLine, (void*)(lock.mutex()), true);
+ lock.try_lock();
+ if (!lock.owns())
+ LeaveCritical();
+ }
+ return lock.owns();
}
-};
-
-#define CRITICAL_BLOCK(cs) \
- if (CCriticalBlock criticalblock = CCriticalBlock(cs, #cs, __FILE__, __LINE__))
-class CTryCriticalBlock
-{
-protected:
- CCriticalSection* pcs;
+ CMutexLock(Mutex& mutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) : lock(mutexIn, boost::interprocess::defer_lock)
+ {
+ if (fTry)
+ TryEnter(pszName, pszFile, nLine);
+ else
+ Enter(pszName, pszFile, nLine);
+ }
-public:
- CTryCriticalBlock(CCriticalSection& csIn, const char* pszName, const char* pszFile, int nLine)
+ ~CMutexLock()
{
- pcs = (csIn.TryEnter(pszName, pszFile, nLine) ? &csIn : NULL);
+ if (lock.owns())
+ LeaveCritical();
}
- operator bool() const
+ operator bool()
{
- return Entered();
+ return lock.owns();
}
- ~CTryCriticalBlock()
+ boost::interprocess::scoped_lock<Mutex> &GetLock()
{
- if (pcs)
- {
- pcs->Leave();
- }
+ return lock;
}
- bool Entered() const { return pcs != NULL; }
};
-#define TRY_CRITICAL_BLOCK(cs) \
- if (CTryCriticalBlock criticalblock = CTryCriticalBlock(cs, #cs, __FILE__, __LINE__))
-
-
+typedef CMutexLock<CCriticalSection> CCriticalBlock;
+typedef CMutexLock<CWaitableCriticalSection> CWaitableCriticalBlock;
+typedef boost::interprocess::interprocess_condition CConditionVariable;
+/** Wait for a given condition inside a WAITABLE_CRITICAL_BLOCK */
+#define WAIT(name,condition) \
+ do { while(!(condition)) { (name).wait(waitablecriticalblock.GetLock()); } } while(0)
+/** Notify waiting threads that a condition may hold now */
+#define NOTIFY(name) \
+ do { (name).notify_one(); } while(0)
+#define NOTIFY_ALL(name) \
+ do { (name).notify_all(); } while(0)
-// This is exactly like std::string, but with a custom allocator.
-// (secure_allocator<> is defined in serialize.h)
-typedef std::basic_string<char, std::char_traits<char>, secure_allocator<char> > SecureString;
-
+#define LOCK(cs) CCriticalBlock criticalblock(cs, #cs, __FILE__, __LINE__)
+#define LOCK2(cs1,cs2) CCriticalBlock criticalblock1(cs1, #cs1, __FILE__, __LINE__),criticalblock2(cs2, #cs2, __FILE__, __LINE__)
+#define TRY_LOCK(cs,name) CCriticalBlock name(cs, #cs, __FILE__, __LINE__, true)
+#define WAITABLE_LOCK(cs) CWaitableCriticalBlock waitablecriticalblock(cs, #cs, __FILE__, __LINE__)
+#define ENTER_CRITICAL_SECTION(cs) \
+ { \
+ EnterCritical(#cs, __FILE__, __LINE__, (void*)(&cs)); \
+ (cs).lock(); \
+ }
+#define LEAVE_CRITICAL_SECTION(cs) \
+ { \
+ (cs).unlock(); \
+ LeaveCritical(); \
+ }
inline std::string i64tostr(int64 n)
@@ -311,15 +353,20 @@ inline int64 abs64(int64 n)
template<typename T>
std::string HexStr(const T itbegin, const T itend, bool fSpaces=false)
{
- if (itbegin == itend)
- return "";
- const unsigned char* pbegin = (const unsigned char*)&itbegin[0];
- const unsigned char* pend = pbegin + (itend - itbegin) * sizeof(itbegin[0]);
- std::string str;
- str.reserve((pend-pbegin) * (fSpaces ? 3 : 2));
- for (const unsigned char* p = pbegin; p != pend; p++)
- str += strprintf((fSpaces && p != pend-1 ? "%02x " : "%02x"), *p);
- return str;
+ std::vector<char> rv;
+ static char hexmap[16] = { '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
+ rv.reserve((itend-itbegin)*3);
+ for(T it = itbegin; it < itend; ++it)
+ {
+ unsigned char val = (unsigned char)(*it);
+ if(fSpaces && it != itbegin)
+ rv.push_back(' ');
+ rv.push_back(hexmap[val>>4]);
+ rv.push_back(hexmap[val&15]);
+ }
+
+ return std::string(rv.begin(), rv.end());
}
inline std::string HexStr(const std::vector<unsigned char>& vch, bool fSpaces=false)
@@ -328,25 +375,6 @@ inline std::string HexStr(const std::vector<unsigned char>& vch, bool fSpaces=fa
}
template<typename T>
-std::string HexNumStr(const T itbegin, const T itend, bool f0x=true)
-{
- if (itbegin == itend)
- return "";
- const unsigned char* pbegin = (const unsigned char*)&itbegin[0];
- const unsigned char* pend = pbegin + (itend - itbegin) * sizeof(itbegin[0]);
- std::string str = (f0x ? "0x" : "");
- str.reserve(str.size() + (pend-pbegin) * 2);
- for (const unsigned char* p = pend-1; p >= pbegin; p--)
- str += strprintf("%02x", *p);
- return str;
-}
-
-inline std::string HexNumStr(const std::vector<unsigned char>& vch, bool f0x=true)
-{
- return HexNumStr(vch.begin(), vch.end(), f0x);
-}
-
-template<typename T>
void PrintHex(const T pbegin, const T pend, const char* pszFormat="%s", bool fSpaces=true)
{
printf(pszFormat, HexStr(pbegin, pend, fSpaces).c_str());
@@ -401,30 +429,32 @@ inline bool IsSwitchChar(char c)
#endif
}
-inline std::string GetArg(const std::string& strArg, const std::string& strDefault)
-{
- if (mapArgs.count(strArg))
- return mapArgs[strArg];
- return strDefault;
-}
+/**
+ * Return string argument or default value
+ *
+ * @param strArg Argument to get (e.g. "-foo")
+ * @param default (e.g. "1")
+ * @return command-line argument or default value
+ */
+std::string GetArg(const std::string& strArg, const std::string& strDefault);
-inline int64 GetArg(const std::string& strArg, int64 nDefault)
-{
- if (mapArgs.count(strArg))
- return atoi64(mapArgs[strArg]);
- return nDefault;
-}
+/**
+ * Return integer argument or default value
+ *
+ * @param strArg Argument to get (e.g. "-foo")
+ * @param default (e.g. 1)
+ * @return command-line argument (0 if invalid number) or default value
+ */
+int64 GetArg(const std::string& strArg, int64 nDefault);
-inline bool GetBoolArg(const std::string& strArg, bool fDefault=false)
-{
- if (mapArgs.count(strArg))
- {
- if (mapArgs[strArg].empty())
- return true;
- return (atoi(mapArgs[strArg]) != 0);
- }
- return fDefault;
-}
+/**
+ * Return boolean argument or default value
+ *
+ * @param strArg Argument to get (e.g. "-foo")
+ * @param default (true or false)
+ * @return command-line argument or default value
+ */
+bool GetBoolArg(const std::string& strArg, bool fDefault=false);
/**
* Set an argument if it doesn't already have a value
@@ -442,7 +472,7 @@ bool SoftSetArg(const std::string& strArg, const std::string& strValue);
* @param fValue Value (e.g. false)
* @return true if argument gets set, false if it already had a value
*/
-bool SoftSetArg(const std::string& strArg, bool fValue);
+bool SoftSetBoolArg(const std::string& strArg, bool fValue);
@@ -465,21 +495,6 @@ bool SoftSetArg(const std::string& strArg, bool fValue);
} \
}
-#define CATCH_PRINT_EXCEPTION(pszFn) \
- catch (std::exception& e) { \
- PrintException(&e, (pszFn)); \
- } catch (...) { \
- PrintException(NULL, (pszFn)); \
- }
-
-
-
-
-
-
-
-
-
template<typename T1>
inline uint256 Hash(const T1 pbegin, const T1 pend)
@@ -548,16 +563,17 @@ inline uint160 Hash160(const std::vector<unsigned char>& vch)
}
-// Median filter over a stream of values
-// Returns the median of the last N numbers
+/** Median filter over a stream of values.
+ * Returns the median of the last N numbers
+ */
template <typename T> class CMedianFilter
{
private:
std::vector<T> vValues;
std::vector<T> vSorted;
- int nSize;
+ unsigned int nSize;
public:
- CMedianFilter(int size, T initial_value):
+ CMedianFilter(unsigned int size, T initial_value):
nSize(size)
{
vValues.reserve(size);
@@ -679,11 +695,6 @@ inline void SetThreadPriority(int nPriority)
#endif
}
-inline bool TerminateThread(pthread_t hthread, unsigned int nExitCode)
-{
- return (pthread_cancel(hthread) == 0);
-}
-
inline void ExitThread(size_t nExitCode)
{
pthread_exit((void*)nExitCode);
@@ -694,26 +705,6 @@ inline void ExitThread(size_t nExitCode)
-inline bool AffinityBugWorkaround(void(*pfn)(void*))
-{
-#ifdef WIN32
- // Sometimes after a few hours affinity gets stuck on one processor
- DWORD_PTR dwProcessAffinityMask = -1;
- DWORD_PTR dwSystemAffinityMask = -1;
- GetProcessAffinityMask(GetCurrentProcess(), &dwProcessAffinityMask, &dwSystemAffinityMask);
- DWORD dwPrev1 = SetThreadAffinityMask(GetCurrentThread(), dwProcessAffinityMask);
- DWORD dwPrev2 = SetThreadAffinityMask(GetCurrentThread(), dwProcessAffinityMask);
- if (dwPrev2 != dwProcessAffinityMask)
- {
- printf("AffinityBugWorkaround() : SetThreadAffinityMask=%d, ProcessAffinityMask=%d, restarting thread\n", dwPrev2, dwProcessAffinityMask);
- if (!CreateThread(pfn, NULL))
- printf("Error: CreateThread() failed\n");
- return true;
- }
-#endif
- return false;
-}
-
inline uint32_t ByteReverse(uint32_t value)
{
value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8);
diff --git a/src/version.cpp b/src/version.cpp
new file mode 100644
index 0000000000..0c1e8bfa80
--- /dev/null
+++ b/src/version.cpp
@@ -0,0 +1,67 @@
+// Copyright (c) 2012 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#include <string>
+
+#include "version.h"
+
+// Name of client reported in the 'version' message. Report the same name
+// for both bitcoind and bitcoin-qt, to make it harder for attackers to
+// target servers or GUI users specifically.
+const std::string CLIENT_NAME("Satoshi");
+
+// Client version number
+#define CLIENT_VERSION_SUFFIX "-beta"
+
+
+// The following part of the code determines the CLIENT_BUILD variable.
+// Several mechanisms are used for this:
+// * first, if HAVE_BUILD_INFO is defined, include build.h, a file that is
+// generated by the build environment, possibly containing the output
+// of git-describe in a macro called BUILD_DESC
+// * secondly, if this is an exported version of the code, GIT_ARCHIVE will
+// be defined (automatically using the export-subst git attribute), and
+// GIT_COMMIT will contain the commit id.
+// * then, three options exist for determining CLIENT_BUILD:
+// * if BUILD_DESC is defined, use that literally (output of git-describe)
+// * if not, but GIT_COMMIT is defined, use v[maj].[min].[rev].[build]-g[commit]
+// * otherwise, use v[maj].[min].[rev].[build]-unk
+// finally CLIENT_VERSION_SUFFIX is added
+
+// First, include build.h if requested
+#ifdef HAVE_BUILD_INFO
+# include "build.h"
+#endif
+
+// git will put "#define GIT_ARCHIVE 1" on the next line inside archives. $Format:%n#define GIT_ARCHIVE 1$
+#ifdef GIT_ARCHIVE
+# define GIT_COMMIT_ID "$Format:%h$"
+# define GIT_COMMIT_DATE "$Format:%cD"
+#endif
+
+#define STRINGIFY(s) #s
+
+#define BUILD_DESC_FROM_COMMIT(maj,min,rev,build,commit) \
+ "v" STRINGIFY(maj) "." STRINGIFY(min) "." STRINGIFY(rev) "." STRINGIFY(build) "-g" commit
+
+#define BUILD_DESC_FROM_UNKNOWN(maj,min,rev,build) \
+ "v" STRINGIFY(maj) "." STRINGIFY(min) "." STRINGIFY(rev) "." STRINGIFY(build) "-unk"
+
+#ifndef BUILD_DESC
+# ifdef GIT_COMMIT_ID
+# define BUILD_DESC BUILD_DESC_FROM_COMMIT(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, GIT_COMMIT_ID)
+# else
+# define BUILD_DESC BUILD_DESC_FROM_UNKNOWN(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD)
+# endif
+#endif
+
+#ifndef BUILD_DATE
+# ifdef GIT_COMMIT_DATE
+# define BUILD_DATE GIT_COMMIT_DATE
+# else
+# define BUILD_DATE __DATE__ ", " __TIME__
+# endif
+#endif
+
+const std::string CLIENT_BUILD(BUILD_DESC CLIENT_VERSION_SUFFIX);
+const std::string CLIENT_DATE(BUILD_DATE);
diff --git a/src/version.h b/src/version.h
new file mode 100644
index 0000000000..9b92bd618e
--- /dev/null
+++ b/src/version.h
@@ -0,0 +1,48 @@
+// Copyright (c) 2012 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#ifndef BITCOIN_VERSION_H
+#define BITCOIN_VERSION_H
+
+#include <string>
+
+//
+// client versioning
+//
+
+static const int CLIENT_VERSION_MAJOR = 0;
+static const int CLIENT_VERSION_MINOR = 6;
+static const int CLIENT_VERSION_REVISION = 1;
+static const int CLIENT_VERSION_BUILD = 3;
+
+static const int CLIENT_VERSION =
+ 1000000 * CLIENT_VERSION_MAJOR
+ + 10000 * CLIENT_VERSION_MINOR
+ + 100 * CLIENT_VERSION_REVISION
+ + 1 * CLIENT_VERSION_BUILD;
+
+extern const std::string CLIENT_NAME;
+extern const std::string CLIENT_BUILD;
+extern const std::string CLIENT_DATE;
+
+//
+// network protocol versioning
+//
+
+static const int PROTOCOL_VERSION = 60001;
+
+// earlier versions not supported as of Feb 2012, and are disconnected
+static const int MIN_PROTO_VERSION = 209;
+
+// nTime field added to CAddress, starting with this version;
+// if possible, avoid requesting addresses nodes older than this
+static const int CADDR_TIME_VERSION = 31402;
+
+// only request blocks from nodes outside this range of versions
+static const int NOBLKS_VERSION_START = 32000;
+static const int NOBLKS_VERSION_END = 32400;
+
+// BIP 0031, pong message, is enabled for all versions AFTER this one
+static const int BIP0031_VERSION = 60000;
+
+#endif
diff --git a/src/wallet.cpp b/src/wallet.cpp
index a196044f1f..998909897f 100644
--- a/src/wallet.cpp
+++ b/src/wallet.cpp
@@ -1,11 +1,12 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-#include "headers.h"
-#include "db.h"
+#include "wallet.h"
+#include "walletdb.h"
#include "crypter.h"
+#include "ui_interface.h"
using namespace std;
@@ -15,6 +16,23 @@ using namespace std;
// mapWallet
//
+std::vector<unsigned char> CWallet::GenerateNewKey()
+{
+ bool fCompressed = CanSupportFeature(FEATURE_COMPRPUBKEY); // default to compressed public keys if we want 0.6.0 wallets
+
+ RandAddSeedPerfmon();
+ CKey key;
+ key.MakeNewKey(fCompressed);
+
+ // Compressed public keys were introduced in version 0.6.0
+ if (fCompressed)
+ SetMinVersion(FEATURE_COMPRPUBKEY);
+
+ if (!AddKey(key))
+ throw std::runtime_error("CWallet::GenerateNewKey() : AddKey failed");
+ return key.GetPubKey();
+}
+
bool CWallet::AddKey(const CKey& key)
{
if (!CCryptoKeyStore::AddKey(key))
@@ -32,8 +50,8 @@ bool CWallet::AddCryptedKey(const vector<unsigned char> &vchPubKey, const vector
return false;
if (!fFileBacked)
return true;
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
if (pwalletdbEncryption)
return pwalletdbEncryption->WriteCryptedKey(vchPubKey, vchCryptedSecret);
else
@@ -59,7 +77,8 @@ bool CWallet::Unlock(const SecureString& strWalletPassphrase)
CCrypter crypter;
CKeyingMaterial vMasterKey;
- CRITICAL_BLOCK(cs_wallet)
+ {
+ LOCK(cs_wallet);
BOOST_FOREACH(const MasterKeyMap::value_type& pMasterKey, mapMasterKeys)
{
if(!crypter.SetKeyFromPassphrase(strWalletPassphrase, pMasterKey.second.vchSalt, pMasterKey.second.nDeriveIterations, pMasterKey.second.nDerivationMethod))
@@ -69,6 +88,7 @@ bool CWallet::Unlock(const SecureString& strWalletPassphrase)
if (CCryptoKeyStore::Unlock(vMasterKey))
return true;
}
+ }
return false;
}
@@ -76,8 +96,8 @@ bool CWallet::ChangeWalletPassphrase(const SecureString& strOldWalletPassphrase,
{
bool fWasLocked = IsLocked();
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
Lock();
CCrypter crypter;
@@ -118,6 +138,11 @@ bool CWallet::ChangeWalletPassphrase(const SecureString& strOldWalletPassphrase,
return false;
}
+void CWallet::SetBestChain(const CBlockLocator& loc)
+{
+ CWalletDB walletdb(strWalletFile);
+ walletdb.WriteBestBlock(loc);
+}
// This class implements an addrIncoming entry that causes pre-0.4
// clients to crash on startup if reading a private-key-encrypted wallet.
@@ -131,6 +156,50 @@ public:
)
};
+bool CWallet::SetMinVersion(enum WalletFeature nVersion, CWalletDB* pwalletdbIn, bool fExplicit)
+{
+ if (nWalletVersion >= nVersion)
+ return true;
+
+ // when doing an explicit upgrade, if we pass the max version permitted, upgrade all the way
+ if (fExplicit && nVersion > nWalletMaxVersion)
+ nVersion = FEATURE_LATEST;
+
+ nWalletVersion = nVersion;
+
+ if (nVersion > nWalletMaxVersion)
+ nWalletMaxVersion = nVersion;
+
+ if (fFileBacked)
+ {
+ CWalletDB* pwalletdb = pwalletdbIn ? pwalletdbIn : new CWalletDB(strWalletFile);
+ if (nWalletVersion >= 40000)
+ {
+ // Versions prior to 0.4.0 did not support the "minversion" record.
+ // Use a CCorruptAddress to make them crash instead.
+ CCorruptAddress corruptAddress;
+ pwalletdb->WriteSetting("addrIncoming", corruptAddress);
+ }
+ if (nWalletVersion > 40000)
+ pwalletdb->WriteMinVersion(nWalletVersion);
+ if (!pwalletdbIn)
+ delete pwalletdb;
+ }
+
+ return true;
+}
+
+bool CWallet::SetMaxVersion(int nVersion)
+{
+ // cannot downgrade below current version
+ if (nWalletVersion > nVersion)
+ return false;
+
+ nWalletMaxVersion = nVersion;
+
+ return true;
+}
+
bool CWallet::EncryptWallet(const SecureString& strWalletPassphrase)
{
if (IsCrypted())
@@ -167,8 +236,8 @@ bool CWallet::EncryptWallet(const SecureString& strWalletPassphrase)
if (!crypter.Encrypt(vMasterKey, kMasterKey.vchCryptedKey))
return false;
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
mapMasterKeys[++nMasterKeyMaxID] = kMasterKey;
if (fFileBacked)
{
@@ -184,14 +253,15 @@ bool CWallet::EncryptWallet(const SecureString& strWalletPassphrase)
exit(1); //We now probably have half of our keys encrypted in memory, and half not...die and let the user reload their unencrypted wallet.
}
+ // Encryption was introduced in version 0.4.0
+ SetMinVersion(FEATURE_WALLETCRYPT, pwalletdbEncryption, true);
+
if (fFileBacked)
{
- CCorruptAddress corruptAddress;
- pwalletdbEncryption->WriteSetting("addrIncoming", corruptAddress);
if (!pwalletdbEncryption->TxnCommit())
exit(1); //We now have keys encrypted in memory, but no on disk...die to avoid confusion and let the user reload their unencrypted wallet.
- pwalletdbEncryption->Close();
+ delete pwalletdbEncryption;
pwalletdbEncryption = NULL;
}
@@ -213,8 +283,8 @@ void CWallet::WalletUpdateSpent(const CTransaction &tx)
// Anytime a signature is successfully verified, it's proof the outpoint is spent.
// Update the wallet spent flag if it doesn't know due to wallet.dat being
// restored from backup or the user making copies of wallet.dat.
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
BOOST_FOREACH(const CTxIn& txin, tx.vin)
{
map<uint256, CWalletTx>::iterator mi = mapWallet.find(txin.prevout.hash);
@@ -235,8 +305,8 @@ void CWallet::WalletUpdateSpent(const CTransaction &tx)
void CWallet::MarkDirty()
{
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
BOOST_FOREACH(PAIRTYPE(const uint256, CWalletTx)& item, mapWallet)
item.second.MarkDirty();
}
@@ -245,8 +315,8 @@ void CWallet::MarkDirty()
bool CWallet::AddToWallet(const CWalletTx& wtxIn)
{
uint256 hash = wtxIn.GetHash();
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
// Inserts only if not already there, returns tx inserted or tx found
pair<map<uint256, CWalletTx>::iterator, bool> ret = mapWallet.insert(make_pair(hash, wtxIn));
CWalletTx& wtx = (*ret.first).second;
@@ -320,8 +390,8 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn)
bool CWallet::AddToWalletIfInvolvingMe(const CTransaction& tx, const CBlock* pblock, bool fUpdate, bool fFindBlock)
{
uint256 hash = tx.GetHash();
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
bool fExisted = mapWallet.count(hash);
if (fExisted && !fUpdate) return false;
if (fExisted || IsMine(tx) || IsFromMe(tx))
@@ -342,8 +412,8 @@ bool CWallet::EraseFromWallet(uint256 hash)
{
if (!fFileBacked)
return false;
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
if (mapWallet.erase(hash))
CWalletDB(strWalletFile).EraseTx(hash);
}
@@ -353,8 +423,8 @@ bool CWallet::EraseFromWallet(uint256 hash)
bool CWallet::IsMine(const CTxIn &txin) const
{
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
map<uint256, CWalletTx>::const_iterator mi = mapWallet.find(txin.prevout.hash);
if (mi != mapWallet.end())
{
@@ -369,8 +439,8 @@ bool CWallet::IsMine(const CTxIn &txin) const
int64 CWallet::GetDebit(const CTxIn &txin) const
{
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
map<uint256, CWalletTx>::const_iterator mi = mapWallet.find(txin.prevout.hash);
if (mi != mapWallet.end())
{
@@ -395,9 +465,11 @@ bool CWallet::IsChange(const CTxOut& txout) const
// 'the change' will need to be implemented (maybe extend CWalletTx to remember
// which output, if any, was change).
if (ExtractAddress(txout.scriptPubKey, address) && HaveKey(address))
- CRITICAL_BLOCK(cs_wallet)
- if (!mapAddressBook.count(address))
- return true;
+ {
+ LOCK(cs_wallet);
+ if (!mapAddressBook.count(address))
+ return true;
+ }
return false;
}
@@ -410,8 +482,8 @@ int CWalletTx::GetRequestCount() const
{
// Returns -1 if it wasn't being tracked
int nRequests = -1;
- CRITICAL_BLOCK(pwallet->cs_wallet)
{
+ LOCK(pwallet->cs_wallet);
if (IsCoinBase())
{
// Generated block
@@ -515,8 +587,8 @@ void CWalletTx::GetAccountAmounts(const string& strAccount, int64& nGenerated, i
nSent += s.second;
nFee = allFee;
}
- CRITICAL_BLOCK(pwallet->cs_wallet)
{
+ LOCK(pwallet->cs_wallet);
BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64)& r, listReceived)
{
if (pwallet->mapAddressBook.count(r.first))
@@ -545,11 +617,11 @@ void CWalletTx::AddSupportingTransactions(CTxDB& txdb)
vWorkQueue.push_back(txin.prevout.hash);
// This critsect is OK because txdb is already open
- CRITICAL_BLOCK(pwallet->cs_wallet)
{
+ LOCK(pwallet->cs_wallet);
map<uint256, const CMerkleTx*> mapWalletPrev;
set<uint256> setAlreadyDone;
- for (int i = 0; i < vWorkQueue.size(); i++)
+ for (unsigned int i = 0; i < vWorkQueue.size(); i++)
{
uint256 hash = vWorkQueue[i];
if (setAlreadyDone.count(hash))
@@ -582,8 +654,10 @@ void CWalletTx::AddSupportingTransactions(CTxDB& txdb)
vtxPrev.push_back(tx);
if (nDepth < COPY_DEPTH)
+ {
BOOST_FOREACH(const CTxIn& txin, tx.vin)
vWorkQueue.push_back(txin.prevout.hash);
+ }
}
}
}
@@ -604,8 +678,8 @@ int CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool fUpdate)
int ret = 0;
CBlockIndex* pindex = pindexStart;
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
while (pindex)
{
CBlock block;
@@ -634,8 +708,9 @@ void CWallet::ReacceptWalletTransactions()
{
CTxDB txdb("r");
bool fRepeat = true;
- while (fRepeat) CRITICAL_BLOCK(cs_wallet)
+ while (fRepeat)
{
+ LOCK(cs_wallet);
fRepeat = false;
vector<CDiskTxPos> vMissingTx;
BOOST_FOREACH(PAIRTYPE(const uint256, CWalletTx)& item, mapWallet)
@@ -654,7 +729,7 @@ void CWallet::ReacceptWalletTransactions()
printf("ERROR: ReacceptWalletTransactions() : txindex.vSpent.size() %d != wtx.vout.size() %d\n", txindex.vSpent.size(), wtx.vout.size());
continue;
}
- for (int i = 0; i < txindex.vSpent.size(); i++)
+ for (unsigned int i = 0; i < txindex.vSpent.size(); i++)
{
if (wtx.IsSpent(i))
continue;
@@ -737,8 +812,8 @@ void CWallet::ResendWalletTransactions()
// Rebroadcast any of our txes that aren't in a block yet
printf("ResendWalletTransactions()\n");
CTxDB txdb("r");
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
// Sort them in chronological order
multimap<unsigned int, CWalletTx*> mapSorted;
BOOST_FOREACH(PAIRTYPE(const uint256, CWalletTx)& item, mapWallet)
@@ -771,8 +846,8 @@ void CWallet::ResendWalletTransactions()
int64 CWallet::GetBalance() const
{
int64 nTotal = 0;
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it)
{
const CWalletTx* pcoin = &(*it).second;
@@ -788,8 +863,8 @@ int64 CWallet::GetBalance() const
int64 CWallet::GetUnconfirmedBalance() const
{
int64 nTotal = 0;
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it)
{
const CWalletTx* pcoin = &(*it).second;
@@ -813,8 +888,8 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
vector<pair<int64, pair<const CWalletTx*,unsigned int> > > vValue;
int64 nTotalLower = 0;
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
vector<const CWalletTx*> vCoins;
vCoins.reserve(mapWallet.size());
for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it)
@@ -833,7 +908,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
if (nDepth < (pcoin->IsFromMe() ? nConfMine : nConfTheirs))
continue;
- for (int i = 0; i < pcoin->vout.size(); i++)
+ for (unsigned int i = 0; i < pcoin->vout.size(); i++)
{
if (pcoin->IsSpent(i) || !IsMine(pcoin->vout[i]))
continue;
@@ -866,7 +941,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
if (nTotalLower == nTargetValue || nTotalLower == nTargetValue + CENT)
{
- for (int i = 0; i < vValue.size(); ++i)
+ for (unsigned int i = 0; i < vValue.size(); ++i)
{
setCoinsRet.insert(vValue[i].second);
nValueRet += vValue[i].first;
@@ -899,7 +974,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
bool fReachedTarget = false;
for (int nPass = 0; nPass < 2 && !fReachedTarget; nPass++)
{
- for (int i = 0; i < vValue.size(); i++)
+ for (unsigned int i = 0; i < vValue.size(); i++)
{
if (nPass == 0 ? rand() % 2 : !vfIncluded[i])
{
@@ -928,7 +1003,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
nValueRet += coinLowestLarger.first;
}
else {
- for (int i = 0; i < vValue.size(); i++)
+ for (unsigned int i = 0; i < vValue.size(); i++)
if (vfBest[i])
{
setCoinsRet.insert(vValue[i].second);
@@ -937,7 +1012,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
//// debug print
printf("SelectCoins() best subset: ");
- for (int i = 0; i < vValue.size(); i++)
+ for (unsigned int i = 0; i < vValue.size(); i++)
if (vfBest[i])
printf("%s ", FormatMoney(vValue[i].first).c_str());
printf("total %s\n", FormatMoney(nBest).c_str());
@@ -970,9 +1045,8 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
wtxNew.BindWallet(this);
- CRITICAL_BLOCK(cs_main)
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK2(cs_main, cs_wallet);
// txdb must be opened before the mapWallet lock
CTxDB txdb("r");
{
@@ -1048,7 +1122,7 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
return false;
// Limit size
- unsigned int nBytes = ::GetSerializeSize(*(CTransaction*)&wtxNew, SER_NETWORK);
+ unsigned int nBytes = ::GetSerializeSize(*(CTransaction*)&wtxNew, SER_NETWORK, PROTOCOL_VERSION);
if (nBytes >= MAX_BLOCK_SIZE_GEN/5)
return false;
dPriority /= nBytes;
@@ -1084,9 +1158,8 @@ bool CWallet::CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& w
// Call after CreateTransaction unless you want to abort
bool CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey)
{
- CRITICAL_BLOCK(cs_main)
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK2(cs_main, cs_wallet);
printf("CommitTransaction:\n%s", wtxNew.ToString().c_str());
{
// This is only to keep the database open to defeat the auto-flush for the
@@ -1157,7 +1230,7 @@ string CWallet::SendMoney(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew,
return strError;
}
- if (fAskFee && !ThreadSafeAskFee(nFeeRequired, _("Sending..."), NULL))
+ if (fAskFee && !ThreadSafeAskFee(nFeeRequired, _("Sending...")))
return "ABORTED";
if (!CommitTransaction(wtxNew, reservekey))
@@ -1209,19 +1282,6 @@ int CWallet::LoadWallet(bool& fFirstRunRet)
return nLoadWalletRet;
fFirstRunRet = vchDefaultKey.empty();
- if (!HaveKey(Hash160(vchDefaultKey)))
- {
- // Create new keyUser and set as default key
- RandAddSeedPerfmon();
-
- std::vector<unsigned char> newDefaultKey;
- if (!GetKeyFromPool(newDefaultKey, false))
- return DB_LOAD_FAIL;
- SetDefaultKey(newDefaultKey);
- if (!SetAddressBookName(CBitcoinAddress(vchDefaultKey), ""))
- return DB_LOAD_FAIL;
- }
-
CreateThread(ThreadFlushWalletDB, &strWalletFile);
return DB_LOAD_OK;
}
@@ -1230,6 +1290,7 @@ int CWallet::LoadWallet(bool& fFirstRunRet)
bool CWallet::SetAddressBookName(const CBitcoinAddress& address, const string& strName)
{
mapAddressBook[address] = strName;
+ AddressBookRepaint();
if (!fFileBacked)
return false;
return CWalletDB(strWalletFile).WriteName(address.ToString(), strName);
@@ -1238,6 +1299,7 @@ bool CWallet::SetAddressBookName(const CBitcoinAddress& address, const string& s
bool CWallet::DelAddressBookName(const CBitcoinAddress& address)
{
mapAddressBook.erase(address);
+ AddressBookRepaint();
if (!fFileBacked)
return false;
return CWalletDB(strWalletFile).EraseName(address.ToString());
@@ -1246,8 +1308,8 @@ bool CWallet::DelAddressBookName(const CBitcoinAddress& address)
void CWallet::PrintWallet(const CBlock& block)
{
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
if (mapWallet.count(block.vtx[0].GetHash()))
{
CWalletTx& wtx = mapWallet[block.vtx[0].GetHash()];
@@ -1259,8 +1321,8 @@ void CWallet::PrintWallet(const CBlock& block)
bool CWallet::GetTransaction(const uint256 &hashTx, CWalletTx& wtx)
{
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
map<uint256, CWalletTx>::iterator mi = mapWallet.find(hashTx);
if (mi != mapWallet.end())
{
@@ -1296,8 +1358,8 @@ bool GetWalletFile(CWallet* pwallet, string &strWalletFileOut)
//
bool CWallet::NewKeyPool()
{
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
CWalletDB walletdb(strWalletFile);
BOOST_FOREACH(int64 nIndex, setKeyPool)
walletdb.ErasePool(nIndex);
@@ -1320,16 +1382,17 @@ bool CWallet::NewKeyPool()
bool CWallet::TopUpKeyPool()
{
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
+
if (IsLocked())
return false;
CWalletDB walletdb(strWalletFile);
// Top up key pool
- int64 nTargetSize = max(GetArg("-keypool", 100), (int64)0);
- while (setKeyPool.size() < nTargetSize+1)
+ unsigned int nTargetSize = max(GetArg("-keypool", 100), 0LL);
+ while (setKeyPool.size() < (nTargetSize + 1))
{
int64 nEnd = 1;
if (!setKeyPool.empty())
@@ -1347,8 +1410,9 @@ void CWallet::ReserveKeyFromKeyPool(int64& nIndex, CKeyPool& keypool)
{
nIndex = -1;
keypool.vchPubKey.clear();
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
+
if (!IsLocked())
TopUpKeyPool();
@@ -1371,9 +1435,8 @@ void CWallet::ReserveKeyFromKeyPool(int64& nIndex, CKeyPool& keypool)
int64 CWallet::AddReserveKey(const CKeyPool& keypool)
{
- CRITICAL_BLOCK(cs_main)
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK2(cs_main, cs_wallet);
CWalletDB walletdb(strWalletFile);
int64 nIndex = 1 + *(--setKeyPool.end());
@@ -1399,8 +1462,10 @@ void CWallet::KeepKey(int64 nIndex)
void CWallet::ReturnKey(int64 nIndex)
{
// Return to key pool
- CRITICAL_BLOCK(cs_wallet)
+ {
+ LOCK(cs_wallet);
setKeyPool.insert(nIndex);
+ }
printf("keypool return %"PRI64d"\n", nIndex);
}
@@ -1408,8 +1473,8 @@ bool CWallet::GetKeyFromPool(vector<unsigned char>& result, bool fAllowReuse)
{
int64 nIndex = 0;
CKeyPool keypool;
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
ReserveKeyFromKeyPool(nIndex, keypool);
if (nIndex == -1)
{
@@ -1479,8 +1544,7 @@ void CWallet::GetAllReserveAddresses(set<CBitcoinAddress>& setAddress)
CWalletDB walletdb(strWalletFile);
- CRITICAL_BLOCK(cs_main)
- CRITICAL_BLOCK(cs_wallet)
+ LOCK2(cs_main, cs_wallet);
BOOST_FOREACH(const int64& id, setKeyPool)
{
CKeyPool keypool;
diff --git a/src/wallet.h b/src/wallet.h
index 113210461d..44c11e2ec4 100644
--- a/src/wallet.h
+++ b/src/wallet.h
@@ -1,11 +1,11 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_WALLET_H
#define BITCOIN_WALLET_H
-#include "bignum.h"
+#include "main.h"
#include "key.h"
#include "keystore.h"
#include "script.h"
@@ -14,9 +14,48 @@ class CWalletTx;
class CReserveKey;
class CWalletDB;
-// A CWallet is an extension of a keystore, which also maintains a set of
-// transactions and balances, and provides the ability to create new
-// transactions
+/** (client) version numbers for particular wallet features */
+enum WalletFeature
+{
+ FEATURE_BASE = 10500, // the earliest version new wallets supports (only useful for getinfo's clientversion output)
+
+ FEATURE_WALLETCRYPT = 40000, // wallet encryption
+ FEATURE_COMPRPUBKEY = 60000, // compressed public keys
+
+ FEATURE_LATEST = 60000
+};
+
+
+/** A key pool entry */
+class CKeyPool
+{
+public:
+ int64 nTime;
+ std::vector<unsigned char> vchPubKey;
+
+ CKeyPool()
+ {
+ nTime = GetTime();
+ }
+
+ CKeyPool(const std::vector<unsigned char>& vchPubKeyIn)
+ {
+ nTime = GetTime();
+ vchPubKey = vchPubKeyIn;
+ }
+
+ IMPLEMENT_SERIALIZE
+ (
+ if (!(nType & SER_GETHASH))
+ READWRITE(nVersion);
+ READWRITE(nTime);
+ READWRITE(vchPubKey);
+ )
+};
+
+/** A CWallet is an extension of a keystore, which also maintains a set of transactions and balances,
+ * and provides the ability to create new transactions.
+ */
class CWallet : public CCryptoKeyStore
{
private:
@@ -25,6 +64,12 @@ private:
CWalletDB *pwalletdbEncryption;
+ // the current wallet version: clients below this version are not able to load the wallet
+ int nWalletVersion;
+
+ // the maxmimum wallet format version: memory-only variable that specifies to what version this wallet may be upgraded
+ int nWalletMaxVersion;
+
public:
mutable CCriticalSection cs_wallet;
@@ -33,18 +78,23 @@ public:
std::set<int64> setKeyPool;
+
typedef std::map<unsigned int, CMasterKey> MasterKeyMap;
MasterKeyMap mapMasterKeys;
unsigned int nMasterKeyMaxID;
CWallet()
{
+ nWalletVersion = FEATURE_BASE;
+ nWalletMaxVersion = FEATURE_BASE;
fFileBacked = false;
nMasterKeyMaxID = 0;
pwalletdbEncryption = NULL;
}
CWallet(std::string strWalletFileIn)
{
+ nWalletVersion = FEATURE_BASE;
+ nWalletMaxVersion = FEATURE_BASE;
strWalletFile = strWalletFileIn;
fFileBacked = true;
nMasterKeyMaxID = 0;
@@ -60,16 +110,23 @@ public:
std::vector<unsigned char> vchDefaultKey;
+ // check whether we are allowed to upgrade (or already support) to the named feature
+ bool CanSupportFeature(enum WalletFeature wf) { return nWalletMaxVersion >= wf; }
+
// keystore implementation
+ // Generate a new key
+ std::vector<unsigned char> GenerateNewKey();
// Adds a key to the store, and saves it to disk.
bool AddKey(const CKey& key);
// Adds a key to the store, without saving it to disk (used by LoadWallet)
bool LoadKey(const CKey& key) { return CCryptoKeyStore::AddKey(key); }
+ bool LoadMinVersion(int nVersion) { nWalletVersion = nVersion; nWalletMaxVersion = std::max(nWalletMaxVersion, nVersion); return true; }
+
// Adds an encrypted key to the store, and saves it to disk.
bool AddCryptedKey(const std::vector<unsigned char> &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret);
// Adds an encrypted key to the store, without saving it to disk (used by LoadWallet)
- bool LoadCryptedKey(const std::vector<unsigned char> &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret) { return CCryptoKeyStore::AddCryptedKey(vchPubKey, vchCryptedSecret); }
+ bool LoadCryptedKey(const std::vector<unsigned char> &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret) { SetMinVersion(FEATURE_WALLETCRYPT); return CCryptoKeyStore::AddCryptedKey(vchPubKey, vchCryptedSecret); }
bool AddCScript(const CScript& redeemScript);
bool LoadCScript(const CScript& redeemScript) { return CCryptoKeyStore::AddCScript(redeemScript); }
@@ -167,14 +224,9 @@ public:
}
return nChange;
}
- void SetBestChain(const CBlockLocator& loc)
- {
- CWalletDB walletdb(strWalletFile);
- walletdb.WriteBestBlock(loc);
- }
+ void SetBestChain(const CBlockLocator& loc);
int LoadWallet(bool& fFirstRunRet);
-// bool BackupWallet(const std::string& strDest);
bool SetAddressBookName(const CBitcoinAddress& address, const std::string& strName);
@@ -182,16 +234,18 @@ public:
void UpdatedTransaction(const uint256 &hashTx)
{
- CRITICAL_BLOCK(cs_wallet)
+ {
+ LOCK(cs_wallet);
vWalletUpdated.push_back(hashTx);
+ }
}
void PrintWallet(const CBlock& block);
void Inventory(const uint256 &hash)
{
- CRITICAL_BLOCK(cs_wallet)
{
+ LOCK(cs_wallet);
std::map<uint256, int>::iterator mi = mapRequestCount.find(hash);
if (mi != mapRequestCount.end())
(*mi).second++;
@@ -206,9 +260,18 @@ public:
bool GetTransaction(const uint256 &hashTx, CWalletTx& wtx);
bool SetDefaultKey(const std::vector<unsigned char> &vchPubKey);
-};
+ // signify that a particular wallet feature is now used. this may change nWalletVersion and nWalletMaxVersion if those are lower
+ bool SetMinVersion(enum WalletFeature, CWalletDB* pwalletdbIn = NULL, bool fExplicit = false);
+
+ // change which version we're allowed to upgrade to (note that this does not immediately imply upgrading to that format)
+ bool SetMaxVersion(int nVersion);
+ // get the current wallet format (the oldest client version guaranteed to understand this wallet)
+ int GetVersion() { return nWalletVersion; }
+};
+
+/** A key allocated from the key pool. */
class CReserveKey
{
protected:
@@ -234,11 +297,9 @@ public:
};
-//
-// A transaction with a bunch of additional info that only the owner cares
-// about. It includes any unrecorded transactions needed to link it back
-// to the block chain.
-//
+/** A transaction with a bunch of additional info that only the owner cares about.
+ * It includes any unrecorded transactions needed to link it back to the block chain.
+ */
class CWalletTx : public CMerkleTx
{
private:
@@ -255,20 +316,15 @@ public:
std::vector<char> vfSpent; // which outputs are already spent
// memory only
- mutable char fDebitCached;
- mutable char fCreditCached;
- mutable char fAvailableCreditCached;
- mutable char fChangeCached;
+ mutable bool fDebitCached;
+ mutable bool fCreditCached;
+ mutable bool fAvailableCreditCached;
+ mutable bool fChangeCached;
mutable int64 nDebitCached;
mutable int64 nCreditCached;
mutable int64 nAvailableCreditCached;
mutable int64 nChangeCached;
- // memory only UI hints
- mutable unsigned int nTimeDisplayed;
- mutable int nLinesDisplayed;
- mutable char fConfirmedDisplayed;
-
CWalletTx()
{
Init(NULL);
@@ -308,9 +364,6 @@ public:
nCreditCached = 0;
nAvailableCreditCached = 0;
nChangeCached = 0;
- nTimeDisplayed = 0;
- nLinesDisplayed = 0;
- fConfirmedDisplayed = false;
}
IMPLEMENT_SERIALIZE
@@ -364,7 +417,7 @@ public:
bool UpdateSpent(const std::vector<char>& vfNewSpent)
{
bool fReturn = false;
- for (int i=0; i < vfNewSpent.size(); i++)
+ for (unsigned int i = 0; i < vfNewSpent.size(); i++)
{
if (i == vfSpent.size())
break;
@@ -450,7 +503,7 @@ public:
return nAvailableCreditCached;
int64 nCredit = 0;
- for (int i = 0; i < vout.size(); i++)
+ for (unsigned int i = 0; i < vout.size(); i++)
{
if (!IsSpent(i))
{
@@ -503,7 +556,7 @@ public:
std::vector<const CMerkleTx*> vWorkQueue;
vWorkQueue.reserve(vtxPrev.size()+1);
vWorkQueue.push_back(this);
- for (int i = 0; i < vWorkQueue.size(); i++)
+ for (unsigned int i = 0; i < vWorkQueue.size(); i++)
{
const CMerkleTx* ptx = vWorkQueue[i];
@@ -515,8 +568,10 @@ public:
return false;
if (mapPrev.empty())
+ {
BOOST_FOREACH(const CMerkleTx& tx, vtxPrev)
mapPrev[tx.GetHash()] = &tx;
+ }
BOOST_FOREACH(const CTxIn& txin, ptx->vin)
{
@@ -543,9 +598,7 @@ public:
};
-//
-// Private key that includes an expiration date in case it never gets used.
-//
+/** Private key that includes an expiration date in case it never gets used. */
class CWalletKey
{
public:
@@ -578,10 +631,9 @@ public:
-//
-// Account information.
-// Stored in wallet with key "acc"+string account name
-//
+/** Account information.
+ * Stored in wallet with key "acc"+string account name.
+ */
class CAccount
{
public:
@@ -607,10 +659,9 @@ public:
-//
-// Internal transfers.
-// Database key is acentry<account><counter>
-//
+/** Internal transfers.
+ * Database key is acentry<account><counter>.
+ */
class CAccountingEntry
{
public:
diff --git a/src/walletdb.cpp b/src/walletdb.cpp
new file mode 100644
index 0000000000..e5d57288e8
--- /dev/null
+++ b/src/walletdb.cpp
@@ -0,0 +1,428 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Copyright (c) 2009-2012 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+#include "walletdb.h"
+#include "wallet.h"
+#include <boost/filesystem.hpp>
+
+using namespace std;
+using namespace boost;
+
+
+static uint64 nAccountingEntryNumber = 0;
+
+extern CCriticalSection cs_db;
+extern map<string, int> mapFileUseCount;
+extern void CloseDb(const string& strFile);
+
+//
+// CWalletDB
+//
+
+bool CWalletDB::WriteName(const string& strAddress, const string& strName)
+{
+ nWalletDBUpdated++;
+ return Write(make_pair(string("name"), strAddress), strName);
+}
+
+bool CWalletDB::EraseName(const string& strAddress)
+{
+ // This should only be used for sending addresses, never for receiving addresses,
+ // receiving addresses must always have an address book entry if they're not change return.
+ nWalletDBUpdated++;
+ return Erase(make_pair(string("name"), strAddress));
+}
+
+bool CWalletDB::ReadAccount(const string& strAccount, CAccount& account)
+{
+ account.SetNull();
+ return Read(make_pair(string("acc"), strAccount), account);
+}
+
+bool CWalletDB::WriteAccount(const string& strAccount, const CAccount& account)
+{
+ return Write(make_pair(string("acc"), strAccount), account);
+}
+
+bool CWalletDB::WriteAccountingEntry(const CAccountingEntry& acentry)
+{
+ return Write(boost::make_tuple(string("acentry"), acentry.strAccount, ++nAccountingEntryNumber), acentry);
+}
+
+int64 CWalletDB::GetAccountCreditDebit(const string& strAccount)
+{
+ list<CAccountingEntry> entries;
+ ListAccountCreditDebit(strAccount, entries);
+
+ int64 nCreditDebit = 0;
+ BOOST_FOREACH (const CAccountingEntry& entry, entries)
+ nCreditDebit += entry.nCreditDebit;
+
+ return nCreditDebit;
+}
+
+void CWalletDB::ListAccountCreditDebit(const string& strAccount, list<CAccountingEntry>& entries)
+{
+ bool fAllAccounts = (strAccount == "*");
+
+ Dbc* pcursor = GetCursor();
+ if (!pcursor)
+ throw runtime_error("CWalletDB::ListAccountCreditDebit() : cannot create DB cursor");
+ unsigned int fFlags = DB_SET_RANGE;
+ loop
+ {
+ // Read next record
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
+ if (fFlags == DB_SET_RANGE)
+ ssKey << boost::make_tuple(string("acentry"), (fAllAccounts? string("") : strAccount), uint64(0));
+ CDataStream ssValue(SER_DISK, CLIENT_VERSION);
+ int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags);
+ fFlags = DB_NEXT;
+ if (ret == DB_NOTFOUND)
+ break;
+ else if (ret != 0)
+ {
+ pcursor->close();
+ throw runtime_error("CWalletDB::ListAccountCreditDebit() : error scanning DB");
+ }
+
+ // Unserialize
+ string strType;
+ ssKey >> strType;
+ if (strType != "acentry")
+ break;
+ CAccountingEntry acentry;
+ ssKey >> acentry.strAccount;
+ if (!fAllAccounts && acentry.strAccount != strAccount)
+ break;
+
+ ssValue >> acentry;
+ entries.push_back(acentry);
+ }
+
+ pcursor->close();
+}
+
+
+int CWalletDB::LoadWallet(CWallet* pwallet)
+{
+ pwallet->vchDefaultKey.clear();
+ int nFileVersion = 0;
+ vector<uint256> vWalletUpgrade;
+ bool fIsEncrypted = false;
+
+ //// todo: shouldn't we catch exceptions and try to recover and continue?
+ {
+ LOCK(pwallet->cs_wallet);
+ int nMinVersion = 0;
+ if (Read((string)"minversion", nMinVersion))
+ {
+ if (nMinVersion > CLIENT_VERSION)
+ return DB_TOO_NEW;
+ pwallet->LoadMinVersion(nMinVersion);
+ }
+
+ // Get cursor
+ Dbc* pcursor = GetCursor();
+ if (!pcursor)
+ {
+ printf("Error getting wallet database cursor\n");
+ return DB_CORRUPT;
+ }
+
+ loop
+ {
+ // Read next record
+ CDataStream ssKey(SER_DISK, CLIENT_VERSION);
+ CDataStream ssValue(SER_DISK, CLIENT_VERSION);
+ int ret = ReadAtCursor(pcursor, ssKey, ssValue);
+ if (ret == DB_NOTFOUND)
+ break;
+ else if (ret != 0)
+ {
+ printf("Error reading next record from wallet database\n");
+ return DB_CORRUPT;
+ }
+
+ // Unserialize
+ // Taking advantage of the fact that pair serialization
+ // is just the two items serialized one after the other
+ string strType;
+ ssKey >> strType;
+ if (strType == "name")
+ {
+ string strAddress;
+ ssKey >> strAddress;
+ ssValue >> pwallet->mapAddressBook[strAddress];
+ }
+ else if (strType == "tx")
+ {
+ uint256 hash;
+ ssKey >> hash;
+ CWalletTx& wtx = pwallet->mapWallet[hash];
+ ssValue >> wtx;
+ wtx.BindWallet(pwallet);
+
+ if (wtx.GetHash() != hash)
+ printf("Error in wallet.dat, hash mismatch\n");
+
+ // Undo serialize changes in 31600
+ if (31404 <= wtx.fTimeReceivedIsTxTime && wtx.fTimeReceivedIsTxTime <= 31703)
+ {
+ if (!ssValue.empty())
+ {
+ char fTmp;
+ char fUnused;
+ ssValue >> fTmp >> fUnused >> wtx.strFromAccount;
+ printf("LoadWallet() upgrading tx ver=%d %d '%s' %s\n", wtx.fTimeReceivedIsTxTime, fTmp, wtx.strFromAccount.c_str(), hash.ToString().c_str());
+ wtx.fTimeReceivedIsTxTime = fTmp;
+ }
+ else
+ {
+ printf("LoadWallet() repairing tx ver=%d %s\n", wtx.fTimeReceivedIsTxTime, hash.ToString().c_str());
+ wtx.fTimeReceivedIsTxTime = 0;
+ }
+ vWalletUpgrade.push_back(hash);
+ }
+
+ //// debug print
+ //printf("LoadWallet %s\n", wtx.GetHash().ToString().c_str());
+ //printf(" %12"PRI64d" %s %s %s\n",
+ // wtx.vout[0].nValue,
+ // DateTimeStrFormat("%x %H:%M:%S", wtx.GetBlockTime()).c_str(),
+ // wtx.hashBlock.ToString().substr(0,20).c_str(),
+ // wtx.mapValue["message"].c_str());
+ }
+ else if (strType == "acentry")
+ {
+ string strAccount;
+ ssKey >> strAccount;
+ uint64 nNumber;
+ ssKey >> nNumber;
+ if (nNumber > nAccountingEntryNumber)
+ nAccountingEntryNumber = nNumber;
+ }
+ else if (strType == "key" || strType == "wkey")
+ {
+ vector<unsigned char> vchPubKey;
+ ssKey >> vchPubKey;
+ CKey key;
+ if (strType == "key")
+ {
+ CPrivKey pkey;
+ ssValue >> pkey;
+ key.SetPubKey(vchPubKey);
+ key.SetPrivKey(pkey);
+ if (key.GetPubKey() != vchPubKey)
+ {
+ printf("Error reading wallet database: CPrivKey pubkey inconsistency\n");
+ return DB_CORRUPT;
+ }
+ if (!key.IsValid())
+ {
+ printf("Error reading wallet database: invalid CPrivKey\n");
+ return DB_CORRUPT;
+ }
+ }
+ else
+ {
+ CWalletKey wkey;
+ ssValue >> wkey;
+ key.SetPubKey(vchPubKey);
+ key.SetPrivKey(wkey.vchPrivKey);
+ if (key.GetPubKey() != vchPubKey)
+ {
+ printf("Error reading wallet database: CWalletKey pubkey inconsistency\n");
+ return DB_CORRUPT;
+ }
+ if (!key.IsValid())
+ {
+ printf("Error reading wallet database: invalid CWalletKey\n");
+ return DB_CORRUPT;
+ }
+ }
+ if (!pwallet->LoadKey(key))
+ {
+ printf("Error reading wallet database: LoadKey failed\n");
+ return DB_CORRUPT;
+ }
+ }
+ else if (strType == "mkey")
+ {
+ unsigned int nID;
+ ssKey >> nID;
+ CMasterKey kMasterKey;
+ ssValue >> kMasterKey;
+ if(pwallet->mapMasterKeys.count(nID) != 0)
+ {
+ printf("Error reading wallet database: duplicate CMasterKey id %u\n", nID);
+ return DB_CORRUPT;
+ }
+ pwallet->mapMasterKeys[nID] = kMasterKey;
+ if (pwallet->nMasterKeyMaxID < nID)
+ pwallet->nMasterKeyMaxID = nID;
+ }
+ else if (strType == "ckey")
+ {
+ vector<unsigned char> vchPubKey;
+ ssKey >> vchPubKey;
+ vector<unsigned char> vchPrivKey;
+ ssValue >> vchPrivKey;
+ if (!pwallet->LoadCryptedKey(vchPubKey, vchPrivKey))
+ {
+ printf("Error reading wallet database: LoadCryptedKey failed\n");
+ return DB_CORRUPT;
+ }
+ fIsEncrypted = true;
+ }
+ else if (strType == "defaultkey")
+ {
+ ssValue >> pwallet->vchDefaultKey;
+ }
+ else if (strType == "pool")
+ {
+ int64 nIndex;
+ ssKey >> nIndex;
+ pwallet->setKeyPool.insert(nIndex);
+ }
+ else if (strType == "version")
+ {
+ ssValue >> nFileVersion;
+ if (nFileVersion == 10300)
+ nFileVersion = 300;
+ }
+ else if (strType == "cscript")
+ {
+ uint160 hash;
+ ssKey >> hash;
+ CScript script;
+ ssValue >> script;
+ if (!pwallet->LoadCScript(script))
+ {
+ printf("Error reading wallet database: LoadCScript failed\n");
+ return DB_CORRUPT;
+ }
+ }
+ }
+ pcursor->close();
+ }
+
+ BOOST_FOREACH(uint256 hash, vWalletUpgrade)
+ WriteTx(hash, pwallet->mapWallet[hash]);
+
+ printf("nFileVersion = %d\n", nFileVersion);
+
+
+ // Rewrite encrypted wallets of versions 0.4.0 and 0.5.0rc:
+ if (fIsEncrypted && (nFileVersion == 40000 || nFileVersion == 50000))
+ return DB_NEED_REWRITE;
+
+ if (nFileVersion < CLIENT_VERSION) // Update
+ WriteVersion(CLIENT_VERSION);
+
+ return DB_LOAD_OK;
+}
+
+void ThreadFlushWalletDB(void* parg)
+{
+ const string& strFile = ((const string*)parg)[0];
+ static bool fOneThread;
+ if (fOneThread)
+ return;
+ fOneThread = true;
+ if (!GetBoolArg("-flushwallet", true))
+ return;
+
+ unsigned int nLastSeen = nWalletDBUpdated;
+ unsigned int nLastFlushed = nWalletDBUpdated;
+ int64 nLastWalletUpdate = GetTime();
+ while (!fShutdown)
+ {
+ Sleep(500);
+
+ if (nLastSeen != nWalletDBUpdated)
+ {
+ nLastSeen = nWalletDBUpdated;
+ nLastWalletUpdate = GetTime();
+ }
+
+ if (nLastFlushed != nWalletDBUpdated && GetTime() - nLastWalletUpdate >= 2)
+ {
+ TRY_LOCK(cs_db,lockDb);
+ if (lockDb)
+ {
+ // Don't do this if any databases are in use
+ int nRefCount = 0;
+ map<string, int>::iterator mi = mapFileUseCount.begin();
+ while (mi != mapFileUseCount.end())
+ {
+ nRefCount += (*mi).second;
+ mi++;
+ }
+
+ if (nRefCount == 0 && !fShutdown)
+ {
+ map<string, int>::iterator mi = mapFileUseCount.find(strFile);
+ if (mi != mapFileUseCount.end())
+ {
+ printf("%s ", DateTimeStrFormat("%x %H:%M:%S", GetTime()).c_str());
+ printf("Flushing wallet.dat\n");
+ nLastFlushed = nWalletDBUpdated;
+ int64 nStart = GetTimeMillis();
+
+ // Flush wallet.dat so it's self contained
+ CloseDb(strFile);
+ dbenv.txn_checkpoint(0, 0, 0);
+ dbenv.lsn_reset(strFile.c_str(), 0);
+
+ mapFileUseCount.erase(mi++);
+ printf("Flushed wallet.dat %"PRI64d"ms\n", GetTimeMillis() - nStart);
+ }
+ }
+ }
+ }
+ }
+}
+
+bool BackupWallet(const CWallet& wallet, const string& strDest)
+{
+ if (!wallet.fFileBacked)
+ return false;
+ while (!fShutdown)
+ {
+ {
+ LOCK(cs_db);
+ if (!mapFileUseCount.count(wallet.strWalletFile) || mapFileUseCount[wallet.strWalletFile] == 0)
+ {
+ // Flush log data to the dat file
+ CloseDb(wallet.strWalletFile);
+ dbenv.txn_checkpoint(0, 0, 0);
+ dbenv.lsn_reset(wallet.strWalletFile.c_str(), 0);
+ mapFileUseCount.erase(wallet.strWalletFile);
+
+ // Copy wallet.dat
+ filesystem::path pathSrc = GetDataDir() / wallet.strWalletFile;
+ filesystem::path pathDest(strDest);
+ if (filesystem::is_directory(pathDest))
+ pathDest /= wallet.strWalletFile;
+
+ try {
+#if BOOST_VERSION >= 104000
+ filesystem::copy_file(pathSrc, pathDest, filesystem::copy_option::overwrite_if_exists);
+#else
+ filesystem::copy_file(pathSrc, pathDest);
+#endif
+ printf("copied wallet.dat to %s\n", pathDest.string().c_str());
+ return true;
+ } catch(const filesystem::filesystem_error &e) {
+ printf("error copying wallet.dat to %s - %s\n", pathDest.string().c_str(), e.what());
+ return false;
+ }
+ }
+ }
+ Sleep(100);
+ }
+ return false;
+}
diff --git a/src/walletdb.h b/src/walletdb.h
new file mode 100644
index 0000000000..46ba7967ca
--- /dev/null
+++ b/src/walletdb.h
@@ -0,0 +1,179 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Copyright (c) 2009-2012 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#ifndef BITCOIN_WALLETDB_H
+#define BITCOIN_WALLETDB_H
+
+#include "db.h"
+
+class CKeyPool;
+class CAccount;
+class CAccountingEntry;
+
+/** Error statuses for the wallet database */
+enum DBErrors
+{
+ DB_LOAD_OK,
+ DB_CORRUPT,
+ DB_TOO_NEW,
+ DB_LOAD_FAIL,
+ DB_NEED_REWRITE
+};
+
+/** Access to the wallet database (wallet.dat) */
+class CWalletDB : public CDB
+{
+public:
+ CWalletDB(std::string strFilename, const char* pszMode="r+") : CDB(strFilename.c_str(), pszMode)
+ {
+ }
+private:
+ CWalletDB(const CWalletDB&);
+ void operator=(const CWalletDB&);
+public:
+ bool ReadName(const std::string& strAddress, std::string& strName)
+ {
+ strName = "";
+ return Read(std::make_pair(std::string("name"), strAddress), strName);
+ }
+
+ bool WriteName(const std::string& strAddress, const std::string& strName);
+
+ bool EraseName(const std::string& strAddress);
+
+ bool ReadTx(uint256 hash, CWalletTx& wtx)
+ {
+ return Read(std::make_pair(std::string("tx"), hash), wtx);
+ }
+
+ bool WriteTx(uint256 hash, const CWalletTx& wtx)
+ {
+ nWalletDBUpdated++;
+ return Write(std::make_pair(std::string("tx"), hash), wtx);
+ }
+
+ bool EraseTx(uint256 hash)
+ {
+ nWalletDBUpdated++;
+ return Erase(std::make_pair(std::string("tx"), hash));
+ }
+
+ bool ReadKey(const std::vector<unsigned char>& vchPubKey, CPrivKey& vchPrivKey)
+ {
+ vchPrivKey.clear();
+ return Read(std::make_pair(std::string("key"), vchPubKey), vchPrivKey);
+ }
+
+ bool WriteKey(const std::vector<unsigned char>& vchPubKey, const CPrivKey& vchPrivKey)
+ {
+ nWalletDBUpdated++;
+ return Write(std::make_pair(std::string("key"), vchPubKey), vchPrivKey, false);
+ }
+
+ bool WriteCryptedKey(const std::vector<unsigned char>& vchPubKey, const std::vector<unsigned char>& vchCryptedSecret, bool fEraseUnencryptedKey = true)
+ {
+ nWalletDBUpdated++;
+ if (!Write(std::make_pair(std::string("ckey"), vchPubKey), vchCryptedSecret, false))
+ return false;
+ if (fEraseUnencryptedKey)
+ {
+ Erase(std::make_pair(std::string("key"), vchPubKey));
+ Erase(std::make_pair(std::string("wkey"), vchPubKey));
+ }
+ return true;
+ }
+
+ bool WriteMasterKey(unsigned int nID, const CMasterKey& kMasterKey)
+ {
+ nWalletDBUpdated++;
+ return Write(std::make_pair(std::string("mkey"), nID), kMasterKey, true);
+ }
+
+ // Support for BIP 0013 : see https://en.bitcoin.it/wiki/BIP_0013
+ bool ReadCScript(const uint160 &hash, CScript& redeemScript)
+ {
+ redeemScript.clear();
+ return Read(std::make_pair(std::string("cscript"), hash), redeemScript);
+ }
+
+ bool WriteCScript(const uint160& hash, const CScript& redeemScript)
+ {
+ nWalletDBUpdated++;
+ return Write(std::make_pair(std::string("cscript"), hash), redeemScript, false);
+ }
+
+ bool WriteBestBlock(const CBlockLocator& locator)
+ {
+ nWalletDBUpdated++;
+ return Write(std::string("bestblock"), locator);
+ }
+
+ bool ReadBestBlock(CBlockLocator& locator)
+ {
+ return Read(std::string("bestblock"), locator);
+ }
+
+ bool ReadDefaultKey(std::vector<unsigned char>& vchPubKey)
+ {
+ vchPubKey.clear();
+ return Read(std::string("defaultkey"), vchPubKey);
+ }
+
+ bool WriteDefaultKey(const std::vector<unsigned char>& vchPubKey)
+ {
+ nWalletDBUpdated++;
+ return Write(std::string("defaultkey"), vchPubKey);
+ }
+
+ bool ReadPool(int64 nPool, CKeyPool& keypool)
+ {
+ return Read(std::make_pair(std::string("pool"), nPool), keypool);
+ }
+
+ bool WritePool(int64 nPool, const CKeyPool& keypool)
+ {
+ nWalletDBUpdated++;
+ return Write(std::make_pair(std::string("pool"), nPool), keypool);
+ }
+
+ bool ErasePool(int64 nPool)
+ {
+ nWalletDBUpdated++;
+ return Erase(std::make_pair(std::string("pool"), nPool));
+ }
+
+ // Settings are no longer stored in wallet.dat; these are
+ // used only for backwards compatibility:
+ template<typename T>
+ bool ReadSetting(const std::string& strKey, T& value)
+ {
+ return Read(std::make_pair(std::string("setting"), strKey), value);
+ }
+ template<typename T>
+ bool WriteSetting(const std::string& strKey, const T& value)
+ {
+ nWalletDBUpdated++;
+ return Write(std::make_pair(std::string("setting"), strKey), value);
+ }
+ bool EraseSetting(const std::string& strKey)
+ {
+ nWalletDBUpdated++;
+ return Erase(std::make_pair(std::string("setting"), strKey));
+ }
+
+ bool WriteMinVersion(int nVersion)
+ {
+ return Write(std::string("minversion"), nVersion);
+ }
+
+ bool ReadAccount(const std::string& strAccount, CAccount& account);
+ bool WriteAccount(const std::string& strAccount, const CAccount& account);
+ bool WriteAccountingEntry(const CAccountingEntry& acentry);
+ int64 GetAccountCreditDebit(const std::string& strAccount);
+ void ListAccountCreditDebit(const std::string& strAccount, std::list<CAccountingEntry>& acentries);
+
+ int LoadWallet(CWallet* pwallet);
+};
+
+#endif // BITCOIN_WALLETDB_H