aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
Diffstat (limited to 'src/qt')
-rw-r--r--src/qt/aboutdialog.cpp29
-rw-r--r--src/qt/aboutdialog.h28
-rw-r--r--src/qt/addressbookpage.cpp225
-rw-r--r--src/qt/addressbookpage.h59
-rw-r--r--src/qt/addresstablemodel.cpp348
-rw-r--r--src/qt/addresstablemodel.h88
-rw-r--r--src/qt/askpassphrasedialog.cpp249
-rw-r--r--src/qt/askpassphrasedialog.h45
-rw-r--r--src/qt/bitcoin.cpp229
-rw-r--r--src/qt/bitcoin.qrc64
-rw-r--r--src/qt/bitcoinaddressvalidator.cpp83
-rw-r--r--src/qt/bitcoinaddressvalidator.h24
-rw-r--r--src/qt/bitcoinamountfield.cpp167
-rw-r--r--src/qt/bitcoinamountfield.h60
-rw-r--r--src/qt/bitcoingui.cpp755
-rw-r--r--src/qt/bitcoingui.h160
-rw-r--r--src/qt/bitcoinstrings.cpp93
-rw-r--r--src/qt/bitcoinunits.cpp181
-rw-r--r--src/qt/bitcoinunits.h66
-rw-r--r--src/qt/clientmodel.cpp88
-rw-r--r--src/qt/clientmodel.h62
-rw-r--r--src/qt/csvmodelwriter.cpp88
-rw-r--r--src/qt/csvmodelwriter.h46
-rw-r--r--src/qt/editaddressdialog.cpp128
-rw-r--r--src/qt/editaddressdialog.h50
-rw-r--r--src/qt/forms/aboutdialog.ui162
-rw-r--r--src/qt/forms/addressbookpage.ui130
-rw-r--r--src/qt/forms/askpassphrasedialog.ui150
-rw-r--r--src/qt/forms/editaddressdialog.ui105
-rw-r--r--src/qt/forms/overviewpage.ui163
-rw-r--r--src/qt/forms/sendcoinsdialog.ui166
-rw-r--r--src/qt/forms/sendcoinsentry.ui169
-rw-r--r--src/qt/forms/transactiondescdialog.ui74
-rw-r--r--src/qt/guiconstants.h23
-rw-r--r--src/qt/guiutil.cpp137
-rw-r--r--src/qt/guiutil.h52
-rw-r--r--src/qt/locale/bitcoin_da.ts1859
-rw-r--r--src/qt/locale/bitcoin_de.ts1848
-rw-r--r--src/qt/locale/bitcoin_en.ts1819
-rw-r--r--src/qt/locale/bitcoin_es.ts1864
-rw-r--r--src/qt/locale/bitcoin_es_CL.ts1864
-rw-r--r--src/qt/locale/bitcoin_hu.ts1854
-rw-r--r--src/qt/locale/bitcoin_it.ts1865
-rw-r--r--src/qt/locale/bitcoin_nb.ts1863
-rw-r--r--src/qt/locale/bitcoin_nl.ts1864
-rw-r--r--src/qt/locale/bitcoin_pt_BR.ts1851
-rw-r--r--src/qt/locale/bitcoin_ru.ts1870
-rw-r--r--src/qt/locale/bitcoin_uk.ts1871
-rw-r--r--src/qt/locale/bitcoin_zh_CN.ts1860
-rw-r--r--src/qt/locale/bitcoin_zh_TW.ts1851
-rw-r--r--src/qt/macdockiconhandler.h39
-rw-r--r--src/qt/macdockiconhandler.mm99
-rw-r--r--src/qt/monitoreddatamapper.cpp36
-rw-r--r--src/qt/monitoreddatamapper.h31
-rw-r--r--src/qt/notificator.cpp302
-rw-r--r--src/qt/notificator.h69
-rw-r--r--src/qt/optionsdialog.cpp293
-rw-r--r--src/qt/optionsdialog.h53
-rw-r--r--src/qt/optionsmodel.cpp164
-rw-r--r--src/qt/optionsmodel.h56
-rw-r--r--src/qt/overviewpage.cpp185
-rw-r--r--src/qt/overviewpage.h46
-rw-r--r--src/qt/qvalidatedlineedit.cpp45
-rw-r--r--src/qt/qvalidatedlineedit.h29
-rw-r--r--src/qt/qvaluecombobox.cpp27
-rw-r--r--src/qt/qvaluecombobox.h32
-rw-r--r--src/qt/res/bitcoin-qt.rc1
-rw-r--r--src/qt/res/icons/add.pngbin0 -> 1279 bytes
-rw-r--r--src/qt/res/icons/address-book.pngbin0 -> 1916 bytes
-rw-r--r--src/qt/res/icons/bitcoin.icnsbin0 -> 99044 bytes
-rw-r--r--src/qt/res/icons/bitcoin.icobin0 -> 15086 bytes
-rw-r--r--src/qt/res/icons/bitcoin.pngbin0 -> 34168 bytes
-rw-r--r--src/qt/res/icons/bitcoin_testnet.pngbin0 -> 28756 bytes
-rw-r--r--src/qt/res/icons/clock1.pngbin0 -> 946 bytes
-rw-r--r--src/qt/res/icons/clock2.pngbin0 -> 944 bytes
-rw-r--r--src/qt/res/icons/clock3.pngbin0 -> 946 bytes
-rw-r--r--src/qt/res/icons/clock4.pngbin0 -> 962 bytes
-rw-r--r--src/qt/res/icons/clock5.pngbin0 -> 956 bytes
-rw-r--r--src/qt/res/icons/configure.pngbin0 -> 1055 bytes
-rw-r--r--src/qt/res/icons/connect0_16.pngbin0 -> 702 bytes
-rw-r--r--src/qt/res/icons/connect1_16.pngbin0 -> 612 bytes
-rw-r--r--src/qt/res/icons/connect2_16.pngbin0 -> 623 bytes
-rw-r--r--src/qt/res/icons/connect3_16.pngbin0 -> 625 bytes
-rw-r--r--src/qt/res/icons/connect4_16.pngbin0 -> 611 bytes
-rw-r--r--src/qt/res/icons/edit.pngbin0 -> 1627 bytes
-rw-r--r--src/qt/res/icons/editcopy.pngbin0 -> 879 bytes
-rw-r--r--src/qt/res/icons/editpaste.pngbin0 -> 1458 bytes
-rw-r--r--src/qt/res/icons/export.pngbin0 -> 2148 bytes
-rw-r--r--src/qt/res/icons/history.pngbin0 -> 1432 bytes
-rw-r--r--src/qt/res/icons/key.pngbin0 -> 1727 bytes
-rw-r--r--src/qt/res/icons/lock_closed.pngbin0 -> 1679 bytes
-rw-r--r--src/qt/res/icons/lock_open.pngbin0 -> 1644 bytes
-rw-r--r--src/qt/res/icons/notsynced.pngbin0 -> 1013 bytes
-rw-r--r--src/qt/res/icons/overview.pngbin0 -> 7455 bytes
-rw-r--r--src/qt/res/icons/quit.pngbin0 -> 2163 bytes
-rw-r--r--src/qt/res/icons/receive.pngbin0 -> 1437 bytes
-rw-r--r--src/qt/res/icons/remove.pngbin0 -> 1224 bytes
-rw-r--r--src/qt/res/icons/send.pngbin0 -> 1487 bytes
-rw-r--r--src/qt/res/icons/synced.pngbin0 -> 781 bytes
-rw-r--r--src/qt/res/icons/toolbar.pngbin0 -> 1035 bytes
-rw-r--r--src/qt/res/icons/toolbar_testnet.pngbin0 -> 1037 bytes
-rw-r--r--src/qt/res/icons/transaction0.pngbin0 -> 569 bytes
-rw-r--r--src/qt/res/icons/transaction2.pngbin0 -> 413 bytes
-rw-r--r--src/qt/res/icons/tx_inout.pngbin0 -> 2442 bytes
-rw-r--r--src/qt/res/icons/tx_input.pngbin0 -> 2152 bytes
-rw-r--r--src/qt/res/icons/tx_mined.pngbin0 -> 3287 bytes
-rw-r--r--src/qt/res/icons/tx_output.pngbin0 -> 2129 bytes
-rw-r--r--src/qt/res/images/about.pngbin0 -> 3488 bytes
-rw-r--r--src/qt/res/images/splash2.jpgbin0 -> 5816 bytes
-rw-r--r--src/qt/res/movies/update_spinner.mngbin0 -> 27817 bytes
-rw-r--r--src/qt/res/src/bitcoin.svg115
-rw-r--r--src/qt/res/src/clock1.svg261
-rw-r--r--src/qt/res/src/clock2.svg262
-rw-r--r--src/qt/res/src/clock3.svg261
-rw-r--r--src/qt/res/src/clock4.svg261
-rw-r--r--src/qt/res/src/clock5.svg262
-rw-r--r--src/qt/res/src/clock_green.svg262
-rw-r--r--src/qt/res/src/inout.svg122
-rw-r--r--src/qt/res/src/questionmark.svg159
-rw-r--r--src/qt/sendcoinsdialog.cpp298
-rw-r--r--src/qt/sendcoinsdialog.h54
-rw-r--r--src/qt/sendcoinsentry.cpp172
-rw-r--r--src/qt/sendcoinsentry.h55
-rw-r--r--src/qt/transactiondesc.cpp291
-rw-r--r--src/qt/transactiondesc.h26
-rw-r--r--src/qt/transactiondescdialog.cpp20
-rw-r--r--src/qt/transactiondescdialog.h26
-rw-r--r--src/qt/transactionfilterproxy.cpp86
-rw-r--r--src/qt/transactionfilterproxy.h52
-rw-r--r--src/qt/transactionrecord.cpp249
-rw-r--r--src/qt/transactionrecord.h129
-rw-r--r--src/qt/transactiontablemodel.cpp628
-rw-r--r--src/qt/transactiontablemodel.h83
-rw-r--r--src/qt/transactionview.cpp428
-rw-r--r--src/qt/transactionview.h80
-rw-r--r--src/qt/walletmodel.cpp283
-rw-r--r--src/qt/walletmodel.h143
137 files changed, 37324 insertions, 0 deletions
diff --git a/src/qt/aboutdialog.cpp b/src/qt/aboutdialog.cpp
new file mode 100644
index 0000000000..a3aa6de841
--- /dev/null
+++ b/src/qt/aboutdialog.cpp
@@ -0,0 +1,29 @@
+#include "aboutdialog.h"
+#include "ui_aboutdialog.h"
+#include "clientmodel.h"
+
+AboutDialog::AboutDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::AboutDialog)
+{
+ ui->setupUi(this);
+
+}
+
+void AboutDialog::setModel(ClientModel *model)
+{
+ if(model)
+ {
+ ui->versionLabel->setText(model->formatFullVersion());
+ }
+}
+
+AboutDialog::~AboutDialog()
+{
+ delete ui;
+}
+
+void AboutDialog::on_buttonBox_accepted()
+{
+ close();
+}
diff --git a/src/qt/aboutdialog.h b/src/qt/aboutdialog.h
new file mode 100644
index 0000000000..2ed9e9e7c4
--- /dev/null
+++ b/src/qt/aboutdialog.h
@@ -0,0 +1,28 @@
+#ifndef ABOUTDIALOG_H
+#define ABOUTDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+ class AboutDialog;
+}
+class ClientModel;
+
+/** "About" dialog box */
+class AboutDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit AboutDialog(QWidget *parent = 0);
+ ~AboutDialog();
+
+ void setModel(ClientModel *model);
+private:
+ Ui::AboutDialog *ui;
+
+private slots:
+ void on_buttonBox_accepted();
+};
+
+#endif // ABOUTDIALOG_H
diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp
new file mode 100644
index 0000000000..bdfceb2f07
--- /dev/null
+++ b/src/qt/addressbookpage.cpp
@@ -0,0 +1,225 @@
+#include "addressbookpage.h"
+#include "ui_addressbookpage.h"
+
+#include "addresstablemodel.h"
+#include "editaddressdialog.h"
+#include "csvmodelwriter.h"
+#include "guiutil.h"
+
+#include <QSortFilterProxyModel>
+#include <QClipboard>
+#include <QMessageBox>
+
+AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::AddressBookPage),
+ model(0),
+ mode(mode),
+ tab(tab)
+{
+ ui->setupUi(this);
+
+#ifdef Q_WS_MAC // Icons on push buttons are very uncommon on Mac
+ ui->newAddressButton->setIcon(QIcon());
+ ui->copyToClipboard->setIcon(QIcon());
+ ui->deleteButton->setIcon(QIcon());
+#endif
+
+ switch(mode)
+ {
+ case ForSending:
+ connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept()));
+ ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ ui->tableView->setFocus();
+ break;
+ case ForEditing:
+ ui->buttonBox->hide();
+ break;
+ }
+ switch(tab)
+ {
+ case SendingTab:
+ ui->labelExplanation->hide();
+ break;
+ case ReceivingTab:
+ break;
+ }
+ ui->tableView->setTabKeyNavigation(false);
+
+ connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
+}
+
+AddressBookPage::~AddressBookPage()
+{
+ delete ui;
+}
+
+void AddressBookPage::setModel(AddressTableModel *model)
+{
+ this->model = model;
+ if(!model)
+ return;
+ // Refresh list from core
+ model->updateList();
+
+ proxyModel = new QSortFilterProxyModel(this);
+ proxyModel->setSourceModel(model);
+ proxyModel->setDynamicSortFilter(true);
+ proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
+ proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
+ switch(tab)
+ {
+ case ReceivingTab:
+ // Receive filter
+ proxyModel->setFilterRole(AddressTableModel::TypeRole);
+ proxyModel->setFilterFixedString(AddressTableModel::Receive);
+ break;
+ case SendingTab:
+ // Send filter
+ proxyModel->setFilterRole(AddressTableModel::TypeRole);
+ proxyModel->setFilterFixedString(AddressTableModel::Send);
+ break;
+ }
+ ui->tableView->setModel(proxyModel);
+ ui->tableView->sortByColumn(0, Qt::AscendingOrder);
+
+ // Set column widths
+ ui->tableView->horizontalHeader()->resizeSection(
+ AddressTableModel::Address, 320);
+ ui->tableView->horizontalHeader()->setResizeMode(
+ AddressTableModel::Label, QHeaderView::Stretch);
+
+ connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+ this, SLOT(selectionChanged()));
+
+ selectionChanged();
+}
+
+void AddressBookPage::on_copyToClipboard_clicked()
+{
+ // Copy currently selected address to clipboard
+ // (or nothing, if nothing selected)
+ QTableView *table = ui->tableView;
+ if(!table->selectionModel())
+ return;
+ QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
+
+ foreach (QModelIndex index, indexes)
+ {
+ QVariant address = index.data();
+ QApplication::clipboard()->setText(address.toString());
+ }
+}
+
+void AddressBookPage::on_newAddressButton_clicked()
+{
+ if(!model)
+ return;
+ EditAddressDialog dlg(
+ tab == SendingTab ?
+ EditAddressDialog::NewSendingAddress :
+ EditAddressDialog::NewReceivingAddress);
+ dlg.setModel(model);
+ if(dlg.exec())
+ {
+ // Select row for newly created address
+ QString address = dlg.getAddress();
+ QModelIndexList lst = proxyModel->match(proxyModel->index(0,
+ AddressTableModel::Address, QModelIndex()),
+ Qt::EditRole, address, 1, Qt::MatchExactly);
+ if(!lst.isEmpty())
+ {
+ ui->tableView->setFocus();
+ ui->tableView->selectRow(lst.at(0).row());
+ }
+ }
+}
+
+void AddressBookPage::on_deleteButton_clicked()
+{
+ QTableView *table = ui->tableView;
+ if(!table->selectionModel())
+ return;
+ QModelIndexList indexes = table->selectionModel()->selectedRows();
+ if(!indexes.isEmpty())
+ {
+ table->model()->removeRow(indexes.at(0).row());
+ }
+}
+
+void AddressBookPage::selectionChanged()
+{
+ // Set button states based on selected tab and selection
+ QTableView *table = ui->tableView;
+ if(!table->selectionModel())
+ return;
+
+ if(table->selectionModel()->hasSelection())
+ {
+ switch(tab)
+ {
+ case SendingTab:
+ ui->deleteButton->setEnabled(true);
+ break;
+ case ReceivingTab:
+ ui->deleteButton->setEnabled(false);
+ break;
+ }
+ ui->copyToClipboard->setEnabled(true);
+ }
+ else
+ {
+ ui->deleteButton->setEnabled(false);
+ ui->copyToClipboard->setEnabled(false);
+ }
+}
+
+void AddressBookPage::done(int retval)
+{
+ QTableView *table = ui->tableView;
+ if(!table->selectionModel() || !table->model())
+ return;
+ // When this is a tab/widget and not a model dialog, ignore "done"
+ if(mode == ForEditing)
+ return;
+
+ // Figure out which address was selected, and return it
+ QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
+
+ foreach (QModelIndex index, indexes)
+ {
+ QVariant address = table->model()->data(index);
+ returnValue = address.toString();
+ }
+
+ if(returnValue.isEmpty())
+ {
+ retval = Rejected;
+ }
+
+ QDialog::done(retval);
+}
+
+void AddressBookPage::exportClicked()
+{
+ // CSV is currently the only supported format
+ QString filename = GUIUtil::getSaveFileName(
+ this,
+ tr("Export Address Book Data"), QString(),
+ tr("Comma separated file (*.csv)"));
+
+ if (filename.isNull()) return;
+
+ CSVModelWriter writer(filename);
+
+ // name, column, role
+ writer.setModel(proxyModel);
+ writer.addColumn("Label", AddressTableModel::Label, Qt::EditRole);
+ writer.addColumn("Address", AddressTableModel::Address, Qt::EditRole);
+
+ if(!writer.write())
+ {
+ QMessageBox::critical(this, tr("Error exporting"), tr("Could not write to file %1.").arg(filename),
+ QMessageBox::Abort, QMessageBox::Abort);
+ }
+}
diff --git a/src/qt/addressbookpage.h b/src/qt/addressbookpage.h
new file mode 100644
index 0000000000..d885c768c9
--- /dev/null
+++ b/src/qt/addressbookpage.h
@@ -0,0 +1,59 @@
+#ifndef ADDRESSBOOKPAGE_H
+#define ADDRESSBOOKPAGE_H
+
+#include <QDialog>
+
+namespace Ui {
+ class AddressBookPage;
+}
+class AddressTableModel;
+
+QT_BEGIN_NAMESPACE
+class QTableView;
+class QItemSelection;
+class QSortFilterProxyModel;
+QT_END_NAMESPACE
+
+/** Widget that shows a list of sending or receiving addresses.
+ */
+class AddressBookPage : public QDialog
+{
+ Q_OBJECT
+
+public:
+ enum Tabs {
+ SendingTab = 0,
+ ReceivingTab = 1
+ };
+
+ enum Mode {
+ ForSending, /**< Open address book to pick address for sending */
+ ForEditing /**< Open address book for editing */
+ };
+
+ explicit AddressBookPage(Mode mode, Tabs tab, QWidget *parent = 0);
+ ~AddressBookPage();
+
+ void setModel(AddressTableModel *model);
+ const QString &getReturnValue() const { return returnValue; }
+
+public slots:
+ void done(int retval);
+ void exportClicked();
+
+private:
+ Ui::AddressBookPage *ui;
+ AddressTableModel *model;
+ Mode mode;
+ Tabs tab;
+ QString returnValue;
+ QSortFilterProxyModel *proxyModel;
+
+private slots:
+ void on_deleteButton_clicked();
+ void on_newAddressButton_clicked();
+ void on_copyToClipboard_clicked();
+ void selectionChanged();
+};
+
+#endif // ADDRESSBOOKPAGE_H
diff --git a/src/qt/addresstablemodel.cpp b/src/qt/addresstablemodel.cpp
new file mode 100644
index 0000000000..5d724ea1d1
--- /dev/null
+++ b/src/qt/addresstablemodel.cpp
@@ -0,0 +1,348 @@
+#include "addresstablemodel.h"
+#include "guiutil.h"
+#include "walletmodel.h"
+
+#include "headers.h"
+
+#include <QFont>
+#include <QColor>
+
+const QString AddressTableModel::Send = "S";
+const QString AddressTableModel::Receive = "R";
+
+struct AddressTableEntry
+{
+ enum Type {
+ Sending,
+ Receiving
+ };
+
+ Type type;
+ QString label;
+ QString address;
+
+ AddressTableEntry() {}
+ AddressTableEntry(Type type, const QString &label, const QString &address):
+ type(type), label(label), address(address) {}
+};
+
+// Private implementation
+class AddressTablePriv
+{
+public:
+ CWallet *wallet;
+ QList<AddressTableEntry> cachedAddressTable;
+
+ AddressTablePriv(CWallet *wallet):
+ wallet(wallet) {}
+
+ void refreshAddressTable()
+ {
+ cachedAddressTable.clear();
+
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, std::string)& item, wallet->mapAddressBook)
+ {
+ const CBitcoinAddress& address = item.first;
+ const std::string& strName = item.second;
+ bool fMine = wallet->HaveKey(address);
+ cachedAddressTable.append(AddressTableEntry(fMine ? AddressTableEntry::Receiving : AddressTableEntry::Sending,
+ QString::fromStdString(strName),
+ QString::fromStdString(address.ToString())));
+ }
+ }
+ }
+
+ int size()
+ {
+ return cachedAddressTable.size();
+ }
+
+ AddressTableEntry *index(int idx)
+ {
+ if(idx >= 0 && idx < cachedAddressTable.size())
+ {
+ return &cachedAddressTable[idx];
+ }
+ else
+ {
+ return 0;
+ }
+ }
+};
+
+AddressTableModel::AddressTableModel(CWallet *wallet, WalletModel *parent) :
+ QAbstractTableModel(parent),walletModel(parent),wallet(wallet),priv(0)
+{
+ columns << tr("Label") << tr("Address");
+ priv = new AddressTablePriv(wallet);
+ priv->refreshAddressTable();
+}
+
+AddressTableModel::~AddressTableModel()
+{
+ delete priv;
+}
+
+int AddressTableModel::rowCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return priv->size();
+}
+
+int AddressTableModel::columnCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return columns.length();
+}
+
+QVariant AddressTableModel::data(const QModelIndex &index, int role) const
+{
+ if(!index.isValid())
+ return QVariant();
+
+ AddressTableEntry *rec = static_cast<AddressTableEntry*>(index.internalPointer());
+
+ if(role == Qt::DisplayRole || role == Qt::EditRole)
+ {
+ switch(index.column())
+ {
+ case Label:
+ if(rec->label.isEmpty() && role == Qt::DisplayRole)
+ {
+ return tr("(no label)");
+ }
+ else
+ {
+ return rec->label;
+ }
+ case Address:
+ return rec->address;
+ }
+ }
+ else if (role == Qt::FontRole)
+ {
+ QFont font;
+ if(index.column() == Address)
+ {
+ font = GUIUtil::bitcoinAddressFont();
+ }
+ return font;
+ }
+ else if (role == TypeRole)
+ {
+ switch(rec->type)
+ {
+ case AddressTableEntry::Sending:
+ return Send;
+ case AddressTableEntry::Receiving:
+ return Receive;
+ default: break;
+ }
+ }
+ return QVariant();
+}
+
+bool AddressTableModel::setData(const QModelIndex & index, const QVariant & value, int role)
+{
+ if(!index.isValid())
+ return false;
+ AddressTableEntry *rec = static_cast<AddressTableEntry*>(index.internalPointer());
+
+ editStatus = OK;
+
+ if(role == Qt::EditRole)
+ {
+ switch(index.column())
+ {
+ case Label:
+ wallet->SetAddressBookName(rec->address.toStdString(), value.toString().toStdString());
+ rec->label = value.toString();
+ break;
+ case Address:
+ // Refuse to set invalid address, set error status and return false
+ if(!walletModel->validateAddress(value.toString()))
+ {
+ editStatus = INVALID_ADDRESS;
+ return false;
+ }
+ // Double-check that we're not overwriting a receiving address
+ if(rec->type == AddressTableEntry::Sending)
+ {
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ // Remove old entry
+ wallet->DelAddressBookName(rec->address.toStdString());
+ // Add new entry with new address
+ wallet->SetAddressBookName(value.toString().toStdString(), rec->label.toStdString());
+ }
+
+ rec->address = value.toString();
+ }
+ break;
+ }
+ emit dataChanged(index, index);
+
+ return true;
+ }
+ return false;
+}
+
+QVariant AddressTableModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if(orientation == Qt::Horizontal)
+ {
+ if(role == Qt::DisplayRole)
+ {
+ return columns[section];
+ }
+ }
+ return QVariant();
+}
+
+Qt::ItemFlags AddressTableModel::flags(const QModelIndex & index) const
+{
+ if(!index.isValid())
+ return 0;
+ AddressTableEntry *rec = static_cast<AddressTableEntry*>(index.internalPointer());
+
+ Qt::ItemFlags retval = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
+ // Can edit address and label for sending addresses,
+ // and only label for receiving addresses.
+ if(rec->type == AddressTableEntry::Sending ||
+ (rec->type == AddressTableEntry::Receiving && index.column()==Label))
+ {
+ retval |= Qt::ItemIsEditable;
+ }
+ return retval;
+}
+
+QModelIndex AddressTableModel::index(int row, int column, const QModelIndex & parent) const
+{
+ Q_UNUSED(parent);
+ AddressTableEntry *data = priv->index(row);
+ if(data)
+ {
+ return createIndex(row, column, priv->index(row));
+ }
+ else
+ {
+ return QModelIndex();
+ }
+}
+
+void AddressTableModel::updateList()
+{
+ // Update address book model from Bitcoin core
+ beginResetModel();
+ priv->refreshAddressTable();
+ endResetModel();
+}
+
+QString AddressTableModel::addRow(const QString &type, const QString &label, const QString &address)
+{
+ std::string strLabel = label.toStdString();
+ std::string strAddress = address.toStdString();
+
+ editStatus = OK;
+
+ if(type == Send)
+ {
+ if(!walletModel->validateAddress(address))
+ {
+ editStatus = INVALID_ADDRESS;
+ return QString();
+ }
+ // Check for duplicate addresses
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ if(wallet->mapAddressBook.count(strAddress))
+ {
+ editStatus = DUPLICATE_ADDRESS;
+ return QString();
+ }
+ }
+ }
+ else if(type == Receive)
+ {
+ // Generate a new address to associate with given label
+ WalletModel::UnlockContext ctx(walletModel->requestUnlock());
+ if(!ctx.isValid())
+ {
+ // Unlock wallet failed or was cancelled
+ editStatus = WALLET_UNLOCK_FAILURE;
+ return QString();
+ }
+ std::vector<unsigned char> newKey;
+ if(!wallet->GetKeyFromPool(newKey, true))
+ {
+ editStatus = KEY_GENERATION_FAILURE;
+ return QString();
+ }
+ strAddress = CBitcoinAddress(newKey).ToString();
+ }
+ else
+ {
+ return QString();
+ }
+ // Add entry and update list
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ wallet->SetAddressBookName(strAddress, strLabel);
+ updateList();
+ return QString::fromStdString(strAddress);
+}
+
+bool AddressTableModel::removeRows(int row, int count, const QModelIndex & parent)
+{
+ Q_UNUSED(parent);
+ AddressTableEntry *rec = priv->index(row);
+ if(count != 1 || !rec || rec->type == AddressTableEntry::Receiving)
+ {
+ // Can only remove one row at a time, and cannot remove rows not in model.
+ // Also refuse to remove receiving addresses.
+ return false;
+ }
+ CRITICAL_BLOCK(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)
+ {
+ CBitcoinAddress address_parsed(address.toStdString());
+ std::map<CBitcoinAddress, std::string>::iterator mi = wallet->mapAddressBook.find(address_parsed);
+ if (mi != wallet->mapAddressBook.end())
+ {
+ return QString::fromStdString(mi->second);
+ }
+ }
+ return QString();
+}
+
+int AddressTableModel::lookupAddress(const QString &address) const
+{
+ QModelIndexList lst = match(index(0, Address, QModelIndex()),
+ Qt::EditRole, address, 1, Qt::MatchExactly);
+ if(lst.isEmpty())
+ {
+ return -1;
+ }
+ else
+ {
+ return lst.at(0).row();
+ }
+}
+
diff --git a/src/qt/addresstablemodel.h b/src/qt/addresstablemodel.h
new file mode 100644
index 0000000000..0743300137
--- /dev/null
+++ b/src/qt/addresstablemodel.h
@@ -0,0 +1,88 @@
+#ifndef ADDRESSTABLEMODEL_H
+#define ADDRESSTABLEMODEL_H
+
+#include <QAbstractTableModel>
+#include <QStringList>
+
+class AddressTablePriv;
+class CWallet;
+class WalletModel;
+
+/**
+ Qt model of the address book in the core. This allows views to access and modify the address book.
+ */
+class AddressTableModel : public QAbstractTableModel
+{
+ Q_OBJECT
+public:
+ explicit AddressTableModel(CWallet *wallet, WalletModel *parent = 0);
+ ~AddressTableModel();
+
+ enum ColumnIndex {
+ Label = 0, /**< User specified label */
+ Address = 1 /**< Bitcoin address */
+ };
+
+ enum RoleIndex {
+ TypeRole = Qt::UserRole /**< Type of address (#Send or #Receive) */
+ };
+
+ /** Return status of edit/insert operation */
+ enum EditStatus {
+ OK,
+ INVALID_ADDRESS, /**< Unparseable address */
+ DUPLICATE_ADDRESS, /**< Address already in address book */
+ WALLET_UNLOCK_FAILURE, /**< Wallet could not be unlocked to create new receiving address */
+ KEY_GENERATION_FAILURE /**< Generating a new public key for a receiving address failed */
+ };
+
+ static const QString Send; /**< Specifies send address */
+ static const QString Receive; /**< Specifies receive address */
+
+ /** @name Methods overridden from QAbstractTableModel
+ @{*/
+ int rowCount(const QModelIndex &parent) const;
+ int columnCount(const QModelIndex &parent) const;
+ QVariant data(const QModelIndex &index, int role) const;
+ bool setData(const QModelIndex & index, const QVariant & value, int role);
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ QModelIndex index(int row, int column, const QModelIndex & parent) const;
+ bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());
+ Qt::ItemFlags flags(const QModelIndex & index) const;
+ /*@}*/
+
+ /* Add an address to the model.
+ Returns the added address on success, and an empty string otherwise.
+ */
+ 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;
+
+ /* Look up row index of an address in the model.
+ Return -1 if not found.
+ */
+ int lookupAddress(const QString &address) const;
+
+ EditStatus getEditStatus() const { return editStatus; }
+
+private:
+ WalletModel *walletModel;
+ CWallet *wallet;
+ AddressTablePriv *priv;
+ QStringList columns;
+ EditStatus editStatus;
+
+signals:
+ void defaultAddressChanged(const QString &address);
+
+public slots:
+ void update();
+};
+
+#endif // ADDRESSTABLEMODEL_H
diff --git a/src/qt/askpassphrasedialog.cpp b/src/qt/askpassphrasedialog.cpp
new file mode 100644
index 0000000000..7b9d4912ff
--- /dev/null
+++ b/src/qt/askpassphrasedialog.cpp
@@ -0,0 +1,249 @@
+#include "askpassphrasedialog.h"
+#include "ui_askpassphrasedialog.h"
+
+#include "guiconstants.h"
+#include "walletmodel.h"
+
+#include <QMessageBox>
+#include <QPushButton>
+#include <QKeyEvent>
+
+AskPassphraseDialog::AskPassphraseDialog(Mode mode, QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::AskPassphraseDialog),
+ mode(mode),
+ model(0),
+ fCapsLock(false)
+{
+ ui->setupUi(this);
+ ui->passEdit1->setMaxLength(MAX_PASSPHRASE_SIZE);
+ ui->passEdit2->setMaxLength(MAX_PASSPHRASE_SIZE);
+ ui->passEdit3->setMaxLength(MAX_PASSPHRASE_SIZE);
+
+ // Setup Caps Lock detection.
+ ui->passEdit1->installEventFilter(this);
+ ui->passEdit2->installEventFilter(this);
+ ui->passEdit3->installEventFilter(this);
+ ui->capsLabel->clear();
+
+ switch(mode)
+ {
+ case Encrypt: // Ask passphrase x2
+ ui->passLabel1->hide();
+ ui->passEdit1->hide();
+ ui->warningLabel->setText(tr("Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>10 or more random characters</b>, or <b>eight or more words</b>."));
+ setWindowTitle(tr("Encrypt wallet"));
+ break;
+ case Unlock: // Ask passphrase
+ ui->warningLabel->setText(tr("This operation needs your wallet passphrase to unlock the wallet."));
+ ui->passLabel2->hide();
+ ui->passEdit2->hide();
+ ui->passLabel3->hide();
+ ui->passEdit3->hide();
+ setWindowTitle(tr("Unlock wallet"));
+ break;
+ case Decrypt: // Ask passphrase
+ ui->warningLabel->setText(tr("This operation needs your wallet passphrase to decrypt the wallet."));
+ ui->passLabel2->hide();
+ ui->passEdit2->hide();
+ ui->passLabel3->hide();
+ ui->passEdit3->hide();
+ setWindowTitle(tr("Decrypt wallet"));
+ break;
+ case ChangePass: // Ask old passphrase + new passphrase x2
+ setWindowTitle(tr("Change passphrase"));
+ ui->warningLabel->setText(tr("Enter the old and new passphrase to the wallet."));
+ break;
+ }
+
+ textChanged();
+ connect(ui->passEdit1, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
+ connect(ui->passEdit2, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
+ connect(ui->passEdit3, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
+}
+
+AskPassphraseDialog::~AskPassphraseDialog()
+{
+ // Attempt to overwrite text so that they do not linger around in memory
+ ui->passEdit1->setText(QString(" ").repeated(ui->passEdit1->text().size()));
+ ui->passEdit2->setText(QString(" ").repeated(ui->passEdit2->text().size()));
+ ui->passEdit3->setText(QString(" ").repeated(ui->passEdit3->text().size()));
+ delete ui;
+}
+
+void AskPassphraseDialog::setModel(WalletModel *model)
+{
+ this->model = model;
+}
+
+void AskPassphraseDialog::accept()
+{
+ SecureString oldpass, newpass1, newpass2;
+ if(!model)
+ return;
+ oldpass.reserve(MAX_PASSPHRASE_SIZE);
+ newpass1.reserve(MAX_PASSPHRASE_SIZE);
+ newpass2.reserve(MAX_PASSPHRASE_SIZE);
+ // TODO: get rid of this .c_str() by implementing SecureString::operator=(std::string)
+ // Alternately, find a way to make this input mlock()'d to begin with.
+ oldpass.assign(ui->passEdit1->text().toStdString().c_str());
+ newpass1.assign(ui->passEdit2->text().toStdString().c_str());
+ newpass2.assign(ui->passEdit3->text().toStdString().c_str());
+
+ switch(mode)
+ {
+ case Encrypt: {
+ if(newpass1.empty() || newpass2.empty())
+ {
+ // Cannot encrypt with empty passphrase
+ break;
+ }
+ QMessageBox::StandardButton retval = QMessageBox::question(this, tr("Confirm wallet encryption"),
+ tr("WARNING: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!\nAre you sure you wish to encrypt your wallet?"),
+ QMessageBox::Yes|QMessageBox::Cancel,
+ QMessageBox::Cancel);
+ if(retval == QMessageBox::Yes)
+ {
+ if(newpass1 == newpass2)
+ {
+ if(model->setWalletEncrypted(true, newpass1))
+ {
+ QMessageBox::warning(this, tr("Wallet encrypted"),
+ "<qt>" +
+ tr("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.") +
+ "<br><br><b>" +
+ tr("IMPORTANT: Any previous backups you have made of your wallet file "
+ "should be replaced with the newly generated, encrypted wallet file. "
+ "For security reasons, previous backups of the unencrypted wallet file "
+ "will become useless as soon as you start using the new, encrypted wallet.") +
+ "</b></qt>");
+ QApplication::quit();
+ }
+ else
+ {
+ QMessageBox::critical(this, tr("Wallet encryption failed"),
+ tr("Wallet encryption failed due to an internal error. Your wallet was not encrypted."));
+ }
+ QDialog::accept(); // Success
+ }
+ else
+ {
+ QMessageBox::critical(this, tr("Wallet encryption failed"),
+ tr("The supplied passphrases do not match."));
+ }
+ }
+ else
+ {
+ QDialog::reject(); // Cancelled
+ }
+ } break;
+ case Unlock:
+ if(!model->setWalletLocked(false, oldpass))
+ {
+ QMessageBox::critical(this, tr("Wallet unlock failed"),
+ tr("The passphrase entered for the wallet decryption was incorrect."));
+ }
+ else
+ {
+ QDialog::accept(); // Success
+ }
+ break;
+ case Decrypt:
+ if(!model->setWalletEncrypted(false, oldpass))
+ {
+ QMessageBox::critical(this, tr("Wallet decryption failed"),
+ tr("The passphrase entered for the wallet decryption was incorrect."));
+ }
+ else
+ {
+ QDialog::accept(); // Success
+ }
+ break;
+ case ChangePass:
+ if(newpass1 == newpass2)
+ {
+ if(model->changePassphrase(oldpass, newpass1))
+ {
+ QMessageBox::information(this, tr("Wallet encrypted"),
+ tr("Wallet passphrase was successfully changed."));
+ QDialog::accept(); // Success
+ }
+ else
+ {
+ QMessageBox::critical(this, tr("Wallet encryption failed"),
+ tr("The passphrase entered for the wallet decryption was incorrect."));
+ }
+ }
+ else
+ {
+ QMessageBox::critical(this, tr("Wallet encryption failed"),
+ tr("The supplied passphrases do not match."));
+ }
+ break;
+ }
+}
+
+void AskPassphraseDialog::textChanged()
+{
+ // Validate input, set Ok button to enabled when acceptable
+ bool acceptable = false;
+ switch(mode)
+ {
+ case Encrypt: // New passphrase x2
+ acceptable = !ui->passEdit2->text().isEmpty() && !ui->passEdit3->text().isEmpty();
+ break;
+ case Unlock: // Old passphrase x1
+ case Decrypt:
+ acceptable = !ui->passEdit1->text().isEmpty();
+ break;
+ case ChangePass: // Old passphrase x1, new passphrase x2
+ acceptable = !ui->passEdit1->text().isEmpty() && !ui->passEdit2->text().isEmpty() && !ui->passEdit3->text().isEmpty();
+ break;
+ }
+ ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(acceptable);
+}
+
+bool AskPassphraseDialog::event(QEvent *event)
+{
+ // Detect Caps Lock key press.
+ if (event->type() == QEvent::KeyPress) {
+ QKeyEvent *ke = static_cast<QKeyEvent *>(event);
+ if (ke->key() == Qt::Key_CapsLock) {
+ fCapsLock = !fCapsLock;
+ }
+ if (fCapsLock) {
+ ui->capsLabel->setText(tr("Warning: The Caps Lock key is on."));
+ } else {
+ ui->capsLabel->clear();
+ }
+ }
+ return QWidget::event(event);
+}
+
+bool AskPassphraseDialog::eventFilter(QObject *object, QEvent *event)
+{
+ /* Detect Caps Lock.
+ * There is no good OS-independent way to check a key state in Qt, but we
+ * can detect Caps Lock by checking for the following condition:
+ * Shift key is down and the result is a lower case character, or
+ * Shift key is not down and the result is an upper case character.
+ */
+ if (event->type() == QEvent::KeyPress) {
+ QKeyEvent *ke = static_cast<QKeyEvent *>(event);
+ QString str = ke->text();
+ if (str.length() != 0) {
+ const QChar *psz = str.unicode();
+ bool fShift = (ke->modifiers() & Qt::ShiftModifier) != 0;
+ if ((fShift && psz->isLower()) || (!fShift && psz->isUpper())) {
+ fCapsLock = true;
+ ui->capsLabel->setText(tr("Warning: The Caps Lock key is on."));
+ } else if (psz->isLetter()) {
+ fCapsLock = false;
+ ui->capsLabel->clear();
+ }
+ }
+ }
+ return QDialog::eventFilter(object, event);
+}
diff --git a/src/qt/askpassphrasedialog.h b/src/qt/askpassphrasedialog.h
new file mode 100644
index 0000000000..b500ff49bf
--- /dev/null
+++ b/src/qt/askpassphrasedialog.h
@@ -0,0 +1,45 @@
+#ifndef ASKPASSPHRASEDIALOG_H
+#define ASKPASSPHRASEDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+ class AskPassphraseDialog;
+}
+
+class WalletModel;
+
+/** Multifunctional dialog to ask for passphrases. Used for encryption, unlocking, and changing the passphrase.
+ */
+class AskPassphraseDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ enum Mode {
+ Encrypt, /**< Ask passphrase twice and encrypt */
+ Unlock, /**< Ask passphrase and unlock */
+ ChangePass, /**< Ask old passphrase + new passphrase twice */
+ Decrypt /**< Ask passphrase and decrypt wallet */
+ };
+
+ explicit AskPassphraseDialog(Mode mode, QWidget *parent = 0);
+ ~AskPassphraseDialog();
+
+ void accept();
+
+ void setModel(WalletModel *model);
+
+private:
+ Ui::AskPassphraseDialog *ui;
+ Mode mode;
+ WalletModel *model;
+ bool fCapsLock;
+
+private slots:
+ void textChanged();
+ bool event(QEvent *event);
+ bool eventFilter(QObject *, QEvent *event);
+};
+
+#endif // ASKPASSPHRASEDIALOG_H
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
new file mode 100644
index 0000000000..debd280509
--- /dev/null
+++ b/src/qt/bitcoin.cpp
@@ -0,0 +1,229 @@
+/*
+ * W.J. van der Laan 2011
+ */
+#include "bitcoingui.h"
+#include "clientmodel.h"
+#include "walletmodel.h"
+#include "optionsmodel.h"
+
+#include "headers.h"
+#include "init.h"
+#include "util.h"
+
+#include <QApplication>
+#include <QMessageBox>
+#include <QThread>
+#include <QTextCodec>
+#include <QLocale>
+#include <QTranslator>
+#include <QSplashScreen>
+#include <QLibraryInfo>
+
+// Need a global reference for the notifications to find the GUI
+BitcoinGUI *guiref;
+QSplashScreen *splashref;
+
+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;
+}
+
+int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style, wxWindow* parent, int x, int y)
+{
+ bool modal = style & wxMODAL;
+
+ if (modal)
+ while (!guiref)
+ Sleep(1000);
+
+ // Message from network thread
+ if(guiref)
+ {
+ QMetaObject::invokeMethod(guiref, "error", Qt::QueuedConnection,
+ Q_ARG(QString, QString::fromStdString(caption)),
+ Q_ARG(QString, QString::fromStdString(message)),
+ Q_ARG(bool, modal));
+ }
+ else
+ {
+ 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, wxWindow* parent)
+{
+ if(!guiref)
+ return false;
+ if(nFeeRequired < MIN_TX_FEE || nFeeRequired <= nTransactionFee || fDaemon)
+ 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,
+ Q_ARG(qint64, nFeeRequired),
+ Q_ARG(bool*, &payFee));
+
+ return payFee;
+}
+
+void CalledSetStatusBar(const std::string& strText, int nField)
+{
+ // Only used for built-in mining, which is disabled, simple ignore
+}
+
+void UIThreadCall(boost::function0<void> fn)
+{
+ // Only used for built-in mining, which is disabled, simple ignore
+}
+
+void MainFrameRepaint()
+{
+ if(guiref)
+ QMetaObject::invokeMethod(guiref, "refreshStatusBar", Qt::QueuedConnection);
+}
+
+void InitMessage(const std::string &message)
+{
+ if(splashref)
+ {
+ splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom|Qt::AlignHCenter, QColor(255,255,200));
+ QApplication::instance()->processEvents();
+ }
+}
+
+void QueueShutdown()
+{
+ QMetaObject::invokeMethod(QCoreApplication::instance(), "quit", Qt::QueuedConnection);
+}
+
+/*
+ Translate string to current locale using Qt.
+ */
+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 occurred. Bitcoin can no longer continue safely and will quit.") + QString("\n\n") + QString::fromStdString(strMiscWarning));
+ exit(1);
+}
+
+int main(int argc, char *argv[])
+{
+ QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
+ QTextCodec::setCodecForCStrings(QTextCodec::codecForTr());
+
+ Q_INIT_RESOURCE(bitcoin);
+ QApplication app(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"
+ QString lang = lang_territory;
+ lang.truncate(lang_territory.lastIndexOf('_')); // "en"
+ QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator;
+
+ qtTranslatorBase.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang);
+ if (!qtTranslatorBase.isEmpty())
+ app.installTranslator(&qtTranslatorBase);
+
+ qtTranslator.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang_territory);
+ if (!qtTranslator.isEmpty())
+ app.installTranslator(&qtTranslator);
+
+ translatorBase.load(":/translations/"+lang);
+ if (!translatorBase.isEmpty())
+ app.installTranslator(&translatorBase);
+
+ translator.load(":/translations/"+lang_territory);
+ if (!translator.isEmpty())
+ app.installTranslator(&translator);
+
+ app.setApplicationName(QApplication::translate("main", "Bitcoin-Qt"));
+
+ QSplashScreen splash(QPixmap(":/images/splash"), 0);
+ if (!GetBoolArg("-min"))
+ {
+ splash.show();
+ splash.setAutoFillBackground(true);
+ splashref = &splash;
+ }
+
+ app.processEvents();
+
+ app.setQuitOnLastWindowClosed(false);
+
+ try
+ {
+ 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;
+ if (splashref)
+ splash.finish(&window);
+ OptionsModel optionsModel(pwalletMain);
+ ClientModel clientModel(&optionsModel);
+ WalletModel walletModel(pwalletMain, &optionsModel);
+
+ guiref = &window;
+ window.setClientModel(&clientModel);
+ window.setWalletModel(&walletModel);
+
+ // If -min option passed, start window minimized.
+ if(GetBoolArg("-min"))
+ {
+ window.showMinimized();
+ }
+ else
+ {
+ window.show();
+ }
+
+ app.exec();
+
+ window.hide();
+ guiref = 0;
+ }
+ // Shutdown the core and its threads, but don't exit Bitcoin-Qt here
+ Shutdown(NULL);
+ }
+ else
+ {
+ return 1;
+ }
+ } catch (std::exception& e) {
+ handleRunawayException(&e);
+ } catch (...) {
+ handleRunawayException(NULL);
+ }
+ return 0;
+}
diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc
new file mode 100644
index 0000000000..aea61d6982
--- /dev/null
+++ b/src/qt/bitcoin.qrc
@@ -0,0 +1,64 @@
+<RCC>
+ <qresource prefix="/icons" lang="edit">
+ <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>
+ <file alias="send">res/icons/send.png</file>
+ <file alias="toolbar">res/icons/toolbar.png</file>
+ <file alias="connect_0">res/icons/connect0_16.png</file>
+ <file alias="connect_1">res/icons/connect1_16.png</file>
+ <file alias="connect_2">res/icons/connect2_16.png</file>
+ <file alias="connect_3">res/icons/connect3_16.png</file>
+ <file alias="connect_4">res/icons/connect4_16.png</file>
+ <file alias="transaction_0">res/icons/transaction0.png</file>
+ <file alias="transaction_confirmed">res/icons/transaction2.png</file>
+ <file alias="transaction_1">res/icons/clock1.png</file>
+ <file alias="transaction_2">res/icons/clock2.png</file>
+ <file alias="transaction_3">res/icons/clock3.png</file>
+ <file alias="transaction_4">res/icons/clock4.png</file>
+ <file alias="transaction_5">res/icons/clock5.png</file>
+ <file alias="options">res/icons/configure.png</file>
+ <file alias="receiving_addresses">res/icons/receive.png</file>
+ <file alias="editpaste">res/icons/editpaste.png</file>
+ <file alias="editcopy">res/icons/editcopy.png</file>
+ <file alias="add">res/icons/add.png</file>
+ <file alias="bitcoin_testnet">res/icons/bitcoin_testnet.png</file>
+ <file alias="toolbar_testnet">res/icons/toolbar_testnet.png</file>
+ <file alias="edit">res/icons/edit.png</file>
+ <file alias="history">res/icons/history.png</file>
+ <file alias="overview">res/icons/overview.png</file>
+ <file alias="export">res/icons/export.png</file>
+ <file alias="synced">res/icons/synced.png</file>
+ <file alias="remove">res/icons/remove.png</file>
+ <file alias="tx_mined">res/icons/tx_mined.png</file>
+ <file alias="tx_input">res/icons/tx_input.png</file>
+ <file alias="tx_output">res/icons/tx_output.png</file>
+ <file alias="tx_inout">res/icons/tx_inout.png</file>
+ <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>
+ </qresource>
+ <qresource prefix="/images">
+ <file alias="about">res/images/about.png</file>
+ <file alias="splash">res/images/splash2.jpg</file>
+ </qresource>
+ <qresource prefix="/movies">
+ <file alias="update_spinner">res/movies/update_spinner.mng</file>
+ </qresource>
+ <qresource prefix="/translations">
+ <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="hu">locale/bitcoin_hu.qm</file>
+ <file alias="it">locale/bitcoin_it.qm</file>
+ <file alias="nb">locale/bitcoin_nb.qm</file>
+ <file alias="nl">locale/bitcoin_nl.qm</file>
+ <file alias="pt_BR">locale/bitcoin_pt_BR.qm</file>
+ <file alias="ru">locale/bitcoin_ru.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>
+ </qresource>
+</RCC>
diff --git a/src/qt/bitcoinaddressvalidator.cpp b/src/qt/bitcoinaddressvalidator.cpp
new file mode 100644
index 0000000000..f1cc2aaa27
--- /dev/null
+++ b/src/qt/bitcoinaddressvalidator.cpp
@@ -0,0 +1,83 @@
+#include "bitcoinaddressvalidator.h"
+
+/* Base58 characters are:
+ "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
+
+ This is:
+ - All numbers except for '0'
+ - All upper-case letters except for 'I' and 'O'
+ - All lower-case letters except for 'l'
+
+ User friendly Base58 input can map
+ - 'l' and 'I' to '1'
+ - '0' and 'O' to 'o'
+*/
+
+BitcoinAddressValidator::BitcoinAddressValidator(QObject *parent) :
+ QValidator(parent)
+{
+}
+
+QValidator::State BitcoinAddressValidator::validate(QString &input, int &pos) const
+{
+ // Correction
+ for(int idx=0; idx<input.size();)
+ {
+ bool removeChar = false;
+ QChar ch = input.at(idx);
+ // Transform characters that are visually close
+ switch(ch.unicode())
+ {
+ case 'l':
+ case 'I':
+ input[idx] = QChar('1');
+ break;
+ case '0':
+ case 'O':
+ input[idx] = QChar('o');
+ break;
+ // Qt categorizes these as "Other_Format" not "Separator_Space"
+ case 0x200B: // ZERO WIDTH SPACE
+ case 0xFEFF: // ZERO WIDTH NO-BREAK SPACE
+ removeChar = true;
+ break;
+ default:
+ break;
+ }
+ // Remove whitespace
+ if(ch.isSpace())
+ removeChar = true;
+ // To next character
+ if(removeChar)
+ input.remove(idx, 1);
+ else
+ ++idx;
+ }
+
+ // Validation
+ QValidator::State state = QValidator::Acceptable;
+ for(int idx=0; idx<input.size(); ++idx)
+ {
+ int ch = input.at(idx).unicode();
+
+ if(((ch >= '0' && ch<='9') ||
+ (ch >= 'a' && ch<='z') ||
+ (ch >= 'A' && ch<='Z')) &&
+ ch != 'l' && ch != 'I' && ch != '0' && ch != 'O')
+ {
+ // Alphanumeric and not a 'forbidden' character
+ }
+ else
+ {
+ state = QValidator::Invalid;
+ }
+ }
+
+ // Empty address is "intermediate" input
+ if(input.isEmpty())
+ {
+ state = QValidator::Intermediate;
+ }
+
+ return state;
+}
diff --git a/src/qt/bitcoinaddressvalidator.h b/src/qt/bitcoinaddressvalidator.h
new file mode 100644
index 0000000000..6ca3bd6a05
--- /dev/null
+++ b/src/qt/bitcoinaddressvalidator.h
@@ -0,0 +1,24 @@
+#ifndef BITCOINADDRESSVALIDATOR_H
+#define BITCOINADDRESSVALIDATOR_H
+
+#include <QRegExpValidator>
+
+/** Base48 entry widget validator.
+ Corrects near-miss characters and refuses characters that are no part of base48.
+ */
+class BitcoinAddressValidator : public QValidator
+{
+ Q_OBJECT
+public:
+ explicit BitcoinAddressValidator(QObject *parent = 0);
+
+ State validate(QString &input, int &pos) const;
+
+ static const int MaxAddressLength = 34;
+signals:
+
+public slots:
+
+};
+
+#endif // BITCOINADDRESSVALIDATOR_H
diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp
new file mode 100644
index 0000000000..19cd5655cc
--- /dev/null
+++ b/src/qt/bitcoinamountfield.cpp
@@ -0,0 +1,167 @@
+#include "bitcoinamountfield.h"
+#include "qvaluecombobox.h"
+#include "bitcoinunits.h"
+
+#include "guiconstants.h"
+
+#include <QLabel>
+#include <QLineEdit>
+#include <QRegExpValidator>
+#include <QHBoxLayout>
+#include <QKeyEvent>
+#include <QDoubleSpinBox>
+#include <QComboBox>
+#include <QApplication>
+#include <qmath.h>
+
+BitcoinAmountField::BitcoinAmountField(QWidget *parent):
+ QWidget(parent), amount(0), currentUnit(-1)
+{
+ amount = new QDoubleSpinBox(this);
+ amount->setLocale(QLocale::c());
+ amount->setDecimals(8);
+ amount->installEventFilter(this);
+ amount->setMaximumWidth(170);
+
+ QHBoxLayout *layout = new QHBoxLayout(this);
+ layout->addWidget(amount);
+ unit = new QValueComboBox(this);
+ unit->setModel(new BitcoinUnits(this));
+ layout->addWidget(unit);
+ layout->addStretch(1);
+ layout->setContentsMargins(0,0,0,0);
+
+ setLayout(layout);
+
+ setFocusPolicy(Qt::TabFocus);
+ setFocusProxy(amount);
+
+ // If one if the widgets changes, the combined content changes as well
+ connect(amount, SIGNAL(valueChanged(QString)), this, SIGNAL(textChanged()));
+ connect(unit, SIGNAL(currentIndexChanged(int)), this, SLOT(unitChanged(int)));
+
+ // Set default based on configuration
+ unitChanged(unit->currentIndex());
+}
+
+void BitcoinAmountField::setText(const QString &text)
+{
+ if (text.isEmpty())
+ amount->clear();
+ else
+ amount->setValue(text.toDouble());
+}
+
+void BitcoinAmountField::clear()
+{
+ amount->clear();
+ unit->setCurrentIndex(0);
+}
+
+bool BitcoinAmountField::validate()
+{
+ bool valid = true;
+ if (amount->value() == 0.0)
+ valid = false;
+ if (valid && !BitcoinUnits::parse(currentUnit, text(), 0))
+ valid = false;
+
+ setValid(valid);
+
+ return valid;
+}
+
+void BitcoinAmountField::setValid(bool valid)
+{
+ if (valid)
+ amount->setStyleSheet("");
+ else
+ amount->setStyleSheet(STYLE_INVALID);
+}
+
+QString BitcoinAmountField::text() const
+{
+ if (amount->text().isEmpty())
+ return QString();
+ else
+ return amount->text();
+}
+
+bool BitcoinAmountField::eventFilter(QObject *object, QEvent *event)
+{
+ if (event->type() == QEvent::FocusIn)
+ {
+ // Clear invalid flag on focus
+ setValid(true);
+ }
+ else if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease)
+ {
+ QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
+ if (keyEvent->key() == Qt::Key_Comma)
+ {
+ // Translate a comma into a period
+ QKeyEvent periodKeyEvent(event->type(), Qt::Key_Period, keyEvent->modifiers(), ".", keyEvent->isAutoRepeat(), keyEvent->count());
+ qApp->sendEvent(object, &periodKeyEvent);
+ return true;
+ }
+ }
+ return QWidget::eventFilter(object, event);
+}
+
+QWidget *BitcoinAmountField::setupTabChain(QWidget *prev)
+{
+ QWidget::setTabOrder(prev, amount);
+ return amount;
+}
+
+qint64 BitcoinAmountField::value(bool *valid_out) const
+{
+ qint64 val_out = 0;
+ bool valid = BitcoinUnits::parse(currentUnit, text(), &val_out);
+ if(valid_out)
+ {
+ *valid_out = valid;
+ }
+ return val_out;
+}
+
+void BitcoinAmountField::setValue(qint64 value)
+{
+ setText(BitcoinUnits::format(currentUnit, value));
+}
+
+void BitcoinAmountField::unitChanged(int idx)
+{
+ // Use description tooltip for current unit for the combobox
+ unit->setToolTip(unit->itemData(idx, Qt::ToolTipRole).toString());
+
+ // Determine new unit ID
+ int newUnit = unit->itemData(idx, BitcoinUnits::UnitRole).toInt();
+
+ // Parse current value and convert to new unit
+ bool valid = false;
+ qint64 currentValue = value(&valid);
+
+ currentUnit = newUnit;
+
+ // Set max length after retrieving the value, to prevent truncation
+ amount->setDecimals(BitcoinUnits::decimals(currentUnit));
+ amount->setMaximum(qPow(10, BitcoinUnits::amountDigits(currentUnit)) - qPow(10, -amount->decimals()));
+
+ if(valid)
+ {
+ // If value was valid, re-place it in the widget with the new unit
+ setValue(currentValue);
+ }
+ else
+ {
+ // If current value is invalid, just clear field
+ setText("");
+ }
+ setValid(true);
+}
+
+void BitcoinAmountField::setDisplayUnit(int newUnit)
+{
+ unit->setValue(newUnit);
+}
diff --git a/src/qt/bitcoinamountfield.h b/src/qt/bitcoinamountfield.h
new file mode 100644
index 0000000000..4797c4c882
--- /dev/null
+++ b/src/qt/bitcoinamountfield.h
@@ -0,0 +1,60 @@
+#ifndef BITCOINAMOUNTFIELD_H
+#define BITCOINAMOUNTFIELD_H
+
+#include <QWidget>
+
+QT_BEGIN_NAMESPACE
+class QDoubleSpinBox;
+class QValueComboBox;
+QT_END_NAMESPACE
+
+/** Widget for entering bitcoin amounts.
+ */
+class BitcoinAmountField: public QWidget
+{
+ Q_OBJECT
+ Q_PROPERTY(qint64 value READ value WRITE setValue NOTIFY textChanged USER true)
+public:
+ explicit BitcoinAmountField(QWidget *parent = 0);
+
+ qint64 value(bool *valid=0) const;
+ void setValue(qint64 value);
+
+ /** Mark current value as invalid in UI. */
+ void setValid(bool valid);
+ /** Perform input validation, mark field as invalid if entered value is not valid. */
+ bool validate();
+
+ /** Change unit used to display amount. */
+ void setDisplayUnit(int unit);
+
+ /** Make field empty and ready for new input. */
+ void clear();
+
+ /** Qt messes up the tab chain by default in some cases (issue https://bugreports.qt-project.org/browse/QTBUG-10907),
+ in these cases we have to set it up manually.
+ */
+ QWidget *setupTabChain(QWidget *prev);
+
+signals:
+ void textChanged();
+
+protected:
+ /** Intercept focus-in event and ',' key presses */
+ bool eventFilter(QObject *object, QEvent *event);
+
+private:
+ QDoubleSpinBox *amount;
+ QValueComboBox *unit;
+ int currentUnit;
+
+ void setText(const QString &text);
+ QString text() const;
+
+private slots:
+ void unitChanged(int idx);
+
+};
+
+
+#endif // BITCOINAMOUNTFIELD_H
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
new file mode 100644
index 0000000000..5768c5a402
--- /dev/null
+++ b/src/qt/bitcoingui.cpp
@@ -0,0 +1,755 @@
+/*
+ * Qt4 bitcoin GUI.
+ *
+ * W.J. van der Laan 2011
+ * The Bitcoin Developers 2011
+ */
+
+#include "checkpoints.h"
+
+#include "bitcoingui.h"
+#include "transactiontablemodel.h"
+#include "addressbookpage.h"
+#include "sendcoinsdialog.h"
+#include "optionsdialog.h"
+#include "aboutdialog.h"
+#include "clientmodel.h"
+#include "walletmodel.h"
+#include "editaddressdialog.h"
+#include "optionsmodel.h"
+#include "transactiondescdialog.h"
+#include "addresstablemodel.h"
+#include "transactionview.h"
+#include "overviewpage.h"
+#include "bitcoinunits.h"
+#include "guiconstants.h"
+#include "askpassphrasedialog.h"
+#include "notificator.h"
+
+#ifdef Q_WS_MAC
+#include "macdockiconhandler.h"
+#endif
+
+#include <QApplication>
+#include <QMainWindow>
+#include <QMenuBar>
+#include <QMenu>
+#include <QIcon>
+#include <QTabWidget>
+#include <QVBoxLayout>
+#include <QToolBar>
+#include <QStatusBar>
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QLocale>
+#include <QMessageBox>
+#include <QProgressBar>
+#include <QStackedWidget>
+#include <QDateTime>
+#include <QMovie>
+#include <QTimer>
+
+#include <QDragEnterEvent>
+#include <QUrl>
+#include <QStyle>
+
+#include <iostream>
+
+BitcoinGUI::BitcoinGUI(QWidget *parent):
+ QMainWindow(parent),
+ clientModel(0),
+ walletModel(0),
+ encryptWalletAction(0),
+ changePassphraseAction(0),
+ aboutQtAction(0),
+ trayIcon(0),
+ notificator(0)
+{
+ resize(850, 550);
+ setWindowTitle(tr("Bitcoin Wallet"));
+#ifndef Q_WS_MAC
+ setWindowIcon(QIcon(":icons/bitcoin"));
+#else
+ setUnifiedTitleAndToolBarOnMac(true);
+ QApplication::setAttribute(Qt::AA_DontShowIconsInMenus);
+#endif
+ // Accept D&D of URIs
+ setAcceptDrops(true);
+
+ // Create actions for the toolbar, menu bar and tray/dock icon
+ createActions();
+
+ // Create application menu bar
+ createMenuBar();
+
+ // Create the toolbars
+ createToolBars();
+
+ // Create the tray icon (or setup the dock icon)
+ createTrayIcon();
+
+ // Create tabs
+ overviewPage = new OverviewPage();
+
+ transactionsPage = new QWidget(this);
+ QVBoxLayout *vbox = new QVBoxLayout();
+ transactionView = new TransactionView(this);
+ vbox->addWidget(transactionView);
+ transactionsPage->setLayout(vbox);
+
+ addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab);
+
+ receiveCoinsPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab);
+
+ sendCoinsPage = new SendCoinsDialog(this);
+
+ centralWidget = new QStackedWidget(this);
+ centralWidget->addWidget(overviewPage);
+ centralWidget->addWidget(transactionsPage);
+ centralWidget->addWidget(addressBookPage);
+ centralWidget->addWidget(receiveCoinsPage);
+ centralWidget->addWidget(sendCoinsPage);
+ setCentralWidget(centralWidget);
+
+ // Create status bar
+ statusBar();
+
+ // Status bar notification icons
+ QFrame *frameBlocks = new QFrame();
+ //frameBlocks->setFrameStyle(QFrame::Panel | QFrame::Sunken);
+ frameBlocks->setContentsMargins(0,0,0,0);
+ frameBlocks->setMinimumWidth(56);
+ frameBlocks->setMaximumWidth(56);
+ QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks);
+ frameBlocksLayout->setContentsMargins(3,0,3,0);
+ frameBlocksLayout->setSpacing(3);
+ labelEncryptionIcon = new QLabel();
+ labelConnectionsIcon = new QLabel();
+ labelBlocksIcon = new QLabel();
+ frameBlocksLayout->addStretch();
+ frameBlocksLayout->addWidget(labelEncryptionIcon);
+ frameBlocksLayout->addStretch();
+ frameBlocksLayout->addWidget(labelConnectionsIcon);
+ frameBlocksLayout->addStretch();
+ frameBlocksLayout->addWidget(labelBlocksIcon);
+ frameBlocksLayout->addStretch();
+
+ // Progress bar for blocks download
+ progressBarLabel = new QLabel(tr("Synchronizing with network..."));
+ progressBarLabel->setVisible(false);
+ progressBar = new QProgressBar();
+ progressBar->setToolTip(tr("Block chain synchronization in progress"));
+ progressBar->setVisible(false);
+
+ // Override style sheet for progress bar for styles that have a segmented progress bar,
+ // as they make the text unreadable (workaround for issue #1071)
+ // See https://qt-project.org/doc/qt-4.8/gallery.html
+ QString curStyle = qApp->style()->metaObject()->className();
+ if(curStyle == "QWindowsStyle" || curStyle == "QWindowsXPStyle")
+ {
+ progressBar->setStyleSheet("QProgressBar { background-color: #e8e8e8; border: 1px solid grey; border-radius: 7px; padding: 1px; text-align: center; } QProgressBar::chunk { background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #FF8000, stop: 1 orange); border-radius: 7px; margin: 0px; }");
+ }
+
+ statusBar()->addWidget(progressBarLabel);
+ statusBar()->addWidget(progressBar);
+ statusBar()->addPermanentWidget(frameBlocks);
+
+ syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this);
+
+ // Clicking on a transaction on the overview page simply sends you to transaction history page
+ connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage()));
+
+ // Double-clicking on a transaction on the transaction history page shows details
+ connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails()));
+
+ gotoOverviewPage();
+}
+
+BitcoinGUI::~BitcoinGUI()
+{
+#ifdef Q_WS_MAC
+ delete appMenuBar;
+#endif
+}
+
+void BitcoinGUI::createActions()
+{
+ QActionGroup *tabGroup = new QActionGroup(this);
+
+ overviewAction = new QAction(QIcon(":/icons/overview"), tr("&Overview"), this);
+ overviewAction->setToolTip(tr("Show general overview of wallet"));
+ overviewAction->setCheckable(true);
+ overviewAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_1));
+ tabGroup->addAction(overviewAction);
+
+ historyAction = new QAction(QIcon(":/icons/history"), tr("&Transactions"), this);
+ historyAction->setToolTip(tr("Browse transaction history"));
+ historyAction->setCheckable(true);
+ historyAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_4));
+ tabGroup->addAction(historyAction);
+
+ addressBookAction = new QAction(QIcon(":/icons/address-book"), tr("&Address Book"), this);
+ addressBookAction->setToolTip(tr("Edit the list of stored addresses and labels"));
+ addressBookAction->setCheckable(true);
+ addressBookAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_5));
+ tabGroup->addAction(addressBookAction);
+
+ receiveCoinsAction = new QAction(QIcon(":/icons/receiving_addresses"), tr("&Receive coins"), this);
+ receiveCoinsAction->setToolTip(tr("Show the list of addresses for receiving payments"));
+ receiveCoinsAction->setCheckable(true);
+ receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3));
+ tabGroup->addAction(receiveCoinsAction);
+
+ sendCoinsAction = new QAction(QIcon(":/icons/send"), tr("&Send coins"), this);
+ sendCoinsAction->setToolTip(tr("Send coins to a bitcoin address"));
+ sendCoinsAction->setCheckable(true);
+ sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
+ tabGroup->addAction(sendCoinsAction);
+
+ connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormal()));
+ connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage()));
+ connect(historyAction, SIGNAL(triggered()), this, SLOT(showNormal()));
+ connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
+ connect(addressBookAction, SIGNAL(triggered()), this, SLOT(showNormal()));
+ connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage()));
+ connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(showNormal()));
+ connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage()));
+ connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormal()));
+ connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage()));
+
+ quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this);
+ quitAction->setToolTip(tr("Quit application"));
+ quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q));
+ quitAction->setMenuRole(QAction::QuitRole);
+ aboutAction = new QAction(QIcon(":/icons/bitcoin"), tr("&About %1").arg(qApp->applicationName()), this);
+ aboutAction->setToolTip(tr("Show information about Bitcoin"));
+ aboutAction->setMenuRole(QAction::AboutRole);
+ aboutQtAction = new QAction(tr("About &Qt"), this);
+ aboutQtAction->setToolTip(tr("Show information about Qt"));
+ aboutQtAction->setMenuRole(QAction::AboutQtRole);
+ 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"));
+ exportAction = new QAction(QIcon(":/icons/export"), tr("&Export..."), this);
+ exportAction->setToolTip(tr("Export the current view to a file"));
+ encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet"), this);
+ encryptWalletAction->setToolTip(tr("Encrypt or decrypt wallet"));
+ encryptWalletAction->setCheckable(true);
+ changePassphraseAction = new QAction(QIcon(":/icons/key"), tr("&Change Passphrase"), this);
+ changePassphraseAction->setToolTip(tr("Change the passphrase used for wallet encryption"));
+
+ connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
+ 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(encryptWalletAction, SIGNAL(triggered(bool)), this, SLOT(encryptWallet(bool)));
+ connect(changePassphraseAction, SIGNAL(triggered()), this, SLOT(changePassphrase()));
+}
+
+void BitcoinGUI::createMenuBar()
+{
+#ifdef Q_WS_MAC
+ // Create a decoupled menu bar on Mac which stays even if the window is closed
+ appMenuBar = new QMenuBar();
+#else
+ // Get the main window's menu bar on other platforms
+ appMenuBar = menuBar();
+#endif
+
+ // Configure the menus
+ QMenu *file = appMenuBar->addMenu(tr("&File"));
+ file->addAction(quitAction);
+
+ QMenu *settings = appMenuBar->addMenu(tr("&Settings"));
+ settings->addAction(encryptWalletAction);
+ settings->addAction(changePassphraseAction);
+ settings->addSeparator();
+ settings->addAction(optionsAction);
+
+ QMenu *help = appMenuBar->addMenu(tr("&Help"));
+ help->addAction(aboutAction);
+ help->addAction(aboutQtAction);
+}
+
+void BitcoinGUI::createToolBars()
+{
+ QToolBar *toolbar = addToolBar(tr("Tabs toolbar"));
+ toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ toolbar->addAction(overviewAction);
+ toolbar->addAction(sendCoinsAction);
+ toolbar->addAction(receiveCoinsAction);
+ toolbar->addAction(historyAction);
+ toolbar->addAction(addressBookAction);
+
+ QToolBar *toolbar2 = addToolBar(tr("Actions toolbar"));
+ toolbar2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ toolbar2->addAction(exportAction);
+}
+
+void BitcoinGUI::setClientModel(ClientModel *clientModel)
+{
+ this->clientModel = clientModel;
+ if(clientModel)
+ {
+ // Replace some strings and icons, when using the testnet
+ if(clientModel->isTestNet())
+ {
+ QString title_testnet = windowTitle() + QString(" ") + tr("[testnet]");
+ setWindowTitle(title_testnet);
+#ifndef Q_WS_MAC
+ setWindowIcon(QIcon(":icons/bitcoin_testnet"));
+#else
+ MacDockIconHandler::instance()->setIcon(QIcon(":icons/bitcoin_testnet"));
+#endif
+ if(trayIcon)
+ {
+ trayIcon->setToolTip(title_testnet);
+ trayIcon->setIcon(QIcon(":/icons/toolbar_testnet"));
+ }
+
+ aboutAction->setIcon(QIcon(":/icons/toolbar_testnet"));
+ }
+
+ // Keep up to date with client
+ setNumConnections(clientModel->getNumConnections());
+ connect(clientModel, SIGNAL(numConnectionsChanged(int)), this, SLOT(setNumConnections(int)));
+
+ setNumBlocks(clientModel->getNumBlocks());
+ 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)));
+ }
+}
+
+void BitcoinGUI::setWalletModel(WalletModel *walletModel)
+{
+ this->walletModel = walletModel;
+ if(walletModel)
+ {
+ // Report errors from wallet thread
+ connect(walletModel, SIGNAL(error(QString,QString)), this, SLOT(error(QString,QString)));
+
+ // Put transaction list in tabs
+ transactionView->setModel(walletModel);
+
+ overviewPage->setModel(walletModel);
+ addressBookPage->setModel(walletModel->getAddressTableModel());
+ receiveCoinsPage->setModel(walletModel->getAddressTableModel());
+ sendCoinsPage->setModel(walletModel);
+
+ setEncryptionStatus(walletModel->getEncryptionStatus());
+ connect(walletModel, SIGNAL(encryptionStatusChanged(int)), this, SLOT(setEncryptionStatus(int)));
+
+ // Balloon pop-up for new transaction
+ connect(walletModel->getTransactionTableModel(), SIGNAL(rowsInserted(QModelIndex,int,int)),
+ this, SLOT(incomingTransaction(QModelIndex,int,int)));
+
+ // Ask for passphrase if needed
+ connect(walletModel, SIGNAL(requireUnlock()), this, SLOT(unlockWallet()));
+ }
+}
+
+void BitcoinGUI::createTrayIcon()
+{
+ QMenu *trayIconMenu;
+#ifndef Q_WS_MAC
+ trayIcon = new QSystemTrayIcon(this);
+ trayIconMenu = new QMenu(this);
+ trayIcon->setContextMenu(trayIconMenu);
+ trayIcon->setToolTip("Bitcoin client");
+ trayIcon->setIcon(QIcon(":/icons/toolbar"));
+ connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
+ this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason)));
+ trayIcon->show();
+#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()));
+ trayIconMenu = dockIconHandler->dockMenu();
+#endif
+
+ // Configuration of the tray icon (or dock icon) icon menu
+ trayIconMenu->addAction(openBitcoinAction);
+ trayIconMenu->addSeparator();
+ trayIconMenu->addAction(receiveCoinsAction);
+ trayIconMenu->addAction(sendCoinsAction);
+ trayIconMenu->addSeparator();
+ trayIconMenu->addAction(optionsAction);
+#ifndef Q_WS_MAC // This is built-in on Mac
+ trayIconMenu->addSeparator();
+ trayIconMenu->addAction(quitAction);
+#endif
+
+ notificator = new Notificator(tr("bitcoin-qt"), trayIcon);
+}
+
+#ifndef Q_WS_MAC
+void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
+{
+ if(reason == QSystemTrayIcon::Trigger)
+ {
+ // Click on system tray icon triggers "open bitcoin"
+ openBitcoinAction->trigger();
+ }
+}
+#endif
+
+void BitcoinGUI::optionsClicked()
+{
+ if(!clientModel || !clientModel->getOptionsModel())
+ return;
+ OptionsDialog dlg;
+ dlg.setModel(clientModel->getOptionsModel());
+ dlg.exec();
+}
+
+void BitcoinGUI::aboutClicked()
+{
+ AboutDialog dlg;
+ dlg.setModel(clientModel);
+ dlg.exec();
+}
+
+void BitcoinGUI::setNumConnections(int count)
+{
+ QString icon;
+ switch(count)
+ {
+ case 0: icon = ":/icons/connect_0"; break;
+ case 1: case 2: case 3: icon = ":/icons/connect_1"; break;
+ case 4: case 5: case 6: icon = ":/icons/connect_2"; break;
+ case 7: case 8: case 9: icon = ":/icons/connect_3"; break;
+ default: icon = ":/icons/connect_4"; break;
+ }
+ labelConnectionsIcon->setPixmap(QIcon(icon).pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
+ labelConnectionsIcon->setToolTip(tr("%n active connection(s) to Bitcoin network", "", count));
+}
+
+void BitcoinGUI::setNumBlocks(int count)
+{
+ if(!clientModel)
+ return;
+ int total = clientModel->getNumBlocksOfPeers();
+ QString tooltip;
+
+ if(count < total)
+ {
+ if (clientModel->getStatusBarWarnings() == "")
+ {
+ progressBarLabel->setVisible(true);
+ progressBarLabel->setText(tr("Synchronizing with network..."));
+ progressBar->setVisible(true);
+ progressBar->setMaximum(total);
+ progressBar->setValue(count);
+ }
+ else
+ {
+ progressBarLabel->setText(clientModel->getStatusBarWarnings());
+ progressBarLabel->setVisible(true);
+ progressBar->setVisible(false);
+ }
+ tooltip = tr("Downloaded %1 of %2 blocks of transaction history.").arg(count).arg(total);
+ }
+ else
+ {
+ if (clientModel->getStatusBarWarnings() == "")
+ progressBarLabel->setVisible(false);
+ else
+ {
+ progressBarLabel->setText(clientModel->getStatusBarWarnings());
+ progressBarLabel->setVisible(true);
+ }
+ progressBar->setVisible(false);
+ tooltip = tr("Downloaded %1 blocks of transaction history.").arg(count);
+ }
+
+ QDateTime now = QDateTime::currentDateTime();
+ QDateTime lastBlockDate = clientModel->getLastBlockDate();
+ int secs = lastBlockDate.secsTo(now);
+ QString text;
+
+ // Represent time from last generated block in human readable text
+ if(secs <= 0)
+ {
+ // Fully up to date. Leave text empty.
+ }
+ else if(secs < 60)
+ {
+ text = tr("%n second(s) ago","",secs);
+ }
+ else if(secs < 60*60)
+ {
+ text = tr("%n minute(s) ago","",secs/60);
+ }
+ else if(secs < 24*60*60)
+ {
+ text = tr("%n hour(s) ago","",secs/(60*60));
+ }
+ else
+ {
+ text = tr("%n day(s) ago","",secs/(60*60*24));
+ }
+
+ // Set icon state: spinning if catching up, tick otherwise
+ if(secs < 90*60 && count >= Checkpoints::GetTotalBlocksEstimate())
+ {
+ tooltip = tr("Up to date") + QString(".\n") + tooltip;
+ labelBlocksIcon->setPixmap(QIcon(":/icons/synced").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
+ }
+ else
+ {
+ tooltip = tr("Catching up...") + QString("\n") + tooltip;
+ labelBlocksIcon->setMovie(syncIconMovie);
+ syncIconMovie->start();
+ }
+
+ 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, bool modal)
+{
+ // Report errors from network/worker thread
+ 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())
+ {
+ QWindowStateChangeEvent *wsevt = static_cast<QWindowStateChangeEvent*>(e);
+ if(!(wsevt->oldState() & Qt::WindowMinimized) && isMinimized())
+ {
+ QTimer::singleShot(0, this, SLOT(hide()));
+ e->ignore();
+ }
+ }
+ }
+#endif
+}
+
+void BitcoinGUI::closeEvent(QCloseEvent *event)
+{
+ if(clientModel)
+ {
+#ifndef Q_WS_MAC // Ignored on Mac
+ if(!clientModel->getOptionsModel()->getMinimizeToTray() &&
+ !clientModel->getOptionsModel()->getMinimizeOnClose())
+ {
+ qApp->quit();
+ }
+#endif
+ }
+ QMainWindow::closeEvent(event);
+}
+
+void BitcoinGUI::askFee(qint64 nFeeRequired, bool *payFee)
+{
+ QString strMessage = tr("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?").arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, nFeeRequired));
+ QMessageBox::StandardButton retval = QMessageBox::question(
+ this, tr("Sending..."), strMessage,
+ QMessageBox::Yes|QMessageBox::Cancel, QMessageBox::Yes);
+ *payFee = (retval == QMessageBox::Yes);
+}
+
+void BitcoinGUI::incomingTransaction(const QModelIndex & parent, int start, int end)
+{
+ if(!walletModel || !clientModel)
+ return;
+ TransactionTableModel *ttm = walletModel->getTransactionTableModel();
+ qint64 amount = ttm->index(start, TransactionTableModel::Amount, parent)
+ .data(Qt::EditRole).toULongLong();
+ if(!clientModel->inInitialBlockDownload())
+ {
+ // On new transaction, make an info balloon
+ // Unless the initial block download is in progress, to prevent balloon-spam
+ QString date = ttm->index(start, TransactionTableModel::Date, parent)
+ .data().toString();
+ QString type = ttm->index(start, TransactionTableModel::Type, parent)
+ .data().toString();
+ QString address = ttm->index(start, TransactionTableModel::ToAddress, parent)
+ .data().toString();
+ QIcon icon = qvariant_cast<QIcon>(ttm->index(start,
+ TransactionTableModel::ToAddress, parent)
+ .data(Qt::DecorationRole));
+
+ notificator->notify(Notificator::Information,
+ (amount)<0 ? tr("Sent transaction") :
+ tr("Incoming transaction"),
+ tr("Date: %1\n"
+ "Amount: %2\n"
+ "Type: %3\n"
+ "Address: %4\n")
+ .arg(date)
+ .arg(BitcoinUnits::formatWithUnit(walletModel->getOptionsModel()->getDisplayUnit(), amount, true))
+ .arg(type)
+ .arg(address), icon);
+ }
+}
+
+void BitcoinGUI::gotoOverviewPage()
+{
+ overviewAction->setChecked(true);
+ centralWidget->setCurrentWidget(overviewPage);
+
+ exportAction->setEnabled(false);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
+}
+
+void BitcoinGUI::gotoHistoryPage()
+{
+ historyAction->setChecked(true);
+ centralWidget->setCurrentWidget(transactionsPage);
+
+ exportAction->setEnabled(true);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
+ connect(exportAction, SIGNAL(triggered()), transactionView, SLOT(exportClicked()));
+}
+
+void BitcoinGUI::gotoAddressBookPage()
+{
+ addressBookAction->setChecked(true);
+ centralWidget->setCurrentWidget(addressBookPage);
+
+ exportAction->setEnabled(true);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
+ connect(exportAction, SIGNAL(triggered()), addressBookPage, SLOT(exportClicked()));
+}
+
+void BitcoinGUI::gotoReceiveCoinsPage()
+{
+ receiveCoinsAction->setChecked(true);
+ centralWidget->setCurrentWidget(receiveCoinsPage);
+
+ exportAction->setEnabled(true);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
+ connect(exportAction, SIGNAL(triggered()), receiveCoinsPage, SLOT(exportClicked()));
+}
+
+void BitcoinGUI::gotoSendCoinsPage()
+{
+ sendCoinsAction->setChecked(true);
+ centralWidget->setCurrentWidget(sendCoinsPage);
+
+ exportAction->setEnabled(false);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
+}
+
+void BitcoinGUI::dragEnterEvent(QDragEnterEvent *event)
+{
+ // Accept only URIs
+ if(event->mimeData()->hasUrls())
+ event->acceptProposedAction();
+}
+
+void BitcoinGUI::dropEvent(QDropEvent *event)
+{
+ if(event->mimeData()->hasUrls())
+ {
+ gotoSendCoinsPage();
+ QList<QUrl> uris = event->mimeData()->urls();
+ foreach(const QUrl &uri, uris)
+ {
+ sendCoinsPage->handleURI(&uri);
+ }
+ }
+
+ event->acceptProposedAction();
+}
+
+void BitcoinGUI::setEncryptionStatus(int status)
+{
+ switch(status)
+ {
+ case WalletModel::Unencrypted:
+ labelEncryptionIcon->hide();
+ encryptWalletAction->setChecked(false);
+ changePassphraseAction->setEnabled(false);
+ encryptWalletAction->setEnabled(true);
+ break;
+ case WalletModel::Unlocked:
+ labelEncryptionIcon->show();
+ labelEncryptionIcon->setPixmap(QIcon(":/icons/lock_open").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
+ labelEncryptionIcon->setToolTip(tr("Wallet is <b>encrypted</b> and currently <b>unlocked</b>"));
+ encryptWalletAction->setChecked(true);
+ changePassphraseAction->setEnabled(true);
+ encryptWalletAction->setEnabled(false); // TODO: decrypt currently not supported
+ break;
+ case WalletModel::Locked:
+ labelEncryptionIcon->show();
+ labelEncryptionIcon->setPixmap(QIcon(":/icons/lock_closed").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
+ labelEncryptionIcon->setToolTip(tr("Wallet is <b>encrypted</b> and currently <b>locked</b>"));
+ encryptWalletAction->setChecked(true);
+ changePassphraseAction->setEnabled(true);
+ encryptWalletAction->setEnabled(false); // TODO: decrypt currently not supported
+ break;
+ }
+}
+
+void BitcoinGUI::encryptWallet(bool status)
+{
+ if(!walletModel)
+ return;
+ AskPassphraseDialog dlg(status ? AskPassphraseDialog::Encrypt:
+ AskPassphraseDialog::Decrypt, this);
+ dlg.setModel(walletModel);
+ dlg.exec();
+
+ setEncryptionStatus(walletModel->getEncryptionStatus());
+}
+
+void BitcoinGUI::changePassphrase()
+{
+ AskPassphraseDialog dlg(AskPassphraseDialog::ChangePass, this);
+ dlg.setModel(walletModel);
+ dlg.exec();
+}
+
+void BitcoinGUI::unlockWallet()
+{
+ if(!walletModel)
+ return;
+ // Unlock wallet when requested by wallet model
+ if(walletModel->getEncryptionStatus() == WalletModel::Locked)
+ {
+ AskPassphraseDialog dlg(AskPassphraseDialog::Unlock, this);
+ dlg.setModel(walletModel);
+ dlg.exec();
+ }
+}
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
new file mode 100644
index 0000000000..f56eecf01b
--- /dev/null
+++ b/src/qt/bitcoingui.h
@@ -0,0 +1,160 @@
+#ifndef BITCOINGUI_H
+#define BITCOINGUI_H
+
+#include <QMainWindow>
+#include <QSystemTrayIcon>
+
+class TransactionTableModel;
+class ClientModel;
+class WalletModel;
+class TransactionView;
+class OverviewPage;
+class AddressBookPage;
+class SendCoinsDialog;
+class Notificator;
+
+QT_BEGIN_NAMESPACE
+class QLabel;
+class QLineEdit;
+class QTableView;
+class QAbstractItemModel;
+class QModelIndex;
+class QProgressBar;
+class QStackedWidget;
+class QUrl;
+QT_END_NAMESPACE
+
+/**
+ Bitcoin GUI main class. This class represents the main window of the Bitcoin UI. It communicates with both the client and
+ wallet models to give the user an up-to-date view of the current core state.
+*/
+class BitcoinGUI : public QMainWindow
+{
+ Q_OBJECT
+public:
+ explicit BitcoinGUI(QWidget *parent = 0);
+ ~BitcoinGUI();
+
+ /** Set the client model.
+ The client model represents the part of the core that communicates with the P2P network, and is wallet-agnostic.
+ */
+ void setClientModel(ClientModel *clientModel);
+ /** Set the wallet model.
+ The wallet model represents a bitcoin wallet, and offers access to the list of transactions, address book and sending
+ functionality.
+ */
+ void setWalletModel(WalletModel *walletModel);
+
+protected:
+ void changeEvent(QEvent *e);
+ void closeEvent(QCloseEvent *event);
+ void dragEnterEvent(QDragEnterEvent *event);
+ void dropEvent(QDropEvent *event);
+
+private:
+ ClientModel *clientModel;
+ WalletModel *walletModel;
+
+ QStackedWidget *centralWidget;
+
+ OverviewPage *overviewPage;
+ QWidget *transactionsPage;
+ AddressBookPage *addressBookPage;
+ AddressBookPage *receiveCoinsPage;
+ SendCoinsDialog *sendCoinsPage;
+
+ QLabel *labelEncryptionIcon;
+ QLabel *labelConnectionsIcon;
+ QLabel *labelBlocksIcon;
+ QLabel *progressBarLabel;
+ QProgressBar *progressBar;
+
+ QMenuBar *appMenuBar;
+ QAction *overviewAction;
+ QAction *historyAction;
+ QAction *quitAction;
+ QAction *sendCoinsAction;
+ QAction *addressBookAction;
+ QAction *aboutAction;
+ QAction *receiveCoinsAction;
+ QAction *optionsAction;
+ QAction *openBitcoinAction;
+ QAction *exportAction;
+ QAction *encryptWalletAction;
+ QAction *changePassphraseAction;
+ QAction *aboutQtAction;
+
+ QSystemTrayIcon *trayIcon;
+ Notificator *notificator;
+ TransactionView *transactionView;
+
+ QMovie *syncIconMovie;
+
+ /** Create the main UI actions. */
+ void createActions();
+ /** Create the menu bar and sub-menus. */
+ void createMenuBar();
+ /** Create the toolbars */
+ void createToolBars();
+ /** Create system tray (notification) icon */
+ void createTrayIcon();
+
+public slots:
+ /** Set number of connections shown in the UI */
+ void setNumConnections(int count);
+ /** Set number of blocks shown in the UI */
+ void setNumBlocks(int count);
+ /** Set the encryption status as shown in the UI.
+ @param[in] status current encryption status
+ @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, bool modal = false);
+ /** 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.
+ https://bugreports.qt-project.org/browse/QTBUG-10440
+
+ @param[in] nFeeRequired the required fee
+ @param[out] payFee true to pay the fee, false to not pay the fee
+ */
+ void askFee(qint64 nFeeRequired, bool *payFee);
+
+private slots:
+ /** Switch to overview (home) page */
+ void gotoOverviewPage();
+ /** Switch to history (transactions) page */
+ void gotoHistoryPage();
+ /** Switch to address book page */
+ void gotoAddressBookPage();
+ /** Switch to receive coins page */
+ void gotoReceiveCoinsPage();
+ /** Switch to send coins page */
+ void gotoSendCoinsPage();
+
+ /** Show configuration dialog */
+ void optionsClicked();
+ /** Show about dialog */
+ void aboutClicked();
+#ifndef Q_WS_MAC
+ /** Handle tray icon clicked */
+ void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
+#endif
+ /** Show incoming transaction notification for new transactions.
+
+ The new items are those between start and end inclusive, under the given parent item.
+ */
+ void incomingTransaction(const QModelIndex & parent, int start, int end);
+ /** Encrypt the wallet */
+ void encryptWallet(bool status);
+ /** Change encrypted wallet passphrase */
+ void changePassphrase();
+ /** Ask for passphrase to unlock wallet temporarily */
+ void unlockWallet();
+};
+
+#endif // BITCOINGUI_H
diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp
new file mode 100644
index 0000000000..d544ec369e
--- /dev/null
+++ b/src/qt/bitcoinstrings.cpp
@@ -0,0 +1,93 @@
+#include <QtGlobal>
+// Automatically generated by extract_strings.py
+#ifdef __GNUC__
+#define UNUSED __attribute__((unused))
+#else
+#define UNUSED
+#endif
+static const char UNUSED *bitcoin_strings[] = {QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin version"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Usage:"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Send command to -server or bitcoind\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "List commands\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Get help for a command\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Options:\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Specify configuration file (default: bitcoin.conf)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Specify pid file (default: bitcoind.pid)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Generate coins\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Don't generate coins\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Start minimized\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Specify data directory\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Specify connection timeout (in milliseconds)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Connect through socks4 proxy\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Allow DNS lookups for addnode and connect\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Listen for connections on <port> (default: 8333 or testnet: 18333)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Maintain at most <n> connections to peers (default: 125)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Add a node to connect to\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Connect only to the specified node\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Don't find peers using internet relay chat\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Don't accept connections from outside\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Don't bootstrap list of peers using DNS\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Threshold for disconnecting misbehaving peers (default: 100)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Number of seconds to keep misbehaving peers from reconnecting (default: "
+"86400)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Maximum per-connection receive buffer, <n>*1000 bytes (default: 10000)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Maximum per-connection send buffer, <n>*1000 bytes (default: 10000)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Don't attempt to use UPnP to map the listening port\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Attempt to use UPnP to map the listening port\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Fee per kB to add to transactions you send\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Accept command line and JSON-RPC commands\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Run in the background as a daemon and accept commands\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Use the test network\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Output extra debugging information\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Prepend debug output with timestamp\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Send trace/debug info to console instead of debug.log file\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Send trace/debug info to debugger\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Username for JSON-RPC connections\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Password for JSON-RPC connections\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Listen for JSON-RPC connections on <port> (default: 8332)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Allow JSON-RPC connections from specified IP address\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Send commands to node running on <ip> (default: 127.0.0.1)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Set key pool size to <n> (default: 100)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Rescan the block chain for missing wallet transactions\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Use OpenSSL (https) for JSON-RPC connections\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Server certificate file (default: server.cert)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Server private key (default: server.pem)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:"
+"@STRENGTH)\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "This help message\n"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Cannot obtain a lock on data directory %s. Bitcoin is probably already "
+"running."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Loading addresses..."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Error loading addr.dat \n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Loading block index..."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Error loading blkindex.dat \n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Loading wallet..."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat: Wallet corrupted \n"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Error loading wallet.dat: Wallet requires newer version of Bitcoin \n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Wallet needed to be rewritten: restart Bitcoin to complete \n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat \n"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Rescanning..."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee=<amount>"),
+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", ""
+"Unable to bind to port %d on this computer. Bitcoin is probably already "
+"running."),
+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"),
+}; \ No newline at end of file
diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp
new file mode 100644
index 0000000000..d4715abaec
--- /dev/null
+++ b/src/qt/bitcoinunits.cpp
@@ -0,0 +1,181 @@
+#include "bitcoinunits.h"
+
+#include <QStringList>
+
+BitcoinUnits::BitcoinUnits(QObject *parent):
+ QAbstractListModel(parent),
+ unitlist(availableUnits())
+{
+}
+
+QList<BitcoinUnits::Unit> BitcoinUnits::availableUnits()
+{
+ QList<BitcoinUnits::Unit> unitlist;
+ unitlist.append(BTC);
+ unitlist.append(mBTC);
+ unitlist.append(uBTC);
+ return unitlist;
+}
+
+bool BitcoinUnits::valid(int unit)
+{
+ switch(unit)
+ {
+ case BTC:
+ case mBTC:
+ case uBTC:
+ return true;
+ default:
+ return false;
+ }
+}
+
+QString BitcoinUnits::name(int unit)
+{
+ switch(unit)
+ {
+ case BTC: return QString("BTC");
+ case mBTC: return QString("mBTC");
+ case uBTC: return QString::fromUtf8("μBTC");
+ default: return QString("???");
+ }
+}
+
+QString BitcoinUnits::description(int unit)
+{
+ switch(unit)
+ {
+ case BTC: return QString("Bitcoins");
+ case mBTC: return QString("Milli-Bitcoins (1 / 1,000)");
+ case uBTC: return QString("Micro-Bitcoins (1 / 1,000,000)");
+ default: return QString("???");
+ }
+}
+
+qint64 BitcoinUnits::factor(int unit)
+{
+ switch(unit)
+ {
+ case BTC: return 100000000;
+ case mBTC: return 100000;
+ case uBTC: return 100;
+ default: return 100000000;
+ }
+}
+
+int BitcoinUnits::amountDigits(int unit)
+{
+ switch(unit)
+ {
+ case BTC: return 8; // 21,000,000 (# digits, without commas)
+ case mBTC: return 11; // 21,000,000,000
+ case uBTC: return 14; // 21,000,000,000,000
+ default: return 0;
+ }
+}
+
+int BitcoinUnits::decimals(int unit)
+{
+ switch(unit)
+ {
+ case BTC: return 8;
+ case mBTC: return 5;
+ case uBTC: return 2;
+ default: return 0;
+ }
+}
+
+QString BitcoinUnits::format(int unit, qint64 n, bool fPlus)
+{
+ // Note: not using straight sprintf here because we do NOT want
+ // localized number formatting.
+ if(!valid(unit))
+ return QString(); // Refuse to format invalid unit
+ qint64 coin = factor(unit);
+ int num_decimals = decimals(unit);
+ qint64 n_abs = (n > 0 ? n : -n);
+ qint64 quotient = n_abs / coin;
+ qint64 remainder = n_abs % coin;
+ QString quotient_str = QString::number(quotient);
+ QString remainder_str = QString::number(remainder).rightJustified(num_decimals, '0');
+
+ // Right-trim excess zeros after the decimal point
+ int nTrim = 0;
+ for (int i = remainder_str.size()-1; i>=2 && (remainder_str.at(i) == '0'); --i)
+ ++nTrim;
+ remainder_str.chop(nTrim);
+
+ if (n < 0)
+ quotient_str.insert(0, '-');
+ else if (fPlus && n > 0)
+ quotient_str.insert(0, '+');
+ return quotient_str + QString(".") + remainder_str;
+}
+
+QString BitcoinUnits::formatWithUnit(int unit, qint64 amount, bool plussign)
+{
+ return format(unit, amount, plussign) + QString(" ") + name(unit);
+}
+
+bool BitcoinUnits::parse(int unit, const QString &value, qint64 *val_out)
+{
+ if(!valid(unit) || value.isEmpty())
+ return false; // Refuse to parse invalid unit or empty string
+ int num_decimals = decimals(unit);
+ QStringList parts = value.split(".");
+
+ if(parts.size() > 2)
+ {
+ return false; // More than one dot
+ }
+ QString whole = parts[0];
+ QString decimals;
+
+ if(parts.size() > 1)
+ {
+ decimals = parts[1];
+ }
+ if(decimals.size() > num_decimals)
+ {
+ return false; // Exceeds max precision
+ }
+ bool ok = false;
+ QString str = whole + decimals.leftJustified(num_decimals, '0');
+
+ if(str.size() > 18)
+ {
+ return false; // Longer numbers will exceed 63 bits
+ }
+ qint64 retvalue = str.toLongLong(&ok);
+ if(val_out)
+ {
+ *val_out = retvalue;
+ }
+ return ok;
+}
+
+int BitcoinUnits::rowCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return unitlist.size();
+}
+
+QVariant BitcoinUnits::data(const QModelIndex &index, int role) const
+{
+ int row = index.row();
+ if(row >= 0 && row < unitlist.size())
+ {
+ Unit unit = unitlist.at(row);
+ switch(role)
+ {
+ case Qt::EditRole:
+ case Qt::DisplayRole:
+ return QVariant(name(unit));
+ case Qt::ToolTipRole:
+ return QVariant(description(unit));
+ case UnitRole:
+ return QVariant(static_cast<int>(unit));
+ }
+ }
+ return QVariant();
+}
diff --git a/src/qt/bitcoinunits.h b/src/qt/bitcoinunits.h
new file mode 100644
index 0000000000..9b7c9e160e
--- /dev/null
+++ b/src/qt/bitcoinunits.h
@@ -0,0 +1,66 @@
+#ifndef BITCOINUNITS_H
+#define BITCOINUNITS_H
+
+#include <QString>
+#include <QAbstractListModel>
+
+/** Bitcoin unit definitions. Encapsulates parsing and formatting
+ and serves as list model for drop-down selection boxes.
+*/
+class BitcoinUnits: public QAbstractListModel
+{
+public:
+ explicit BitcoinUnits(QObject *parent);
+
+ /** Bitcoin units.
+ @note Source: https://en.bitcoin.it/wiki/Units . Please add only sensible ones
+ */
+ enum Unit
+ {
+ BTC,
+ mBTC,
+ uBTC
+ };
+
+ //! @name Static API
+ //! Unit conversion and formatting
+ ///@{
+
+ //! Get list of units, for drop-down box
+ static QList<Unit> availableUnits();
+ //! Is unit ID valid?
+ static bool valid(int unit);
+ //! Short name
+ static QString name(int unit);
+ //! Longer description
+ static QString description(int unit);
+ //! Number of Satoshis (1e-8) per unit
+ static qint64 factor(int unit);
+ //! Number of amount digits (to represent max number of coins)
+ static int amountDigits(int unit);
+ //! Number of decimals left
+ static int decimals(int unit);
+ //! Format as string
+ static QString format(int unit, qint64 amount, bool plussign=false);
+ //! Format as string (with unit)
+ static QString formatWithUnit(int unit, qint64 amount, bool plussign=false);
+ //! Parse string to coin amount
+ static bool parse(int unit, const QString &value, qint64 *val_out);
+ ///@}
+
+ //! @name AbstractListModel implementation
+ //! List model for unit drop-down selection box.
+ ///@{
+ enum RoleIndex {
+ /** Unit identifier */
+ UnitRole = Qt::UserRole
+ };
+ int rowCount(const QModelIndex &parent) const;
+ QVariant data(const QModelIndex &index, int role) const;
+ ///@}
+private:
+ QList<BitcoinUnits::Unit> unitlist;
+};
+typedef BitcoinUnits::Unit BitcoinUnit;
+
+#endif // BITCOINUNITS_H
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
new file mode 100644
index 0000000000..5a0b4aa83c
--- /dev/null
+++ b/src/qt/clientmodel.cpp
@@ -0,0 +1,88 @@
+#include "clientmodel.h"
+#include "guiconstants.h"
+#include "optionsmodel.h"
+#include "addresstablemodel.h"
+#include "transactiontablemodel.h"
+
+#include "headers.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;
+}
+
+int ClientModel::getNumConnections() const
+{
+ return vNodes.size();
+}
+
+int ClientModel::getNumBlocks() const
+{
+ return nBestHeight;
+}
+
+int ClientModel::getNumBlocksAtStartup()
+{
+ if (numBlocksAtStartup == -1) numBlocksAtStartup = getNumBlocks();
+ return numBlocksAtStartup;
+}
+
+QDateTime ClientModel::getLastBlockDate() const
+{
+ return QDateTime::fromTime_t(pindexBest->GetBlockTime());
+}
+
+void ClientModel::update()
+{
+ int newNumConnections = getNumConnections();
+ int newNumBlocks = getNumBlocks();
+
+ if(cachedNumConnections != newNumConnections)
+ emit numConnectionsChanged(newNumConnections);
+ if(cachedNumBlocks != newNumBlocks)
+ emit numBlocksChanged(newNumBlocks);
+
+ cachedNumConnections = newNumConnections;
+ cachedNumBlocks = newNumBlocks;
+}
+
+bool ClientModel::isTestNet() const
+{
+ return fTestNet;
+}
+
+bool ClientModel::inInitialBlockDownload() const
+{
+ return IsInitialBlockDownload();
+}
+
+int ClientModel::getNumBlocksOfPeers() const
+{
+ return GetNumBlocksOfPeers();
+}
+
+QString ClientModel::getStatusBarWarnings() const
+{
+ return QString::fromStdString(GetWarnings("statusbar"));
+}
+
+OptionsModel *ClientModel::getOptionsModel()
+{
+ return optionsModel;
+}
+
+QString ClientModel::formatFullVersion() const
+{
+ return QString::fromStdString(FormatFullVersion());
+}
diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h
new file mode 100644
index 0000000000..5a12c4fcd8
--- /dev/null
+++ b/src/qt/clientmodel.h
@@ -0,0 +1,62 @@
+#ifndef CLIENTMODEL_H
+#define CLIENTMODEL_H
+
+#include <QObject>
+
+class OptionsModel;
+class AddressTableModel;
+class TransactionTableModel;
+class CWallet;
+
+QT_BEGIN_NAMESPACE
+class QDateTime;
+QT_END_NAMESPACE
+
+/** Model for Bitcoin network client. */
+class ClientModel : public QObject
+{
+ Q_OBJECT
+public:
+ explicit ClientModel(OptionsModel *optionsModel, QObject *parent = 0);
+
+ OptionsModel *getOptionsModel();
+
+ int getNumConnections() const;
+ int getNumBlocks() const;
+ int getNumBlocksAtStartup();
+
+ QDateTime getLastBlockDate() const;
+
+ //! Return true if client connected to testnet
+ bool isTestNet() const;
+ //! Return true if core is doing initial block download
+ bool inInitialBlockDownload() const;
+ //! Return conservative estimate of total number of blocks, or 0 if unknown
+ int getNumBlocksOfPeers() const;
+ //! Return warnings to be displayed in status bar
+ QString getStatusBarWarnings() const;
+
+ QString formatFullVersion() const;
+
+private:
+ OptionsModel *optionsModel;
+
+ int cachedNumConnections;
+ int cachedNumBlocks;
+
+ int numBlocksAtStartup;
+
+signals:
+ void numConnectionsChanged(int count);
+ void numBlocksChanged(int count);
+
+ //! Asynchronous error notification
+ void error(const QString &title, const QString &message);
+
+public slots:
+
+private slots:
+ void update();
+};
+
+#endif // CLIENTMODEL_H
diff --git a/src/qt/csvmodelwriter.cpp b/src/qt/csvmodelwriter.cpp
new file mode 100644
index 0000000000..8a50bbab3f
--- /dev/null
+++ b/src/qt/csvmodelwriter.cpp
@@ -0,0 +1,88 @@
+#include "csvmodelwriter.h"
+
+#include <QAbstractItemModel>
+#include <QFile>
+#include <QTextStream>
+
+CSVModelWriter::CSVModelWriter(const QString &filename, QObject *parent) :
+ QObject(parent),
+ filename(filename), model(0)
+{
+}
+
+void CSVModelWriter::setModel(const QAbstractItemModel *model)
+{
+ this->model = model;
+}
+
+void CSVModelWriter::addColumn(const QString &title, int column, int role)
+{
+ Column col;
+ col.title = title;
+ col.column = column;
+ col.role = role;
+
+ columns.append(col);
+}
+
+static void writeValue(QTextStream &f, const QString &value)
+{
+ QString escaped = value;
+ escaped.replace('"', "\"\"");
+ f << "\"" << escaped << "\"";
+}
+
+static void writeSep(QTextStream &f)
+{
+ f << ",";
+}
+
+static void writeNewline(QTextStream &f)
+{
+ f << "\n";
+}
+
+bool CSVModelWriter::write()
+{
+ QFile file(filename);
+ if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
+ return false;
+ QTextStream out(&file);
+
+ int numRows = 0;
+ if(model)
+ {
+ numRows = model->rowCount();
+ }
+
+ // Header row
+ for(int i=0; i<columns.size(); ++i)
+ {
+ if(i!=0)
+ {
+ writeSep(out);
+ }
+ writeValue(out, columns[i].title);
+ }
+ writeNewline(out);
+
+ // Data rows
+ for(int j=0; j<numRows; ++j)
+ {
+ for(int i=0; i<columns.size(); ++i)
+ {
+ if(i!=0)
+ {
+ writeSep(out);
+ }
+ QVariant data = model->index(j, columns[i].column).data(columns[i].role);
+ writeValue(out, data.toString());
+ }
+ writeNewline(out);
+ }
+
+ file.close();
+
+ return file.error() == QFile::NoError;
+}
+
diff --git a/src/qt/csvmodelwriter.h b/src/qt/csvmodelwriter.h
new file mode 100644
index 0000000000..6c9dcbaf3b
--- /dev/null
+++ b/src/qt/csvmodelwriter.h
@@ -0,0 +1,46 @@
+#ifndef CSVMODELWRITER_H
+#define CSVMODELWRITER_H
+
+#include <QObject>
+#include <QList>
+
+QT_BEGIN_NAMESPACE
+class QAbstractItemModel;
+QT_END_NAMESPACE
+
+/** Export a Qt table model to a CSV file. This is useful for analyzing or post-processing the data in
+ a spreadsheet.
+ */
+class CSVModelWriter : public QObject
+{
+ Q_OBJECT
+public:
+ explicit CSVModelWriter(const QString &filename, QObject *parent = 0);
+
+ void setModel(const QAbstractItemModel *model);
+ void addColumn(const QString &title, int column, int role=Qt::EditRole);
+
+ /** Perform export of the model to CSV.
+ @returns true on success, false otherwise
+ */
+ bool write();
+
+private:
+ QString filename;
+ const QAbstractItemModel *model;
+
+ struct Column
+ {
+ QString title;
+ int column;
+ int role;
+ };
+ QList<Column> columns;
+
+signals:
+
+public slots:
+
+};
+
+#endif // CSVMODELWRITER_H
diff --git a/src/qt/editaddressdialog.cpp b/src/qt/editaddressdialog.cpp
new file mode 100644
index 0000000000..cecb8aecd7
--- /dev/null
+++ b/src/qt/editaddressdialog.cpp
@@ -0,0 +1,128 @@
+#include "editaddressdialog.h"
+#include "ui_editaddressdialog.h"
+#include "addresstablemodel.h"
+#include "guiutil.h"
+
+#include <QDataWidgetMapper>
+#include <QMessageBox>
+
+EditAddressDialog::EditAddressDialog(Mode mode, QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::EditAddressDialog), mapper(0), mode(mode), model(0)
+{
+ ui->setupUi(this);
+
+ GUIUtil::setupAddressWidget(ui->addressEdit, this);
+
+ switch(mode)
+ {
+ case NewReceivingAddress:
+ setWindowTitle(tr("New receiving address"));
+ ui->addressEdit->setEnabled(false);
+ break;
+ case NewSendingAddress:
+ setWindowTitle(tr("New sending address"));
+ break;
+ case EditReceivingAddress:
+ setWindowTitle(tr("Edit receiving address"));
+ ui->addressEdit->setDisabled(true);
+ break;
+ case EditSendingAddress:
+ setWindowTitle(tr("Edit sending address"));
+ break;
+ }
+
+ mapper = new QDataWidgetMapper(this);
+ mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
+}
+
+EditAddressDialog::~EditAddressDialog()
+{
+ delete ui;
+}
+
+void EditAddressDialog::setModel(AddressTableModel *model)
+{
+ this->model = model;
+ mapper->setModel(model);
+ mapper->addMapping(ui->labelEdit, AddressTableModel::Label);
+ mapper->addMapping(ui->addressEdit, AddressTableModel::Address);
+}
+
+void EditAddressDialog::loadRow(int row)
+{
+ mapper->setCurrentIndex(row);
+}
+
+bool EditAddressDialog::saveCurrentRow()
+{
+ if(!model)
+ return false;
+ switch(mode)
+ {
+ case NewReceivingAddress:
+ case NewSendingAddress:
+ address = model->addRow(
+ mode == NewSendingAddress ? AddressTableModel::Send : AddressTableModel::Receive,
+ ui->labelEdit->text(),
+ ui->addressEdit->text());
+ break;
+ case EditReceivingAddress:
+ case EditSendingAddress:
+ if(mapper->submit())
+ {
+ address = ui->addressEdit->text();
+ }
+ break;
+ }
+ return !address.isEmpty();
+}
+
+void EditAddressDialog::accept()
+{
+ if(!model)
+ return;
+ if(!saveCurrentRow())
+ {
+ switch(model->getEditStatus())
+ {
+ case AddressTableModel::DUPLICATE_ADDRESS:
+ QMessageBox::warning(this, windowTitle(),
+ tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()),
+ QMessageBox::Ok, QMessageBox::Ok);
+ break;
+ case AddressTableModel::INVALID_ADDRESS:
+ QMessageBox::warning(this, windowTitle(),
+ tr("The entered address \"%1\" is not a valid bitcoin address.").arg(ui->addressEdit->text()),
+ QMessageBox::Ok, QMessageBox::Ok);
+ return;
+ case AddressTableModel::WALLET_UNLOCK_FAILURE:
+ QMessageBox::critical(this, windowTitle(),
+ tr("Could not unlock wallet."),
+ QMessageBox::Ok, QMessageBox::Ok);
+ return;
+ case AddressTableModel::KEY_GENERATION_FAILURE:
+ QMessageBox::critical(this, windowTitle(),
+ tr("New key generation failed."),
+ QMessageBox::Ok, QMessageBox::Ok);
+ return;
+ case AddressTableModel::OK:
+ // Failed with unknown reason. Just reject.
+ break;
+ }
+
+ return;
+ }
+ QDialog::accept();
+}
+
+QString EditAddressDialog::getAddress() const
+{
+ return address;
+}
+
+void EditAddressDialog::setAddress(const QString &address)
+{
+ this->address = address;
+ ui->addressEdit->setText(address);
+}
diff --git a/src/qt/editaddressdialog.h b/src/qt/editaddressdialog.h
new file mode 100644
index 0000000000..7ec053f135
--- /dev/null
+++ b/src/qt/editaddressdialog.h
@@ -0,0 +1,50 @@
+#ifndef EDITADDRESSDIALOG_H
+#define EDITADDRESSDIALOG_H
+
+#include <QDialog>
+
+QT_BEGIN_NAMESPACE
+class QDataWidgetMapper;
+QT_END_NAMESPACE
+
+namespace Ui {
+ class EditAddressDialog;
+}
+class AddressTableModel;
+
+/** Dialog for editing an address and associated information.
+ */
+class EditAddressDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ enum Mode {
+ NewReceivingAddress,
+ NewSendingAddress,
+ EditReceivingAddress,
+ EditSendingAddress
+ };
+
+ explicit EditAddressDialog(Mode mode, QWidget *parent = 0);
+ ~EditAddressDialog();
+
+ void setModel(AddressTableModel *model);
+ void loadRow(int row);
+
+ void accept();
+
+ QString getAddress() const;
+ void setAddress(const QString &address);
+private:
+ bool saveCurrentRow();
+
+ Ui::EditAddressDialog *ui;
+ QDataWidgetMapper *mapper;
+ Mode mode;
+ AddressTableModel *model;
+
+ QString address;
+};
+
+#endif // EDITADDRESSDIALOG_H
diff --git a/src/qt/forms/aboutdialog.ui b/src/qt/forms/aboutdialog.ui
new file mode 100644
index 0000000000..127b90965a
--- /dev/null
+++ b/src/qt/forms/aboutdialog.ui
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AboutDialog</class>
+ <widget class="QDialog" name="AboutDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>593</width>
+ <height>319</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>About Bitcoin</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Ignored">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="../bitcoin.qrc">:/images/about</pixmap>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>&lt;b&gt;Bitcoin&lt;/b&gt; version</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="versionLabel">
+ <property name="text">
+ <string notr="true">0.3.666-beta</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::RichText</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>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.</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../bitcoin.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>AboutDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>360</x>
+ <y>308</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>AboutDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>428</x>
+ <y>308</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui
new file mode 100644
index 0000000000..fb098c8280
--- /dev/null
+++ b/src/qt/forms/addressbookpage.ui
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AddressBookPage</class>
+ <widget class="QWidget" name="AddressBookPage">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>627</width>
+ <height>347</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Address Book</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="labelExplanation">
+ <property name="text">
+ <string>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.</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::AutoText</enum>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTableView" name="tableView">
+ <property name="toolTip">
+ <string>Double-click to edit address or label</string>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="sortingEnabled">
+ <bool>true</bool>
+ </property>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="newAddressButton">
+ <property name="toolTip">
+ <string>Create a new address</string>
+ </property>
+ <property name="text">
+ <string>&amp;New Address...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/add</normaloff>:/icons/add</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="copyToClipboard">
+ <property name="toolTip">
+ <string>Copy the currently selected address to the system clipboard</string>
+ </property>
+ <property name="text">
+ <string>&amp;Copy to Clipboard</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/editcopy</normaloff>:/icons/editcopy</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="deleteButton">
+ <property name="toolTip">
+ <string>Delete the currently selected address from the list. Only sending addresses can be deleted.</string>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</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>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../bitcoin.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qt/forms/askpassphrasedialog.ui b/src/qt/forms/askpassphrasedialog.ui
new file mode 100644
index 0000000000..ff3a77165b
--- /dev/null
+++ b/src/qt/forms/askpassphrasedialog.ui
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AskPassphraseDialog</class>
+ <widget class="QDialog" name="AskPassphraseDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>598</width>
+ <height>198</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>550</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="warningLabel">
+ <property name="textFormat">
+ <enum>Qt::RichText</enum>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QFormLayout" name="formLayout">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+ </property>
+ <item row="1" column="0">
+ <widget class="QLabel" name="passLabel1">
+ <property name="text">
+ <string>Enter passphrase</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="passEdit1">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="passLabel2">
+ <property name="text">
+ <string>New passphrase</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="passEdit2">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="passLabel3">
+ <property name="text">
+ <string>Repeat new passphrase</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="passEdit3">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QLabel" name="capsLabel">
+ <property name="styleSheet">
+ <string notr="true">#capsLabel {
+ font: bold;
+}</string>
+ </property>
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>AskPassphraseDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>AskPassphraseDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/qt/forms/editaddressdialog.ui b/src/qt/forms/editaddressdialog.ui
new file mode 100644
index 0000000000..b4a4c1b1e9
--- /dev/null
+++ b/src/qt/forms/editaddressdialog.ui
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EditAddressDialog</class>
+ <widget class="QDialog" name="EditAddressDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>457</width>
+ <height>126</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Edit Address</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QFormLayout" name="formLayout">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>&amp;Label</string>
+ </property>
+ <property name="buddy">
+ <cstring>labelEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="labelEdit">
+ <property name="toolTip">
+ <string>The label associated with this address book entry</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>&amp;Address</string>
+ </property>
+ <property name="buddy">
+ <cstring>addressEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="addressEdit">
+ <property name="toolTip">
+ <string>The address associated with this address book entry. This can only be modified for sending addresses.</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>EditAddressDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>EditAddressDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui
new file mode 100644
index 0000000000..10e470e918
--- /dev/null
+++ b/src/qt/forms/overviewpage.ui
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OverviewPage</class>
+ <widget class="QWidget" name="OverviewPage">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>552</width>
+ <height>342</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QFrame" name="frame">
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QFormLayout" name="formLayout_2">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+ </property>
+ <property name="horizontalSpacing">
+ <number>12</number>
+ </property>
+ <property name="verticalSpacing">
+ <number>12</number>
+ </property>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Balance:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLabel" name="labelBalance">
+ <property name="text">
+ <string notr="true">0 BTC</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Number of transactions:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QLabel" name="labelNumTransactions">
+ <property name="text">
+ <string>0</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Unconfirmed:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLabel" name="labelUnconfirmed">
+ <property name="text">
+ <string notr="true">0 BTC</string>
+ </property>
+ </widget>
+ </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>Wallet</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QFrame" name="frame_2">
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>&lt;b&gt;Recent transactions&lt;/b&gt;</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListView" name="listTransactions">
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui
new file mode 100644
index 0000000000..7eadec98b2
--- /dev/null
+++ b/src/qt/forms/sendcoinsdialog.ui
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SendCoinsDialog</class>
+ <widget class="QDialog" name="SendCoinsDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>686</width>
+ <height>217</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Send Coins</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>666</width>
+ <height>165</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" name="entries">
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="addButton">
+ <property name="toolTip">
+ <string>Send to multiple recipients at once</string>
+ </property>
+ <property name="text">
+ <string>&amp;Add recipient...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/add</normaloff>:/icons/add</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clearButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Remove all transaction fields</string>
+ </property>
+ <property name="text">
+ <string>Clear all</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
+ </property>
+ <property name="autoRepeatDelay">
+ <number>300</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Balance:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="labelBalance">
+ <property name="text">
+ <string>123.456 BTC</string>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="sendButton">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Confirm the send action</string>
+ </property>
+ <property name="text">
+ <string>S&amp;end</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/send</normaloff>:/icons/send</iconset>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../bitcoin.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui
new file mode 100644
index 0000000000..10bf603de8
--- /dev/null
+++ b/src/qt/forms/sendcoinsentry.ui
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SendCoinsEntry</class>
+ <widget class="QFrame" name="SendCoinsEntry">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>729</width>
+ <height>136</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="spacing">
+ <number>12</number>
+ </property>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>A&amp;mount:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>payAmount</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Pay &amp;To:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>payTo</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="BitcoinAmountField" name="payAmount"/>
+ </item>
+ <item row="4" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QValidatedLineEdit" name="addAsLabel">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip">
+ <string>Enter a label for this address to add it to your address book</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>&amp;Label:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>addAsLabel</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <layout class="QHBoxLayout" name="payToLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QValidatedLineEdit" name="payTo">
+ <property name="toolTip">
+ <string>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</string>
+ </property>
+ <property name="maxLength">
+ <number>34</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="addressBookButton">
+ <property name="toolTip">
+ <string>Choose address from address book</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/address-book</normaloff>:/icons/address-book</iconset>
+ </property>
+ <property name="shortcut">
+ <string>Alt+A</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="pasteButton">
+ <property name="toolTip">
+ <string>Paste address from clipboard</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/editpaste</normaloff>:/icons/editpaste</iconset>
+ </property>
+ <property name="shortcut">
+ <string>Alt+P</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="deleteButton">
+ <property name="toolTip">
+ <string>Remove this recipient</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>BitcoinAmountField</class>
+ <extends>QLineEdit</extends>
+ <header>bitcoinamountfield.h</header>
+ <container>1</container>
+ </customwidget>
+ <customwidget>
+ <class>QValidatedLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>qvalidatedlineedit.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources>
+ <include location="../bitcoin.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qt/forms/transactiondescdialog.ui b/src/qt/forms/transactiondescdialog.ui
new file mode 100644
index 0000000000..9a9f6db158
--- /dev/null
+++ b/src/qt/forms/transactiondescdialog.ui
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>TransactionDescDialog</class>
+ <widget class="QDialog" name="TransactionDescDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Transaction details</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QTextEdit" name="detailText">
+ <property name="toolTip">
+ <string>This pane shows a detailed description of the transaction</string>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Close</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>TransactionDescDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>TransactionDescDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h
new file mode 100644
index 0000000000..0cb507501a
--- /dev/null
+++ b/src/qt/guiconstants.h
@@ -0,0 +1,23 @@
+#ifndef GUICONSTANTS_H
+#define GUICONSTANTS_H
+
+/* Milliseconds between model updates */
+static const int MODEL_UPDATE_DELAY = 500;
+
+/* Maximum passphrase length */
+static const int MAX_PASSPHRASE_SIZE = 1024;
+
+/* Size of icons in status bar */
+static const int STATUSBAR_ICONSIZE = 16;
+
+/* Invalid field background style */
+#define STYLE_INVALID "background:#FF8080"
+
+/* Transaction list -- unconfirmed transaction */
+#define COLOR_UNCONFIRMED QColor(128, 128, 128)
+/* Transaction list -- negative amount */
+#define COLOR_NEGATIVE QColor(255, 0, 0)
+/* Transaction list -- bare address (without label) */
+#define COLOR_BAREADDRESS QColor(140, 140, 140)
+
+#endif // GUICONSTANTS_H
diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp
new file mode 100644
index 0000000000..eeba74b175
--- /dev/null
+++ b/src/qt/guiutil.cpp
@@ -0,0 +1,137 @@
+#include "guiutil.h"
+#include "bitcoinaddressvalidator.h"
+#include "walletmodel.h"
+#include "bitcoinunits.h"
+
+#include "headers.h"
+
+#include <QString>
+#include <QDateTime>
+#include <QDoubleValidator>
+#include <QFont>
+#include <QLineEdit>
+#include <QUrl>
+#include <QFileDialog>
+#include <QDesktopServices>
+
+QString GUIUtil::dateTimeStr(qint64 nTime)
+{
+ return dateTimeStr(QDateTime::fromTime_t((qint32)nTime));
+}
+
+QString GUIUtil::dateTimeStr(const QDateTime &date)
+{
+ return date.date().toString(Qt::SystemLocaleShortDate) + QString(" ") + date.toString("hh:mm");
+}
+
+QFont GUIUtil::bitcoinAddressFont()
+{
+ QFont font("Monospace");
+ font.setStyleHint(QFont::TypeWriter);
+ return font;
+}
+
+void GUIUtil::setupAddressWidget(QLineEdit *widget, QWidget *parent)
+{
+ widget->setMaxLength(BitcoinAddressValidator::MaxAddressLength);
+ widget->setValidator(new BitcoinAddressValidator(parent));
+ widget->setFont(bitcoinAddressFont());
+}
+
+void GUIUtil::setupAmountWidget(QLineEdit *widget, QWidget *parent)
+{
+ QDoubleValidator *amountValidator = new QDoubleValidator(parent);
+ amountValidator->setDecimals(8);
+ amountValidator->setBottom(0.0);
+ widget->setValidator(amountValidator);
+ widget->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+}
+
+bool GUIUtil::parseBitcoinURI(const QUrl *uri, SendCoinsRecipient *out)
+{
+ if(uri->scheme() != QString("bitcoin"))
+ return false;
+
+ SendCoinsRecipient rv;
+ rv.address = uri->path();
+ rv.label = uri->queryItemValue("label");
+
+ QString amount = uri->queryItemValue("amount");
+ if(amount.isEmpty())
+ {
+ rv.amount = 0;
+ }
+ else // Amount is non-empty
+ {
+ if(!BitcoinUnits::parse(BitcoinUnits::BTC, amount, &rv.amount))
+ {
+ return false;
+ }
+ }
+ if(out)
+ {
+ *out = rv;
+ }
+ return true;
+}
+
+bool GUIUtil::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 lower-case it (and thus invalidate the address).
+ if(uri.startsWith("bitcoin://"))
+ {
+ uri.replace(0, 10, "bitcoin:");
+ }
+ QUrl uriInstance(uri);
+ return parseBitcoinURI(&uriInstance, out);
+}
+
+QString GUIUtil::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;
+}
+
diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h
new file mode 100644
index 0000000000..703156bc43
--- /dev/null
+++ b/src/qt/guiutil.h
@@ -0,0 +1,52 @@
+#ifndef GUIUTIL_H
+#define GUIUTIL_H
+
+#include <QString>
+
+QT_BEGIN_NAMESPACE
+class QFont;
+class QLineEdit;
+class QWidget;
+class QDateTime;
+class QUrl;
+QT_END_NAMESPACE
+class SendCoinsRecipient;
+
+/** Static utility functions used by the Bitcoin Qt UI.
+ */
+class GUIUtil
+{
+public:
+ // Create human-readable string from date
+ static QString dateTimeStr(qint64 nTime);
+ static QString dateTimeStr(const QDateTime &datetime);
+
+ // Render bitcoin addresses in monospace font
+ static QFont bitcoinAddressFont();
+
+ // Set up widgets for address and amounts
+ static void setupAddressWidget(QLineEdit *widget, QWidget *parent);
+ static void setupAmountWidget(QLineEdit *widget, QWidget *parent);
+
+ // Parse "bitcoin:" URI into recipient object, return true on successful parsing
+ // See Bitcoin URI definition discussion here: https://bitcointalk.org/index.php?topic=33490.0
+ static bool parseBitcoinURI(const QUrl *, SendCoinsRecipient *out);
+ static bool parseBitcoinURI(QString uri, SendCoinsRecipient *out);
+
+ /** Get save filename, 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.
+ */
+ static QString getSaveFileName(QWidget *parent=0, const QString &caption=QString(),
+ const QString &dir=QString(), const QString &filter=QString(),
+ QString *selectedSuffixOut=0);
+
+};
+
+#endif // GUIUTIL_H
diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts
new file mode 100644
index 0000000000..b91e595938
--- /dev/null
+++ b/src/qt/locale/bitcoin_da.ts
@@ -0,0 +1,1859 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="da">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Om 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>Copyright © 2009-2012 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>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Adressebog</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>Dette er dine Bitcoinadresser til at modtage betalinger med. Du kan give en forskellig adresse til hver afsender, så du kan holde styr på hvem der betaler dig.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Dobbeltklik for at redigere adresse eller mærkat</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Opret en ny adresse</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kommasepareret fil (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Fejl under eksport</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>Kunne ikke skrive til filen %1.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Ny adresse ...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Kopier den valgte adresse til systemets udklipsholder</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Kopier til Udklipsholder</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Slet den valgte adresse fra listen. Kun adresser brugt til afsendelse kan slettes.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Slet</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Eksporter Adressekartoteketsdata</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Etiket</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(ingen etiket)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Indtast adgangskode</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Dekryptér tegnebog</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Skift adgangskode</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>TekstEtiket</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Ny adgangskode</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Gentag ny adgangskode</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialog</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Tegnebog krypteret</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>Indtast den nye adgangskode til tegnebogen.&lt;br/&gt;Brug venligst en adgangskode på &lt;b&gt;10 eller flere tilfældige tegn&lt;/b&gt;, eller &lt;b&gt;otte eller flere ord&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Krypter tegnebog</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Denne funktion har brug for din tegnebogs kodeord for at låse tegnebogen op.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Lås tegnebog op</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Denne funktion har brug for din tegnebogs kodeord for at dekryptere tegnebogen.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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 will close now to finish the encryption process. Husk, at kryptere din tegnebog vil ikke fuldt ud beskytte dine bitcoins mod at blive stjålet af malware på din computer.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Tegnebogskryptering mislykkedes</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Tegnebogsoplåsning mislykkedes</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>Tegnebogskodeord blev ændret.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Tegnebogskryptering mislykkedes på grund af en intern fejl. Din tegnebog blev ikke krypteret.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Det angivne kodeord for tegnebogsdekrypteringen er forkert.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Indtast den gamle og nye adgangskode til tegnebogen.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Bekræft tegnebogskryptering</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>ADVARSEL: Hvis du krypterer din tegnebog og mister dit kodeord vil du &lt;b&gt;miste alle dine BITCOINS&lt;/b&gt;!
+Er du sikker på at du ønsker at kryptere din tegnebog?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>De angivne kodeord stemmer ikke overens.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Tegnebogsdekryptering mislykkedes</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Vis generel oversigt over tegnebog</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Gennemse transaktionshistorik</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Adressebog</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <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="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Send coins til en bitcoinadresse</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Indstillinger ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Rediger konfigurationsindstillinger af bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Kryptér tegnebog</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Kryptér eller dekryptér tegnebog</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Skift adgangskode</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fil</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>Om &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Vis oplysninger om Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Vis Bitcoinvinduet</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Synkroniserer med netværk ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transaktioner</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Oversigt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Modtag coins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <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="204"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Send coins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Eksporter...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Luk</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Afslut program</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Vis oplysninger om Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitcoin Tegnebog</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Blokkæde synkronisering i gang</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <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="615"/>
+ <source>Sent transaction</source>
+ <translation>Afsendt transaktion</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Indgående transaktion</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Dato: %1
+Beløb: %2
+Type: %3
+Adresse: %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="242"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Skift kodeord anvendt til tegnebogskryptering</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;Om %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Indstillinger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Hjælp</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="719"/>
+ <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="288"/>
+ <source>Actions toolbar</source>
+ <translation>Handlingsværktøjslinje</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Åbn &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Downloadet %1 blokke af transaktionshistorie.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n sekund(er) siden</numerusform>
+ <numerusform>%n sekund(er) siden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n minut(ter) siden</numerusform>
+ <numerusform>%n minut(ter) siden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n time(r) siden</numerusform>
+ <numerusform>%n time(r) siden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n dag(e) siden</numerusform>
+ <numerusform>%n dag(e) siden</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Opdateret</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Indhenter...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Sidst modtagne blok blev genereret %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Faneværktøjslinje</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="588"/>
+ <source>Sending...</source>
+ <translation>Sender...</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>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Enhed at vise beløb i: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Vælg den standard underopdelingsenhed som skal vises i brugergrænsefladen, og når du sender coins</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Vis adresser i transaktionensliste</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Rediger Adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Etiket</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>Etiketten forbundet med denne post i adressekartoteket</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Adresse</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>Adressen tilknyttet til denne post i adressekartoteket. Dette kan kun ændres for afsendelsesadresser.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Ny modtagelsesadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Ny afsendelsesadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Rediger modtagelsesadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Rediger afsendelsesadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Den indtastede adresse &quot;%1&quot; er allerede i adressebogen.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Kunne ikke låse tegnebog op.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Ny nøglegenerering mislykkedes.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>Den indtastede adresse &quot;%1&quot; er ikke en gyldig bitcoinadresse.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Porten på proxyen (f.eks. 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Start Bitcoin når systemet startes</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Start Bitcoin automatisk efter at computeren er tændt</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimer til systembakken i stedet for proceslinjen</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Vis kun et systembakkeikon efter minimering af vinduet</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Konfigurer port vha. &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimer ved lukning</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>Åbn Bitcoinklient-porten på routeren automatisk. Dette virker kun når din router understøtter UPnP og UPnP er aktiveret.</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>Minimer i stedet for at afslutte programmet når vinduet lukkes. Når denne indstilling er valgt vil programmet kun blive lukket når du har valgt Afslut i menuen.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Forbind gennem SOCKS4 proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Opret forbindelse til Bitconnetværket via en SOCKS4 proxy (f.eks. ved tilslutning gennem 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-adressen på proxyen (f.eks. 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="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>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Betal transaktions&amp;gebyr</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Indstillinger</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Generelt</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Visning</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Formular</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Antal transaktioner:</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>Ubekræftede:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>tegnebog</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Nyeste transaktioner&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Din nuværende saldo</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>Summen af ​​transaktioner, der endnu ikke er bekræftet, og endnu ikke er inkluderet i den nuværende saldo</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Samlede antal transaktioner i tegnebogen</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Send Coins</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Send til flere modtagere på én gang</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Ryd alle</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>Bekræft afsendelsen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation>&amp;Afsend</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; til %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>Bekræft afsendelse af coins</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Er du sikker på at du vil sende %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation> og </translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Tilføj modtager...</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>Modtagerens adresse er ikke gyldig. Tjek venligst adressen igen.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Beløbet til betaling skal være større end 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>Beløbet overstiger din saldo.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>Totalen overstiger din saldo når %1 transaktionsgebyr er inkluderet.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Duplikeret adresse fundet. Du kan kun sende til hver adresse en gang pr. afsendelse.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Fejl: Oprettelse af transaktionen mislykkedes.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>Fejl: Transaktionen blev afvist. Dette kan ske hvis nogle af dine coins i din tegnebog allerede var brugt, som hvis du brugte en kopi af wallet.dat og dine coins er blevet brugt i kopien, men ikke er markeret som brugt her.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Betal &amp;Til:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Indsæt adresse fra udklipsholderen</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="14"/>
+ <source>Form</source>
+ <translation>Formular</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>B&amp;eløb:</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>Indtast en etiket for denne adresse for at føje den til din adressebog</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Etiket:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Vælg adresse fra adressebog</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="137"/>
+ <source>Remove this recipient</source>
+ <translation>Fjern denne modtager</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Adresse som betalingen skal sendes til (f.eks. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Indtast en Bitcoinadresse (f.eks. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Status:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, er ikke blevet transmitteret endnu</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, transmitteret via %1 noder</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, transmitteret via %1 node</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Åben for %1 blokke</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/offline?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/ubekræftet</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Dato:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Kilde:&lt;/b&gt; Genereret&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Fra:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>ukendt</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Til:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (din, etiket:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (din)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <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="36"/>
+ <source>Open until %1</source>
+ <translation>Åben indtil %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 bekræftelser</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 modnes i %2 blokke mere)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(ikke accepteret)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <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="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Transaktionsgebyr:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Nettobeløb:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Besked:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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>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>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Transaktionsdetaljer</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Denne rude viser en detaljeret beskrivelse af transaktionen</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Beløb</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Minerede</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Dato</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Åben for %n blok(ke)</numerusform>
+ <numerusform>Åben for %n blok(ke)</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Åben indtil %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Offline (%1 bekræftelser)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Ubekræftet (%1 af %2 bekræftelser)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Betaling til dig selv</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Denne blok blev ikke modtaget af nogen andre noder, og vil formentlig ikke blive accepteret!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Bekræftet (%1 bekræftelser)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Genereret, men ikke accepteret</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Modtaget med</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Sendt til</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(n/a)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Transactionsstatus. Hold musen over dette felt for at vise antallet af bekræftelser.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Dato og tid for at transaktionen blev modtaget.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Type af transaktion.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Destinationsadresse for transaktion.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Beløb fjernet eller tilføjet balance.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Modtaget fra</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <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>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <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="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Eksportér Transaktionsdata</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kommasepareret fil (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Dato</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Beløb</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>Kunne ikke skrive til filen %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>til</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Interval...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Vis detaljer...</translation>
+ </message>
+ <message>
+ <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="56"/>
+ <source>Today</source>
+ <translation>I dag</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Denne uge</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Denne måned</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Sidste måned</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Dette år</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Modtaget med</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Sendt til</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Til dig selv</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Minerede</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Andet</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Min. beløb</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Kopier adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Kopier etiket</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Rediger etiket</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Bekræftet</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Etiket</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Fejl under eksport</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Interval:</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Sender...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Anvendelse:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Indlæsning gennemført</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Fejl: CreateThread(StartNode) mislykkedes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Ugyldig -proxy adresse</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Advarsel: Diskplads er lav</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Kan låse data-biblioteket %s. Bitcoin kører sikkert allerede.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Bitcoinversion</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Indlæser adresser...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Indlæser blok-indeks...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Indlæser tegnebog...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Advarsel:-paytxfee er sat meget højt. Dette er det gebyr du vil betale, hvis du sender en transaktion.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Ugyldigt beløb for -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>Kunne ikke binde sig til port %d på denne computer. Bitcoin kører sikkert allerede.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>beta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Send kommando til -server eller bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Liste over kommandoer
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Få hjælp til en kommando
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Indstillinger:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Angiv konfigurationsfil (standard: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Angiv pid-fil (default: bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Generér ikke coins
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Angiv databibliotek
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Angiv tilslutningstimeout (i millisekunder)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Tilslut via SOCKS4 proxy
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Tillad DNS-opslag for addnode og connect
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Tilføj en node til at forbinde til
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Tilslut kun til den angivne node
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Acceptér ikke forbindelser udefra
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Gebyr pr. kB, som skal tilføjes til transaktioner du sender
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Kør i baggrunden som en service, og acceptér kommandoer
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Brugernavn til JSON-RPC-forbindelser
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Genindlæser...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Brug OpenSSL (https) for JSON-RPC-forbindelser
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Start minimeret</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Generér coins
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation type="unfinished">Lyt til forbindelser på &lt;port&gt; (standard: 8333 or testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <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="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>Forsøg ikke at bruge UPnP til at konfigurere den lyttende port</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Forsøg at bruge UPnP til at kofnigurere den lyttende port</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Accepter kommandolinje- og JSON-RPC-kommandoer</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Brug test-netværket</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Password til JSON-RPC-forbindelser</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Lyt til JSON-RPC-forbindelser på &lt;port&gt; (standard: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>Tillad JSON-RPC-forbindelser fra bestemt IP-adresse</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>Send kommandoer til node, der kører på &lt;ip&gt; (standard: 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Sæt nøglepoolstørrelse til &lt;n&gt; (standard: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Gennemsøg blokkæden for manglende tegnebogstransaktioner</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>
+SSL-indstillinger: (se Bitcoin Wiki for SSL opsætningsinstruktioner)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Servercertifikat-fil (standard: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Server private nøgle (standard: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Acceptabele ciphers (standard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Denne hjælpebesked
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Fejl ved indlæsning af addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Fejl ved indlæsning af blkindex.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Fejl ved indlæsning af wallet.dat: Tegnebog ødelagt
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Fejl ved indlæsning af wallet.dat: Tegnebog kræver en nyere version af Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Fejl ved indlæsning af wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts
new file mode 100644
index 0000000000..6bf2c7c3b2
--- /dev/null
+++ b/src/qt/locale/bitcoin_de.ts
@@ -0,0 +1,1848 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Über 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>Copyright © 2009-2012 Bitcoin Entwickler
+
+Dies ist experimentelle Software.
+
+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, 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>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Adressbuch</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>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>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>Eine neue Adresse erstellen</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Neue Adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Ausgewählte Adresse in die Zwischenablage kopieren</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>In die Zwischenablage &amp;kopieren</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <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 Zahlungsadressen entfernen.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Löschen</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kommagetrennte Datei (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Fehler beim Exportieren</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Adressbuch exportieren</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>Konnte nicht in Datei %1 schreiben.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(keine Bezeichnung)</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Bezeichnung</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Neue Passphrase</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialog</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Passphrase eingeben</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>Textbezeichnung</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Brieftasche verschlüsseln</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>Die Passphrase der Brieftasche wurde erfolgreich geändert.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Neue Passphrase wiederholen</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Brieftasche entsperren</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Dieser Vorgang benötigt Ihre Passphrase um die Brieftasche zu entschlüsseln.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Brieftasche entschlüsseln</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Passphrase ändern</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Geben Sie die alte und die neue Passphrase der Brieftasche ein.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation>WICHTIG: Alle vorherigen Sicherungen Ihrer Brieftasche sollten durch die neu erzeugte, verschlüsselte Brieftasche ersetzt werden. Aus Sicherheitsgründen werden vorherige Sicherungen der unverschlüsselten Brieftasche nutzlos, sobald Sie die neue, verschlüsselte Brieftasche verwenden.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Verschlüsselung der Brieftasche fehlgeschlagen</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <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="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Brieftasche verschlüsselt</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Dieser Vorgang benötigt Ihre Passphrase um die Brieftasche zu entsperren.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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 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="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Die eingegebenen Passphrasen stimmen nicht überein.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Die eingegebene Passphrase zum Entschlüsseln der Brieftasche war nicht korrekt.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Entschlüsselung der Brieftasche fehlgeschlagen</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Warnung: Die Feststelltaste ist aktiviert.</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;!&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="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 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="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Verschlüsselung der Brieftasche bestätigen</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Entsperrung der Brieftasche fehlgeschlagen</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Übersicht</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transaktionen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <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="228"/>
+ <source>About &amp;Qt</source>
+ <translation>Über &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Bitcoins an eine Bitcoin-Adresse überweisen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Beenden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>Passphrase &amp;ändern...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="588"/>
+ <source>Sending...</source>
+ <translation>Transaktionsgebühr bestätigen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitcoin-Brieftasche</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Synchronisiere mit Netzwerk...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Synchronisation der Blockkette wird durchgeführt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Allgemeine Übersicht der Brieftasche anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Transaktionsverlauf durchsehen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Liste der Empfangsadressen anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="204"/>
+ <source>&amp;Send coins</source>
+ <translation>Bitcoins &amp;überweisen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Liste der gespeicherten Zahlungsadressen und Bezeichnungen bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>Bitcoins &amp;empfangen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Informationen über Qt anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Erweiterte Einstellungen...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Exportieren...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Datei</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Einstellungen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[Testnetz]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Aktionen-Werkzeugleiste</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Adressbuch</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;Über %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>&amp;Bitcoin öffnen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Bitcoin-Fenster anzeigen</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>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <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="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>vor %n Sekunde</numerusform>
+ <numerusform>vor %n Sekunden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>vor %n Minute</numerusform>
+ <numerusform>vor %n Minuten</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>vor %n Stunde</numerusform>
+ <numerusform>vor %n Stunden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>vor %n Tag</numerusform>
+ <numerusform>vor %n Tagen</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Auf aktuellem Stand</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Hole auf...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Der letzte empfangene Block wurde %1 generiert.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Anwendung beenden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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 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="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Informationen über Bitcoin anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="615"/>
+ <source>Sent transaction</source>
+ <translation>Gesendete Transaktion</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Eingehende Transaktion</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Datum: %1
+Betrag: %2
+Typ: %3
+Adresse: %4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Erweiterte Bitcoin-Einstellungen ändern</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>Brieftasche &amp;verschlüsseln...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Brieftasche ent- oder verschlüsseln</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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 aktuell &lt;b&gt;entsperrt&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="719"/>
+ <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 aktuell &lt;b&gt;gesperrt&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation>Ein schwerer Fehler ist aufgetreten. Bitcoin kann nicht stabil weiter ausgeführt werden und wird beendet.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Hilfe</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Registerkarten-Leiste</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>%1 von %2 Blöcken des Transaktionsverlaufs heruntergeladen.</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Einheit der Beträge:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <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="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Adressen in der Transaktionsliste anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished">Legt fest, ob Bitcoin-Adressen in der Transaktionsliste angezeigt werden</translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Adresse bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Bezeichnung</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>Die Bezeichnung dieses Adressbuchseintrags</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Adresse</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>Die Adresse des Adressbucheintrags. Diese kann nur für Zahlungsadressen bearbeitet werden.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Neue Empfangsadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Neue Zahlungsadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Empfangsadresse bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Zahlungsadresse bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Die eingegebene Adresse &quot;%1&quot; befindet sich bereits im Adressbuch.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Die Brieftasche konnte nicht entsperrt werden.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Generierung eines neuen Schlüssels fehlgeschlagen.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>Die eingegebene Adresse &quot;%1&quot; ist keine gültige Bitcoin-Adresse.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <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 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>In den Infobereich anstatt in die Taskleiste &amp;minimieren</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Portweiterleitung via &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>Beim Schließen &amp;minimieren</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>Automatisch den Bitcoin Client-Port auf dem Router öffnen. Dies funktioniert nur, wenn Ihr Router UPnP unterstützt und dies aktiviert ist.</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, nachdem das Fenster minimiert wurde</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>Minimiert die Anwendung anstatt sie zu Beenden, wenn das Fenster geschlossen wird. Wenn dies aktiviert ist, müssen Sie das Programm über &quot;Beenden&quot; im Menü schließen.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>Über einen SOCKS4-Proxy &amp;verbinden:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Über einen SOCKS4-Proxy mit dem Bitcoin-Netzwerk verbinden (z.B. beim Verbinden über 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-Adresse des Proxy-Servers (z.B. 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 des Proxy-Servers (z.B. 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>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"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Transaktions&amp;gebühr bezahlen</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Allgemein</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Anzeige</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Erweiterte Einstellungen</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <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>Betrag aus unbestätigten Transaktionen, der noch nicht im aktuellen Kontostand enthalten ist</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Anzahl aller Transaktionen in der Brieftasche</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Brieftasche</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Anzahl der Transaktionen:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Formular</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Kontostand:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Unbestätigt:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Letzte Transaktionen&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Ihr aktueller Kontostand</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Bitcoins überweisen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>In einer Transaktion an mehrere Empfänger auf einmal überweisen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Alle Überweisungsfelder zurücksetzen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation>Überweisung bestätigen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation>&amp;Überweisen</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>Überweisung bestätigen</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation> und </translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Empfänger hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Zurücksetzen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Kontostand:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; an %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <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="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>Die Zahlungsadresse ist ungültig, bitte nochmals überprüfen.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>Der angegebene Betrag übersteigt Ihren Kontostand.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>Der angegebene Betrag übersteigt aufgrund der Transaktionsgebühr in Höhe von %1 Ihren Kontostand.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Doppelte Adresse gefunden, pro Überweisung kann an jede Adresse nur einmalig etwas überwiesen werden.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Fehler: Transaktionserstellung fehlgeschlagen.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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 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>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Der zu zahlende Betrag muss größer 0 sein.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>&amp;Betrag:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Formular</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>&amp;Empfänger:</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>Adressbezeichnung eingeben (diese wird bei unbekannten Adressen inkl. der Adresse dem Adressbuch hinzugefügt)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Die Zahlungsadresse der Überweisung (z.B. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Adresse aus der Zwischenablage einfügen</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>Diesen Empfänger entfernen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Bezeichnung:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Adresse aus Adressbuch wählen</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Bitcoin-Adresse eingeben (z.B. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Offen für %1 Blöcke</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/offline?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/unbestätigt</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Status:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, über %1 Knoten übertragen</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, über %1 Knoten übertragen</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Datum:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Quelle:&lt;/b&gt; Generiert&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Von:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;An:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (Eigene Adresse, Bezeichnung: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (Eigene Adresse)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Gutschrift:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>%1 (reift noch %2 weitere Blöcke)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Offen bis %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 Bestätigungen</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, wurde noch nicht erfolgreich übertragen</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>unbekannt</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(nicht angenommen)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Belastung:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Transaktionsgebühr:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Nettobetrag:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Nachricht:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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 ü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>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Transaktionsdetails</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Dieser Bereich zeigt eine detaillierte Beschreibung der Transaktion an</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Datum</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Betrag</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Offen für %n Block</numerusform>
+ <numerusform>Offen für %n Blöcke</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Offen bis %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Offline (%1 Bestätigungen)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Unbestätigt (%1 von %2 Bestätigungen)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Bestätigt (%1 Bestätigungen)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Dieser Block wurde von keinem anderen Knoten empfangen und wird wahrscheinlich nicht angenommen werden!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Generiert, jedoch nicht angenommen</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Empfangen über</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Empfangen von</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Überwiesen an</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Eigenüberweisung</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Erarbeitet</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(k.A.)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Transaktionsstatus. Fahren Sie mit der Maus über dieses Feld, um die Anzahl der Bestätigungen zu sehen.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Datum und Uhrzeit als die Transaktion empfangen wurde.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Art der Transaktion</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Zieladresse der Transaktion</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Der Betrag, der dem Kontostand abgezogen oder hinzugefügt wurde.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <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>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Erarbeitet</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Minimaler Betrag</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Adresse kopieren</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Bezeichnung kopieren</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Diesen Monat</translation>
+ </message>
+ <message>
+ <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="76"/>
+ <source>To yourself</source>
+ <translation>Eigenüberweisung</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Bezeichnung bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Transaktionen exportieren</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kommagetrennte Datei (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Bestätigt</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Datum</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Betrag</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Fehler beim Exportieren</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>Konnte nicht in Datei %1 schreiben.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Zeitraum:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>bis</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Heute</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Diese Woche</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Dieses Jahr</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Zeitraum...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Empfangen über</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Überwiesen an</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Andere</translation>
+ </message>
+ <message>
+ <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="128"/>
+ <source>Show details...</source>
+ <translation>Transaktionsdetails anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Bezeichnung</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Letzten Monat</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Überweise...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Bitcoin Version</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Benutzung:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Lade Blockindex...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Lade Brieftasche...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Durchsuche erneut...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Fehlerhafte Proxy-Adresse</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <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. wurde Bitcoin bereits gestartet.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Warnung: Festplattenplatz wird knapp</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Datenverzeichnis %s kann nicht gesperrt werden. Evtl. wurde Bitcoin bereits gestartet.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Lade Adressen...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Laden abgeschlossen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Ungültige Angabe für -paytxfee=&lt;Betrag&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>Beta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>Brieftasche muss neu geschrieben werden: Starten Sie Bitcoin zur Fertigstellung neu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Fehler: CreateThread(StartNode) fehlgeschlagen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>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="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Sende Befehl an -server oder bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Befehle auflisten
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Hilfe für Befehl erhalten
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Einstellungen:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Bitte wählen Sie eine Konfigurationsdatei (Standard: bitcoin.conf)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Bitte wählen Sie den Namen der PID Datei (Standard bitcoind.pid)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Erarbeite Bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Keine Bitcoins erarbeiten
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>minimiert starten</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Datenverzeichnis angeben</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Verbindungstimeout angeben (in Millisekunden)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Über einen SOCKS4-Proxy verbinden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Erlaube DNS Namensauflösung für addnode und connect</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>&lt;port&gt; nach Verbindungen abhören (Standard: 8333 oder Testnetz: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation>Maximal &lt;n&gt; Verbindungen zu Gegenstellen aufrechterhalten (Standard: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Einen Knoten hinzufügen, mit dem sich verbunden werden soll</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Nur mit dem/den angegebenen Knoten verbinden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished">Keine Gegenstellen via Internet Relay Chat finden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Keine Verbindungen von außen akzeptieren</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation>Keine Peerliste durch die Nutzung von DNS erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Schwellenwert, um Verbindungen zu sich nicht konform verhaltenden Gegenstellen zu beenden (Standard: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation>Anzahl Sekunden, während denen sich nicht konform verhaltenden Gegenstellen die Wiederverbindung verweigert wird (Standard: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation type="unfinished">Maximale Größe, &lt;n&gt; * 1000 Byte, des Empfangspuffers pro Verbindung (Standard: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation type="unfinished">Maximale Größe, &lt;n&gt; * 1000 Byte, des Sendepuffers pro Verbindung (Standard: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>UPnP nicht verwenden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Versuche eine Verbindung mittels UPnP herzustellen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Gebühr pro kB, die gesendeten Transaktionen hinzugefügt wird
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Erlaube Kommandozeilen und JSON-RPC Befehle
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Als Hintergrunddienst starten und Befehle akzeptieren
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Das Test Netzwerk verwenden
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>Ausgabe zusätzlicher Debugging-Informationen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Der Debugausgabe einen Zeitstempel voranstellen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Rückverfolgungs- und Debuginformationen an die Konsole senden anstatt sie in die debug.log Datei zu schreiben</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Rückverfolgungs- und Debuginformationen an den Debugger senden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Benutzername für JSON-RPC Verbindungen
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Passwort für JSON-RPC Verbindungen
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Port für JSON-RPC Befehle (Standard: 8332)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>JSON-RPC Befehle nur von dieser IP-Adresse erlauben
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>Befehle an Bitcoin Knoten &lt;ip&gt; senden (Standard: 127.0.0.1)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Menge der vorgenerierten Adressen (Standard: 100)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Blockkette nach verlorenen Transaktionen durchsuchen (rescan)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>SSL Einstellungen: (Siehe im BitCoin-Wiki für eine detallierte Beschreibung)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>JSON-RPC Befehle über OpenSSL (https)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>SSL Server Zertifikat (Standard: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Privater SSL Schlüssel (Standard: server.pem)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Erlaubte Kryptographiealgorithmen (Standard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Dieser Hilfetext</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Fehler beim Laden der addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Fehler beim laden der blkindex.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Fehler beim Laden von wallet.dat: Brieftasche beschädigt
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Fehler beim Laden von wallet.dat: Neuere Version von Bitcoin notwendig
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Fehler beim Laden von wallet.dat</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation>Bitcoin-Qt</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts
new file mode 100644
index 0000000000..63485cd65a
--- /dev/null
+++ b/src/qt/locale/bitcoin_en.ts
@@ -0,0 +1,1819 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation type="unfinished"></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"></translation>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation type="unfinished"></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"></translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <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="445"/>
+ <source>Synchronizing with network...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <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="198"/>
+ <source>&amp;Receive coins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <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="204"/>
+ <source>&amp;Send coins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <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="221"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Export the current view to a file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation>
+ <numerusform>%n active connection to Bitcoin network</numerusform>
+ <numerusform>%n active connections to Bitcoin network</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n second ago</numerusform>
+ <numerusform>%n seconds ago</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n minute ago</numerusform>
+ <numerusform>%n minutes ago</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n hour ago</numerusform>
+ <numerusform>%n hours ago</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n day ago</numerusform>
+ <numerusform>%n days ago</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="588"/>
+ <source>Sending...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="615"/>
+ <source>Sent transaction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <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="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation type="unfinished"></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"></translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation type="unfinished"></translation>
+ </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"></translation>
+ </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"></translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation type="unfinished"></translation>
+ </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"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation type="unfinished"></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>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation type="unfinished"></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>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <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"/>
+ <source>&amp;Port: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation type="unfinished"></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 type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation type="unfinished"></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>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation type="unfinished"></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>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation type="unfinished"></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>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Open for %n block</numerusform>
+ <numerusform>Open for %n blocks</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <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="306"/>
+ <source>Generated but not accepted</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation type="unfinished"></translation>
+ </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"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <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="90"/>
+ <source>Min amount</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <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="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <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="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <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="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <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="67"/>
+ <source>Loading addresses...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <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="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <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="89"/>
+ <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>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts
new file mode 100644
index 0000000000..ec8665a477
--- /dev/null
+++ b/src/qt/locale/bitcoin_es.ts
@@ -0,0 +1,1864 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Acerca 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; versión</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>Copyright © 2009-2012 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>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Libreta de direcciones</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>Estas son tus direcciones Bitcoin para recibir pagos. Puedes utilizar una diferente por cada persona emisora para saber quien te está pagando.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Haga doble clic para editar una dirección o etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Crear una nueva dirección</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copiar la dirección seleccionada al portapapeles</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Copiar al portapapeles</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Borrar de la lista la dirección seleccionada . Sólo se pueden borrar las direcciones de envío.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Error al exportar</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Nueva Dirección</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Exportar datos de la libreta de direcciones</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>No se pudo escribir en el archivo %1.</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Archivos de columnas separadas por coma (*.csv)</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(sin etiqueta)</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Dirección</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Etiqueta</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Nueva contraseña</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Repita la nueva contraseña</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Cambiar contraseña</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Para desbloquear el monedero esta operación necesita de su contraseña.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Las contraseñas no coinciden.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Contraseña actual </translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>Cambiar contraseña:</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>La contraseña introducida para descifrar el monedero es incorrecta.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Ha fallado el descifrado del monedero</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>Introduzca la nueva contraseña del monedero.&lt;br/&gt;Por favor elija una con &lt;b&gt;10 o más caracteres aleatorios&lt;/b&gt; u &lt;b&gt;ocho o más palabras&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Cifrar el monedero</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Desbloquear monedero</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Para descifrar el monedero esta operación necesita de su contraseña.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Introduzca la contraseña anterior del monedero y la nueva. </translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Confirmar cifrado del monedero</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Monedero cifrado</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation>IMPORTANTE: Cualquier copia de seguridad que haya realizado previamente de su fichero de billetera debe reemplazarse con el fichero de billetera encriptado recientemente creado. Por razones de seguridad, las copias de seguridad previas del fichero de billetera que no estaban encriptadas pasarán a estar inservibles en cuanto comience a usar la nueva billetera encriptada.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Aviso: ¡La tecla de bloqueo de mayúsculas está activada!</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Descifrar monedero</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Cambiar contraseña</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Ha fallado el cifrado del monedero debido a un error interno. El monedero no ha sido cifrado.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>La contraseña de cartera ha sido cambiada con exit.</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>ATENCION: ¡Si encriptas tu cartera y pierdes la contraseña perderas &lt;b&gt;TODOS TUS BITCOINS&lt;/b&gt;!&quot;
+¿Seguro que quieres seguir encriptando la cartera?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Ha fallado el desbloqueo del monedero</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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 se cerrará para finalizar el proceso de encriptación. Recuerda que encriptando tu cartera no garantiza mantener a salvo tus bitcoins en caso de tener viruses en el ordenador.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Ha fallado el cifrado del monedero</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Examinar el historial de transacciones</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="204"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Envia monedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Salir</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Salir de la aplicación</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>S&amp;obre %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Cartera Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Sincronizando con la red…</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Sincronización cadena de bloques en progreso</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Vista general</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Mostrar vista general del monedero</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transacciones</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Libreta de direcciones</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Editar la lista de las direcciones y etiquetas almacenadas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Recibir monedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Mostrar la lista de direcciones utilizadas para recibir pagos</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Envia monedas a una dirección bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Mostrar información acerca de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opciones...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Modifica opciones de configuración</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Abre &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Muestra la ventana de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Encriptar cartera</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Archivo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Configuración</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Cambiar la contraseña</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Barra de pestañas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Barra de acciones</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Mostrar información acerca de Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Se han bajado %1 bloques de historial.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Cifrar o descifrar el monedero</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>A&amp;yuda</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>Acerca de &amp;Qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>hace %n segundo</numerusform>
+ <numerusform>hace %n segundos</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>hace %n minuto</numerusform>
+ <numerusform>hace %n minutos</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>hace %n hora</numerusform>
+ <numerusform>hace %n horas</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>hace %n día</numerusform>
+ <numerusform>hace %n días</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Actualizado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Recuperando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>El último bloque recibido fue generado %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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. Puede seguir enviándola incluyendo una comisión de %1 que se va a repartir entre los nodos que procesan su transacción y ayudan a mantener la red. ¿Desea pagar esa tarifa?</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="615"/>
+ <source>Sent transaction</source>
+ <translation>Transacción enviada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Transacción entrante</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Fecha: %1
+Cantidad: %2
+Tipo: %3
+Dirección: %4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Cambiar la contraseña utilizada para el cifrado del monedero</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>El monedero está &lt;b&gt;cifrado&lt;/b&gt; y actualmente &lt;b&gt;desbloqueado&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="719"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>El monedero está &lt;b&gt;cifrado&lt;/b&gt; y actualmente &lt;b&gt;bloqueado&lt;/b&gt;</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <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="588"/>
+ <source>Sending...</source>
+ <translation>Enviando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation>Ha ocurrido un error crítico. Bitcoin ya no puede continuar con seguridad y se cerrará.</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Unidad en la que mostrar cantitades: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Elige la subdivisión por defecto para mostrar cantidaded en la interfaz cuando se envien monedas</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Muestra direcciones en el listado de movimientos</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished">Mostrar las direcciones Bitcoin en la lista de transacciones</translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Editar Dirección</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>La etiqueta asociada con esta entrada en la libreta</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Dirección</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>La dirección asociada con esta entrada en la guia. Solo puede ser modificada para direcciones de envío.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Nueva dirección para recibir</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Nueva dirección para enviar</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Editar dirección de recepción</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Editar dirección de envio</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>La dirección introducida &quot;%1&quot; ya está presente en la libreta de direcciones.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>La dirección introducida &quot;%1&quot; no es una dirección Bitcoin valida.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>No se pudo desbloquear el monedero.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Ha fallado la generación de la nueva clave.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Puerto:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Arranca Bitcoin al iniciar el sistema</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Arranca Bitcoin cuando se encienda el ordenador</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimiza a la bandeja en vez de la barra de tareas</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Muestra solo el icono de sistema cuando se minimize la ventana</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Mapea el puerto usando &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimiza a la bandeja al cerrar</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>&amp;IP Proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>Dirección IP del proxy (ej. 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Puerto del servidor proxy (ej. 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>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>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Comision de &amp;transacciónes</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>Intenta abrir el puerto adecuado en el router automaticamente. Esta opcion solo funciona si el router soporta UPnP y esta activado.</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>Minimiza la ventana en lugar de salir de la aplicación.Cuando esta opcion esta activa la aplicación solo se puede cerrar seleccionando Salir desde el menu.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Conecta atraves de un proxy SOCKS4:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Conecta a la red Bitcoin atraves de un proxy SOCKS4 (ej. para conectar con la red Tor)</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Principal</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Mostrado</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Opciones</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Saldo 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>Total de las transacciones que faltan por confirmar y que no se cuentan para el total general</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Número total de movimientos en el monedero</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Desde</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Monedero</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>No confirmado(s):</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Número de movimientos:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Movimientos recientes&lt;/b&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Envía monedas</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Envía a multiples destinatarios de una vez</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>&amp;Borra todos</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation>&amp;Envía</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <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="96"/>
+ <source>Confirm send coins</source>
+ <translation>Confirmar el envío de monedas</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Estas seguro que quieres enviar %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation>y</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>La cantidad por pagar tiene que ser mayor 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Error: ha fallado la creación de transacción.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>Error: transacción rechazada. 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 así aquí.</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Agrega destinatario...</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>Confirma el envio</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Eliminar todos los campos de las transacciones</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>La cantidad sobrepasa su saldo.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>El total sobrepasa su saldo cuando se incluye la tasa de envío de %1</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>La dirección de destinatarion no es valida, comprueba otra vez.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Tienes una dirección duplicada, solo puedes enviar a direcciónes individuales de una sola vez.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Envio</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>Ca&amp;ntidad:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>&amp;Pagar a:</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>Etiquete esta dirección para añadirla a la libreta</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Etiqueta:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>La dirección donde enviar el pago (ej. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</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>Pega dirección desde portapapeles</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>Elimina destinatario</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Elija una dirección de la libreta de direcciones</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Introduce una dirección Bitcoin (ej. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Abierto hasta %1 bloques</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Abierto hasta %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/fuera de linea?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 confirmaciónes</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Estado:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, no ha sido emitido satisfactoriamente todavía</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, emitido mediante %1 nodo</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, emitido mediante %1 nodos</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Fecha:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Fuente:&lt;/b&gt; Generado&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;De:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Para:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation>(tuya, etiqueta: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (tuya)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Mensaje:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Comentario:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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>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>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/no confirmado</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>desconocido</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Crédito:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 madura en %2 bloques mas)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(no aceptada)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Débito:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Comisión transacción:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Cantidad total:&lt;/b&gt; </translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Detalles de transacción</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Esta ventana muestra información detallada sobre la transacción</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Fecha</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Tipo</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Dirección</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Cantidad</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Abierto por %n bloque</numerusform>
+ <numerusform>Abierto por %n bloques</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Abierto hasta %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Fuera de linea (%1 confirmaciones)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>No confirmado (%1 de %2 confirmaciones)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Confirmado (%1 confirmaciones)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Este bloque no ha sido recibido por otros nodos y probablemente no sea aceptado !</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Generado pero no aceptado</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Recibido con</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Enviado a</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Recibidos de</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Pago propio</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Minado</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(n/a)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Estado de transacción. Pasa el ratón sobre este campo para ver el número de confirmaciones.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Fecha y hora de cuando se recibió la transacción.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Tipo de transacción.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Dirección de destino de la transacción.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Cantidad retirada o añadida al balance.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <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>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Copiar dirección</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Copiar etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Editar etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Confirmado</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Fecha</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Cantidad</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Error exportando</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <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="401"/>
+ <source>to</source>
+ <translation>para</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Muestra detalles...</translation>
+ </message>
+ <message>
+ <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="56"/>
+ <source>Today</source>
+ <translation>Hoy</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Esta semana</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Este mes</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Mes pasado</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Este año</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Rango...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Recibido con</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Enviado a</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>A ti mismo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Minado</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Otra</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>Introduzca una dirección o etiqueta que buscar</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Cantidad mínima</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Exportar datos de la transacción</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Archivos de columnas separadas por coma (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Tipo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Dirección</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Rango:</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Enviando...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Uso:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>No se puede obtener permiso de trabajo en la carpeta de datos %s. Probablemente Bitcoin ya se está ejecutando.
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Rescaneando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Cargando direcciones...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>No generar monedas
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Especifica directorio para los datos
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Especifica tiempo de espera para conexion (en milisegundos)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Conecta mediante proxy socks4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Permite búsqueda DNS para addnode y connect
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished">No encontrar los pares utilizando Internet Relay Chat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Búfer de recepción máximo por conexión, &lt;n&gt;*1000 bytes (predeterminado: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Búfer de recepción máximo por conexión, , &lt;n&gt;*1000 bytes (predeterminado: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Cantidad inválida para -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Precaución: -paytxfee es muy alta. Esta es la comisión que pagarás si envias una transacción.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Error: CreateThread(StartNode) fallido</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Atención: Poco espacio en el disco duro</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>No es posible escuchar en el puerto %d en este ordenador. Probablemente Bitcoin ya se está ejecutando.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Versión de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Cargando el índice de bloques...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Cargando monedero...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Dirección -proxy invalida</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Generado pero no aceptado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Envia comando a bitcoin lanzado con -server u bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Muestra comandos
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Recibir ayuda para un comando
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Opciones:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Especifica archivo de configuración (predeterminado: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Especifica archivo pid (predeterminado: bitcoin.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Genera monedas
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Arranca minimizado
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>beta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>Preste atención a las conexiones en &lt;puerto&gt; (por defecto: 8333 o testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation>Mantener en la mayoría de las conexiones &lt;n&gt; a sus compañeros (por defecto: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Agrega un nodo para conectarse
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Conecta solo al nodo especificado
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>No aceptar conexiones desde el exterior
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Intenta usar UPnP para mapear el puerto de escucha
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Umbral para la desconexión de los compañeros se portan mal (por defecto: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation>Número de segundos que se mantienen los compañeros se portan mal en volver a conectarse (por defecto: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>No intentar usar UPnP para mapear el puerto de entrada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Tarifa por kB que añadir a las transacciones que envíe</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Aceptar comandos consola y JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Correr como demonio y acepta comandos</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Usa la red de pruebas
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Anteponer la salida de depuración, con indicación de la hora</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Enviar rastrear/debug info a la consola en lugar de debug.log archivo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Enviar rastrear / debug info al depurador</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Usuario para las conexiones JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Contraseña para las conexiones JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Escucha conexiones JSON-RPC en el puerto &lt;port&gt; (predeterminado: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>Permite conexiones JSON-RPC desde la dirección IP especificada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>Envia comando al nodo situado en &lt;ip&gt; (predeterminado: 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Ajusta el número de claves en reserva &lt;n&gt; (predeterminado: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Rescanea la cadena de bloques para transacciones perdidas de la cartera</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>El monedero ha necesitado ser reescrito. Reinicie Bitcoin para completar el proceso</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>Opciones SSL: (ver la Bitcoin Wiki para instrucciones de configuración SSL)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Usa OpenSSL (https) para las conexiones JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Certificado del servidor (Predeterminado: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Clave privada del servidor (Predeterminado: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Cifrados aceptados (Predeterminado: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Este mensaje de ayuda
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Error cargando addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Error cargando blkindex.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Error cargando wallet.dat: Cartera dañada
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Error cargando el archivo wallet.dat: Se necesita una versión mas nueva de Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Error cargando wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation>Bitcoin-Qt</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts
new file mode 100644
index 0000000000..9c605c58d3
--- /dev/null
+++ b/src/qt/locale/bitcoin_es_CL.ts
@@ -0,0 +1,1864 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es_CL">
+<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ón </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>Copyright © 2009-2012 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>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Guia de direcciones</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>Estas son tus direcciones Bitcoin para recibir pagos. Puedes utilizar una diferente por cada persona emisora para saber quien te está pagando.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Haz doble clic para editar una dirección o etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Crea una nueva dirección</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Nueva dirección</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copia la dirección seleccionada al portapapeles</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Copiar al portapapeles</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Borra la dirección seleccionada de la lista. Solo las direcciónes de envio se pueden borrar.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Archivos separados por coma (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Exportar errores</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>No se pudo escribir al archivo %1.</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Exporta datos de la guia de direcciones</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Dirección</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(sin etiqueta)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Cambiar contraseña</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Nueva contraseña</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Esta operación necesita la contraseña para desbloquear la billetera.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Decodificar cartera</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Introduce contraseña actual </translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Falló la codificación de la billetera</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Repite nueva contraseña:</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Las contraseñas no coinciden.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>Cambiar contraseña:</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>Introduce la nueva contraseña para la billetera.&lt;br/&gt;Por favor utiliza un contraseña &lt;b&gt;de 10 o mas caracteres aleatorios&lt;/b&gt;, u &lt;b&gt;ocho o mas palabras&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>La contraseña introducida para decodificar la billetera es incorrecta.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Codificar billetera</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Desbloquea billetera</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Cambia contraseña</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Introduce la contraseña anterior y la nueva de cartera</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Confirma la codificación de cartera</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Esta operación necesita la contraseña para decodificar la billetara.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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 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="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Ha fallado el desbloqueo de la billetera</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>La codificación de la billetera falló debido a un error interno. Tu billetera no ha sido codificada.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Ha fallado la decodificación de la billetera</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>ATENCIÓN: ¡Si codificas tu billetera y pierdes la contraseña perderás &lt;b&gt;TODOS TUS BITCOINS&lt;/b&gt;!&quot;
+¿Seguro que quieres seguir codificando la billetera?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>La contraseña de billetera ha sido cambiada con éxito.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Precaucion: Mayúsculas Activadas</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Billetera codificada</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <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="204"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Envíar monedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opciones</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Billetera Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Sincronizando con la red...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <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="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Vista general</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Muestra una vista general de la billetera</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transacciónes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Guia de direcciónes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <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="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Recibir monedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Salir</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Salir del programa</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Muestra información acerca de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <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"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Abre &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Muestra la ventana de Bitcoin</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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Codificar o decodificar la billetera</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Cambiar la contraseña</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <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="228"/>
+ <source>About &amp;Qt</source>
+ <translation>Acerca de</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Mostrar Información sobre QT</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Archivo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Explora el historial de transacciónes</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <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="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>Hace %n segundo</numerusform>
+ <numerusform>Hace %n segundos</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>Hace %n minuto</numerusform>
+ <numerusform>Hace %n minutos</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <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="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Enviar monedas a una dirección bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Configuración</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>S&amp;obre %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Barra de pestañas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Exportar...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Codificar la billetera</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>Hace %n hora</numerusform>
+ <numerusform>Hace %n horas</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>Hace %n día</numerusform>
+ <numerusform>Hace %n días</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Actualizado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Ayuda</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[red-de-pruebas]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Recuperando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>El ultimo bloque recibido fue generado %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="615"/>
+ <source>Sent transaction</source>
+ <translation>Transacción enviada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Transacción entrante</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Fecha: %1
+Cantidad: %2
+Tipo: %3
+Dirección: %4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="588"/>
+ <source>Sending...</source>
+ <translation>Enviando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Barra de acciónes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Unidad en la que mostrar cantitades: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Elige la subdivisión por defecto para mostrar cantidaded en la interfaz cuando se envien monedas</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Muestra direcciones en el listado de transaccioines</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Editar dirección</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>La etiqueta asociada con esta entrada de la libreta de direcciones</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Dirección</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Nueva dirección para recibir</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Nueva dirección para enviar</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Editar dirección de recepción</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Editar dirección de envio</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>La dirección introducida &quot;%1&quot; ya esta guardada en la libreta de direcciones.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>No se pudo desbloquear la billetera.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>La generación de nueva clave falló.</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>La dirección asociada con esta entrada en la libreta de direcciones. Solo puede ser modificada para direcciónes de envío.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>La dirección introducida &quot;%1&quot; no es una dirección Bitcoin valida.</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;Inicia Bitcoin al iniciar el sistema</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Inicia Bitcoin automáticamente despues de encender el computador</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimiza a la bandeja en vez de la barra de tareas</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Muestra solo un ícono en la bandeja después de minimizar la ventana</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Direcciona el puerto usando &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>Abre automáticamente el puerto del cliente Bitcoin en el router. Esto funciona solo cuando tu router es compatible con UPnP y está habilitado.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimiza a la bandeja al cerrar</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>Minimiza la ventana en lugar de salir del programa cuando la ventana se cierra. Cuando esta opción esta activa el programa solo se puede cerrar seleccionando Salir desde el menu.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Conecta a traves de un proxy SOCKS4:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Conecta a la red Bitcoin a través de un proxy SOCKS4 (ej. cuando te conectas por la red Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>&amp;IP Proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>Dirección IP del servidor proxy (ej. 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Puerto: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Puerto del servidor proxy (ej. 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>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>Comisión de &amp;transacciónes</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Principal</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Mostrado</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Opciones</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Número total de transacciones en la billetera</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Tu saldo 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>Total de transacciones que no han sido confirmadas aun, y que no cuentan para el saldo actual.</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Formulario</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Numero de transacciones:</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>No confirmados:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Cartera</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Transacciones recientes&lt;/b&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Enviar monedas</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Remover todos los campos de la transacción</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Balance:</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>Confirma el envio</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation>&amp;Envía</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <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="96"/>
+ <source>Confirm send coins</source>
+ <translation>Confirmar el envio de monedas</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Estas seguro que quieres enviar %1?</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Enviar a múltiples destinatarios</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Agrega destinatario...</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>&amp;Borra todos</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation>y</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>La dirección de destinatarion no es valida, comprueba otra vez.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>La cantidad por pagar tiene que ser mayor 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>La cantidad sobrepasa tu saldo.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>El total sobrepasa tu saldo cuando se incluyen %1 como tasa de envio.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Tienes una dirección duplicada, solo puedes enviar a direcciónes individuales de una sola vez.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Error: La transacción no se pudo crear.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>Error: 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>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>Cantidad:</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Introduce una dirección Bitcoin (ej. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Pega dirección desde portapapeles</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Envio</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>&amp;Pagar a:</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>Introduce una etiqueta a esta dirección para añadirla a tu guia</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Etiqueta:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>La dirección donde enviar el pago (ej. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Elije dirección de la guia</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="130"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation>Elimina destinatario</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>desconocido</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Estado:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Abierto hasta %1 bloques</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Abierto hasta %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/fuera de linea?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 confirmaciónes</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, no ha sido emitido satisfactoriamente todavía</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, emitido mediante %1 nodo</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, emitido mediante %1 nodos</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Fecha:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Fuente:&lt;/b&gt; Generado&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;De:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Para:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (tuya, etiqueta: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Crédito:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Comisión transacción:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Cantidad total:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Comentario:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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>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>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (tuya)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 madura en %2 bloques mas)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/no confirmado</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(no aceptada)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Débito:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Mensaje:</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Detalles de transacción</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Esta ventana muestra información detallada sobre la transacción</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Fecha</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Tipo</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Dirección</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Cantidad</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Abierto por %n bloque</numerusform>
+ <numerusform>Abierto por %n bloques</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Abierto hasta %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Fuera de linea (%1 confirmaciónes)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>No confirmado (%1 de %2 confirmaciónes)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Confirmado (%1 confirmaciones)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Este bloque no ha sido recibido por otros nodos y probablemente no sea aceptado !</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Generado pero no acceptado</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Recibido con</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Recibido de</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Enviado a</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Pagar a usted mismo</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Minado</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(n/a)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Estado de transacción. Pasa el raton sobre este campo para ver el numero de confirmaciónes.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Fecha y hora cuando se recibió la transaccion</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Tipo de transacción.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Dirección de destino para la transacción</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Cantidad restada o añadida al balance</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <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>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Minado</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Otra</translation>
+ </message>
+ <message>
+ <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="90"/>
+ <source>Min amount</source>
+ <translation>Cantidad minima</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Copia dirección</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Edita etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Exportar datos de transacción</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Archivos separados por coma (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Fecha</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Cantidad</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Error exportando</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Rango:</translation>
+ </message>
+ <message>
+ <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="56"/>
+ <source>Today</source>
+ <translation>Hoy</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Esta semana</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Esta mes</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Mes pasado</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Este año</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Rango...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Recibido con</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Tipo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Dirección</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <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="74"/>
+ <source>Sent to</source>
+ <translation>Enviado a</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>A ti mismo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Copia etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Confirmado</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Muestra detalles...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>para</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Enviando...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Versión Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Cargando direcciónes...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Cargando el index de bloques...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Rescaneando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Cantidad inválida para -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Atención: Poco espacio en el disco duro</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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 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"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Error: CreateThread(StartNode) fallido</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Uso:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Muestra comandos
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Recibir ayuda para un comando
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Opciones:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation>Mantener al menos &lt;n&gt; conecciones por cliente (por defecto: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <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="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>No se puede obtener permiso de trabajo en la carpeta de datos %s. Probablemente Bitcoin ya se está ejecutando.
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Cargando cartera...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Carga completa</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>No es posible escuchar en el puerto %d en este ordenador. Probablemente Bitcoin ya se está ejecutando.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>beta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Envia comando a bitcoin lanzado con -server u bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Dirección -proxy invalida</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Precaución: -paytxfee es muy alta. Esta es la comisión que pagarás si envias una transacción.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Especifica archivo de configuración (predeterminado: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Especifica archivo pid (predeterminado: bitcoin.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Genera monedas
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>No generar monedas
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Arranca minimizado
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Especifica directorio para los datos
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Especifica tiempo de espera para conexion (en milisegundos)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Conecta mediante proxy socks4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Permite búsqueda DNS para addnode y connect</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>Escuchar por conecciones en &lt;puerto&gt; (Por defecto: 8333 o red de prueba: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Agrega un nodo para conectarse</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Conecta solo al nodo especificado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished">No buscar pares usando &apos;internet relay chat (IRC)&apos;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>No aceptar conexiones desde el exterior
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Umbral de desconección de clientes con mal comportamiento (por defecto: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>No intentar usar UPnP para mapear el puerto de entrada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Intenta usar UPnP para mapear el puerto de escucha</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Comisión por kB para adicionarla a las transacciones enviadas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Aceptar comandos consola y JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Correr como demonio y acepta comandos</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Usa la red de pruebas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>Adjuntar informacion extra de depuracion</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Anteponer salida de depuracion con marca de tiempo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Enviar informacion de seguimiento a la consola en vez del archivo debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Enviar informacion de seguimiento al depurador</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>La billetera necesita ser reescrita: reinicie Bitcoin para completar</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Usuario para las conexiones JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Contraseña para las conexiones JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Escucha conexiones JSON-RPC en el puerto &lt;port&gt; (predeterminado: 8332)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>Permite conexiones JSON-RPC desde la dirección IP especificada
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>Envia comando al nodo situado en &lt;ip&gt; (predeterminado: 127.0.0.1)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Ajusta el numero de claves en reserva &lt;n&gt; (predeterminado: 100)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Rescanea la cadena de bloques para transacciones perdidas de la cartera
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>Opciones SSL: (ver la Bitcoin Wiki para instrucciones de configuración SSL)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Usa OpenSSL (https) para las conexiones JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Certificado del servidor (Predeterminado: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Clave privada del servidor (Predeterminado: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Cifrados aceptados (Predeterminado: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Este mensaje de ayuda
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Error cargando addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Error cargando blkindex.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Error cargando wallet.dat: Cartera dañada
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Error cargando el archivo wallet.dat: Se necesita una versión mas nueva de Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Error cargando wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts
new file mode 100644
index 0000000000..50b8610f14
--- /dev/null
+++ b/src/qt/locale/bitcoin_hu.ts
@@ -0,0 +1,1854 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>A Bitcoinról</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; verzió</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>Szerzői jog © 2009-2012 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>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Címjegyzék</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>Ezekkel a Bitcoin-címekkel fogadhatod kifizetéseket. Érdemes lehet minden egyes kifizető számára külön címet létrehozni, hogy könnyebben nyomon követhesd, kitől kaptál már pénzt.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Dupla-katt a cím vagy a címke szerkesztéséhez</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Új cím létrehozása</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Címjegyzék adatainak exportálása</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>%1 nevű fájl nem írható.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Új cím...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>A kiválasztott cím másolása a vágólapra</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Másolás a vágólapra</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>A kiválasztott cím törlése a listáról. Csak a küldő címek törölhetőek.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Törlés</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Vesszővel elválasztott fájl (*. csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Hiba exportálás közben</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Cím</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Címke</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(nincs címke)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Tárca kódolása</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>SzövegCímke</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Párbeszéd</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Új jelszó</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Új jelszó újra</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Tárca kódolva</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Tárca kódolása sikertelen.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>A megadott jelszavak nem egyeznek.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Tárca megnyitása sikertelen</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Tárca megnyitása</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>A tárcád megnyitásához a műveletnek szüksége van a tárcád jelszavára.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>A tárcád dekódolásához a műveletnek szüksége van a tárcád jelszavára.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Jelszó megváltoztatása</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Írd be a tárca régi és új jelszavát.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Dekódolás sikertelen.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Biztosan kódolni akarod a tárcát?</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>FIGYELEM: Ha kódolod a tárcát, és elveszíted a jelszavad, akkor &lt;b&gt;AZ ÖSSZES BITCOINODAT IS EL FOGOD VESZÍTENI!&lt;/b&gt;
+Biztosan kódolni akarod a tárcát?</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>Írd be az új jelszót a tárcához.&lt;br/&gt;Használj legalább 10&lt;br/&gt;véletlenszerű karaktert&lt;/b&gt; vagy &lt;b&gt;legalább nyolc szót&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Tárca kódolása belső hiba miatt sikertelen. A tárcád nem lett kódolva.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Tárca dekódolása</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Hibás jelszó.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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 will close now to finish the encryption process. 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>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>Jelszó megváltoztatva.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Add meg a jelszót</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Tranzakciók</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <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="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>Tárca &amp;kódolása</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Szinkronizálás a hálózattal...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitcoin-tárca</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Blokklánc-szinkronizálás folyamatban</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Tárca általános áttekintése</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Tranzakciótörténet megtekintése</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>Cím&amp;jegyzék</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <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="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>Érmék &amp;fogadása</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <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="204"/>
+ <source>&amp;Send coins</source>
+ <translation>Érmék &amp;küldése</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Kilépés</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Kilépés</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;A %1-ról</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Információk a Bitcoinról</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opciók...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Bitcoin konfigurációs opciók</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>A &amp;Bitcoin megnyitása</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Áttekintés</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Tárca kódolása vagy dekódolása</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <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="583"/>
+ <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="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Exportálás...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Beállítások</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>A &amp;Qt-ról</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Információk a Qt ról</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[teszthálózat]</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation>
+ <numerusform>%n aktív kapcsolat a Bitcoin-hálózattal</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fájl</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Súgó</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Fül eszköztár</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>%1 blokk letöltve a tranzakciótörténetből.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Parancsok eszköztár</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n másodperccel ezelőtt</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <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="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>A Bitcoin-ablak mutatása</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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>Jelszó &amp;megváltoztatása</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n perccel ezelőtt</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n órával ezelőtt</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n nappal ezelőtt</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Naprakész</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Frissítés...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <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="615"/>
+ <source>Sent transaction</source>
+ <translation>Tranzakció elküldve.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Beérkező tranzakció</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Dátum: %1
+Összeg: %2
+Típus: %3
+Cím: %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="588"/>
+ <source>Sending...</source>
+ <translation>Küldés...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Mértékegység: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Válaszd ki az interfészen és érmék küldésekor megjelenítendő alapértelmezett alegységet.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Címek megjelenítése a tranzakciólistában</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Cím szerkesztése</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>Cím&amp;ke</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Cím</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>Az ehhez a címjegyzék-bejegyzéshez tartozó cím. Ez csak a küldő címeknél módosítható.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Új fogadó cím</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Új küldő cím</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Fogadó cím szerkesztése</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Küldő cím szerkesztése</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>A címhez tartozó címke</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>A megadott &quot;%1&quot; cím már szerepel a címjegyzékben.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Tárca feloldása sikertelen</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Új kulcs generálása sikertelen</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>A megadott &quot;%1&quot; cím nem egy érvényes Bitcoin-cím.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>Proxy IP címe (pl.: 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Proxy portja (pl.: 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Port: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Induljon el a számítógép bekapcsolásakor</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Induljon el a Bitcoin a számítógép bekapcsolásakor</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Kicsinyítés a tálcára az eszköztár helyett</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Kicsinyítés után csak eszköztár-ikont mutass</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>&amp;UPnP port-feltérképezés</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>K&amp;icsinyítés záráskor</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="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>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Tranzakciós &amp;díj fizetése</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>A Bitcoin-kliens portjának automatikus megnyitása a routeren. Ez csak akkor működik, ha a routered támogatja az UPnP-t és az engedélyezve is van rajta.</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>Az alkalmazásból való kilépés helyett az eszköztárba kicsinyíti az alkalmazást az ablak bezárásakor. Ez esetben az alkalmazás csak a Kilépés menüponttal zárható be.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Csatlakozás SOCKS4 proxyn keresztül:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>SOCKS4 proxyn keresztüli csatlakozás a Bitcoin hálózatához (pl. Tor-on keresztüli csatlakozás esetén)</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Fő</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Megjelenítés</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Opciók</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Űrlap</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Egyenleg:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Tranzakciók száma:</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>Megerősítetlen:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Tárca</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Legutóbbi tranzakciók&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Aktuális egyenleged</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>Még megerősítésre váró, a jelenlegi egyenlegbe be nem számított tranzakciók</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Tárca összes tranzakcióinak száma</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>A küldeni kívánt összeg és a %1 tranzakciós díj együtt meghaladja az egyenlegeden rendelkezésedre álló összeget.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Többször szerepel ugyanaz a cím. Egy küldési műveletben egy címre csak egyszer lehet küldeni.</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation>Küldés megerősítése</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Egyenleg:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Mindent töröl</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation>&amp;Küldés</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; %2-re (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>Küldés megerősítése</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Valóban el akarsz küldeni %1-t?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation> és</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>A fizetendő összegnek nagyobbnak kell lennie 0-nál.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>Hiba: 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>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Érmék küldése</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Küldés több címzettnek egyszerre</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Címzett hozzáadása ...</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>A címzett címe érvénytelen, kérlek, ellenőrizd.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>Nincs ennyi bitcoin az egyenlegeden.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Hiba: nem sikerült létrehozni a tranzakciót.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Űrlap</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Cím beillesztése a vágólapról</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="66"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation>Milyen címkével kerüljön be ez a cím a címtáradba?
+</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Címzett:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Címke:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Válassz egy címet a címjegyzékből</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation>Címzett eltávolítása</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>Összeg:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Címzett címe (pl.: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L )</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Adj meg egy Bitcoin-címet (pl.: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L )</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Állapot:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/megerősítetlen</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 megerősítés</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Megnyitva %1 blokkra</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/offline?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Megnyitva %1-ig</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, %1 csomóponton keresztül elküldve.</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, elküldve %1 csomóponton keresztül.</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <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="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Forrás:&lt;/b&gt; Generálva&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Űrlap:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>ismeretlen</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Címzett:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Megjegyzés:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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>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>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (tiéd, címke: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (tiéd)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1, %2 múlva készül el)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Jóváírás&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(elutasítva)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Terhelés&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Tranzakciós díj:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Nettó összeg:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Üzenet:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, még nem sikerült elküldeni.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Tranzakció részletei</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Ez a mező a tranzakció részleteit mutatja</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Összeg</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Típus</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Dátum</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>%n blokkra megnyitva</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>%1-ig megnyitva</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Offline (%1 megerősítés)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Megerősítve (%1 megerősítés)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Megerősítetlen (%1 %2 megerősítésből)</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Ezt a blokkot egyetlen másik csomópont sem kapta meg, így valószínűleg nem lesz elfogadva!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Legenerálva, de még el nem fogadva.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Erre a címre</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Erre a címre</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Magadnak kifizetve</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Kibányászva</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(nincs)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Tranzakció állapota. Húzd ide a kurzort, hogy lásd a megerősítések számát.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Tranzakció fogadásának dátuma és időpontja.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Tranzakció típusa.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>A tranzakció címzettjének címe.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Az egyenleghez jóváírt vagy ráterhelt összeg.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Cím</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Erről az</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Minimális összeg</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Cím másolása</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Címke másolása</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Címke szerkesztése</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Tranzakció adatainak exportálása</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Vesszővel elválasztott fájl (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Megerősítve</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Dátum</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Típus</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Címke</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Cím</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Összeg</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>Azonosító</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Hiba lépett fel exportálás közben</translation>
+ </message>
+ <message>
+ <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="56"/>
+ <source>Today</source>
+ <translation>Mai</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Ezen a héten</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Ebben a hónapban</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Múlt hónapban</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Ebben az évben</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Magadnak</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Erre a címre</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Kibányászva</translation>
+ </message>
+ <message>
+ <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="61"/>
+ <source>Range...</source>
+ <translation>Tartomány ...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Erre a címre</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Más</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <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="393"/>
+ <source>Range:</source>
+ <translation>Tartomány:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>meddig</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Részletek...</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Küldés ...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Bitcoin verzió</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Használat:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Parancsok kilistázása
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Segítség egy parancsról
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Opciók
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation type="unfinished">Csatlakozásokhoz figyelendő &lt;port&gt; (alapértelmezett: 8333 or testnet: 18333)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Címek betöltése...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Blokkindex betöltése...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Figyelem: a -paytxfee nagyon magas. Ennyi tranzakciós díjat fogsz fizetni, ha elküldöd a tranzakciót.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Hiba: CreateThread(StartNode) sikertelen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Étvénytelen -paytxfee=&lt;összeg&gt; összeg</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Figyelem: kevés a hely a lemezen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>A %d port nem elérhető ezen a gépen. A Bitcoin valószínűleg fut már.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Az %s adatkönyvtár nem zárható. A Bitcoin valószínűleg fut már.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Tárca betöltése...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Betöltés befejezve.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Újraszkennelés...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Parancs küldése a -serverhez vagy a bitcoindhez
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Érvénytelen -proxy cím</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>béta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Konfigurációs fájl (alapértelmezett: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>pid-fájl (alapértelmezett: bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Érmék generálása
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Bitcoin-generálás leállítása
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Indítás lekicsinyítve
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Adatkönyvtár
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Csatlakozás időkerete (milliszekundumban)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Csatlakozás SOCKS4 proxyn keresztül</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>DNS-kikeresés engedélyezése az addnode-nál és a connect-nél
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Elérendő csomópont megadása
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Csatlakozás csak a megadott csomóponthoz
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Külső csatlakozások elutasítása
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <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="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>UPnP-használat letiltása a figyelő port feltérképezésénél
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>UPnP-használat engedélyezése a figyelő port feltérképezésénél</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Parancssoros és JSON-RPC parancsok elfogadása
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Háttérben futtatás daemonként és parancsok elfogadása</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Teszthálózat használata
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Felhasználói név JSON-RPC csatlakozásokhoz
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Jelszó JSON-RPC csatlakozásokhoz
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>JSON-RPC csatlakozásokhoz figyelendő &lt;port&gt; (alapértelmezett: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>JSON-RPC csatlakozások engedélyezése meghatározott IP-címről</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>Parancsok küldése &lt;ip&gt; címen működő csomóponthoz (alapértelmezett: 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Kulcskarika mérete &lt;n&gt; (alapértelmezett: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Blokklánc újraszkennelése hiányzó tárca-tranzakciók után</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>
+SSL-opciók: (lásd a Bitcoin Wiki SSL-beállítási instrukcióit)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>OpenSSL (https) használata JSON-RPC csatalkozásokhoz
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Szervertanúsítvány-fájl (alapértelmezett: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Szerver titkos kulcsa (alapértelmezett: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Elfogadható rejtjelkulcsok (alapértelmezett: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH )
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Ez a súgó-üzenet
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Hiba az addr.dat betöltése közben
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Hiba a blkindex.dat betöltése közben
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Hiba a wallet.dat betöltése közben: meghibásodott tárca
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>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>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Hiba a wallet.dat betöltése közben
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts
new file mode 100644
index 0000000000..927f3b898f
--- /dev/null
+++ b/src/qt/locale/bitcoin_it.ts
@@ -0,0 +1,1865 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="it">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Info su Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>Versione di &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>Copyright © 2009-2012 Bitcoin Developers
+
+Questo è un software sperimentale.
+
+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&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>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Rubrica</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>Questi sono i tuoi indirizzi Bitcoin per ricevere pagamenti. Potrai darne uno diverso ad ognuno per tenere così traccia di chi ti sta pagando.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Fai doppio click per modificare o cancellare l&apos;etichetta</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Crea un nuovo indirizzo</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Nuovo indirizzo...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copia l&apos;indirizzo attualmente selezionato nella clipboard</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Copia nella clipboard</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Cancella l&apos;indirizzo attualmente selezionato dalla lista. Solo indirizzi d&apos;invio possono essere cancellati.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Cancella</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Testo CSV (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Errore nell&apos;esportazione</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>Impossibile scrivere sul file %1.</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Esporta gli indirizzi della rubrica</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Etichetta</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Indirizzo</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(nessuna etichetta)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Nuova passphrase</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Quest&apos;operazione necessita della passphrase per sbloccare il portamonete.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Decifra il portamonete</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Inserisci la passphrase</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Cifratura del portamonete fallita</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Ripeti la passphrase</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Le passphrase inserite non corrispondono.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>La passphrase inserita per la decifrazione del portamonete è errata.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>Etichetta</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>Inserisci la passphrase per il portamonete.&lt;br/&gt;Per piacere usare unapassphrase di &lt;b&gt;10 o più caratteri casuali&lt;/b&gt;, o &lt;b&gt;otto o più parole&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialogo</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Quest&apos;operazione necessita della passphrase per decifrare il portamonete,</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Inserisci la vecchia e la nuova passphrase per il portamonete.</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>ATTENZIONE: se si cifra il portamonete e si perde la frase d&apos;ordine, &lt;b&gt;SI PERDERANNO TUTTI I PROPRI BITCOIN&lt;/b&gt;!
+Si è sicuri di voler cifrare il portamonete?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Cifra il portamonete</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Sblocca il portamonete</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Portamonete cifrato</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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 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="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Cifratura del portamonete fallita a causa di un errore interno. Il portamonete non è stato cifrato.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Sblocco del portamonete fallito</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Cambia la passphrase</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Decifrazione del portamonete fallita</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Conferma la cifratura del portamonete</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>Passphrase del portamonete modificata con successo.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Attenzione: tasto Blocco maiuscole attivo.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Ricevi monete</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <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="228"/>
+ <source>About &amp;Qt</source>
+ <translation>Informazioni su &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <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="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Sto sincronizzando con la rete...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Portamonete di bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Sintesi</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transazioni</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Rubrica</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <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="204"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Invia monete</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Esci</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Chiudi applicazione</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opzioni...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Cifra o decifra il portamonete</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Cifra il portamonete</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Mostra informazioni su Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Mostra informazioni su Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Esporta...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;File</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;Informazioni su %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Impostazioni</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Aiuto</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Barra degli strumenti &quot;Tabs&quot;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Barra degli strumenti &quot;Azioni&quot;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Cambia la passphrase</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>sincronizzazione della catena di blocchi in corso</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Mostra lo stato generale del portamonete</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Cerca nelle transazioni</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Invia monete ad un indirizzo bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Modifica configurazione opzioni per bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Apri &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Mostra la finestra Bitcoin</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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <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="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n secondo fa</numerusform>
+ <numerusform>%n secondi fa</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n minuto fa</numerusform>
+ <numerusform>%n minuti fa</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n ora fa</numerusform>
+ <numerusform>%n ore fa</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n giorno fa</numerusform>
+ <numerusform>%n giorni fa</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Aggiornato</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>In aggiornamento...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <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="583"/>
+ <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="615"/>
+ <source>Sent transaction</source>
+ <translation>Transazione inviata</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Transazione ricevuta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Data: %1
+Quantità: %2
+Tipo: %3
+Indirizzo: %4
+
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="588"/>
+ <source>Sending...</source>
+ <translation>Invio...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>Scaricati %1 dei %2 blocchi dello storico transazioni.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Scegli l&apos;unità di suddivisione di default per l&apos;interfaccia e per l&apos;invio di monete</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Unità di misura degli importi in: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Mostra gli indirizzi nella lista delle transazioni</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Modifica l&apos;indirizzo</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Etichetta</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>L&apos;etichetta associata a questo indirizzo nella rubrica</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Nuovo indirizzo di ricezione</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Nuovo indirizzo d&apos;invio</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Modifica indirizzo di ricezione</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>L&apos;indirizzo inserito &quot;%1&quot; è già in rubrica.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Impossibile sbloccare il portamonete.</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Indirizzo</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Generazione della nuova chiave non riuscita.</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>L&apos;indirizzo associato a questa voce della rubrica. Si può modificare solo negli indirizzi di spedizione.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Modifica indirizzo d&apos;invio</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;indirizzo inserito &quot;%1&quot; non è un indirizzo bitcoin valido.</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;Fai partire Bitcoin all&apos;avvio del sistema</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Avvia automaticamente Bitcoin all&apos;accensione del computer</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimizza sul tray invece che sulla barra delle applicazioni</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Mostra solo un&apos;icona nel tray quando si minimizza la finestra</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Mappa le porte tramite l&apos;&amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimizza alla chiusura</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>Apri automaticamente la porta del client Bitcoin sul router. Questo funziona solo se il router supporta UPnP ed è abilitato.</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>Riduci ad icona, invece di uscire dall&apos;applicazione quando la finestra viene chiusa. Quando questa opzione è attivata, l&apos;applicazione verrà chiusa solo dopo aver selezionato Esci nel menu.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Collegati tramite SOCKS4 proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Connettiti alla rete Bitcon attraverso un proxy SOCKS4 (ad esempio quando ci si collega via Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>&amp;IP del proxy: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>Indirizzo IP del proxy (ad esempio 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Porta: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Porta del proxy (es. 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>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"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Paga la &amp;commissione</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Principale</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Mostra</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Opzioni</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Numero delle transazioni effettuate</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Saldo attuale</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>Totale delle transazioni in corso di conferma, che non sono ancora incluse nel saldo attuale</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Modulo</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Saldo</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Numero di transazioni:</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>Non confermato:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Portamonete</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Transazioni recenti&lt;/b&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Spedisci Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation>Conferma la spedizione</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation>&amp;Spedisci</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123,456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <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="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Rimuovi tutti i campi della transazione</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>Conferma la spedizione di bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Si è sicuri di voler spedire %1?</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Aggiungi beneficiario...</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Cancella tutto</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Spedisci a diversi beneficiari in una volta sola</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation> e </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>L&apos;importo da pagare dev&apos;essere maggiore di 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>L&apos;indirizzo del beneficiario non è valido, per cortesia controlla.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>Nincs ennyi bitcoin az egyenlegeden.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>Il totale è superiore al saldo attuale includendo la commissione %1.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Trovato un indirizzo doppio, si può spedire solo una volta a ciascun indirizzo in una singola operazione.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Errore: creazione della transazione fallita.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>Hiba: 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>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <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>Inserisci un&apos;etichetta per questo indirizzo, per aggiungerlo nella rubrica</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Incollare l&apos;indirizzo dagli appunti</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Modulo</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Inserisci un indirizzo Bitcoin (ad esempio 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Etichetta</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>L&apos;indirizzo del beneficiario cui inviare il pagamento (ad esempio 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Scegli l&apos;indirizzo dalla rubrica</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="113"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>&amp;Importo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Paga &amp;a:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation>Rimuovere questo beneficiario</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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>Bisogna attendere 120 blocchi prima di spendere I bitcoin generati. Quando è stato generato questo blocco, è stato trasmesso alla rete per aggiungerlo alla catena di blocchi. Se non riesce a entrare nella catena, verrà modificato in &quot;non accettato&quot; e non sarà spendibile. Questo può accadere a volte, se un altro nodo genera un blocco entro pochi secondi del tuo.</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Megnyitva %1 blokkra</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/offline?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/non confermato</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Stato:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, non è stato ancora trasmesso con successo</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, trasmesso attraverso %1 nodo</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, trasmesso attraverso %1 nodi</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <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="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Fonte:&lt;/b&gt; Generato&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Da:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Per:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (vostro, etichetta: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (vostro)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Credito:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 matura in altri %2 blocchi)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(non accettate)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Debito:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Tranzakciós díj:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Importo netto:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Messaggio:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Aperto fino a %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 conferme</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>sconosciuto</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Commento:</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Questo pannello mostra una descrizione dettagliata della transazione</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Dettagli sulla transazione</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Data</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Tipo</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Indirizzo</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Importo</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Aperto per %n blocco</numerusform>
+ <numerusform>Aperto per %n blocchi</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Aperto fino a %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Offline (%1 conferme)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Non confermati (%1 su %2 conferme)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Confermato (%1 conferme)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Questo blocco non è stato ricevuto da altri nodi e probabilmente non sarà accettato!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Generati, ma non accettati</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Ricevuto tramite</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Ricevuto da</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Spedito a</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Pagamento a te stesso</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Ottenuto dal mining</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(N / a)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Stato della transazione. Passare con il mouse su questo campo per vedere il numero di conferme.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Data e ora in cui la transazione è stata ricevuta.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Tipo di transazione.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Indirizzo di destinazione della transazione.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Importo rimosso o aggiunto al saldo.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <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>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Copia l&apos;etichetta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Modifica l&apos;etichetta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Esporta i dati della transazione</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Testo CSV (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Confermato</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Indirizzo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Mostra i dettagli...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Etichetta</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Errore nell&apos;esportazione</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Tipo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Importo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>Impossibile scrivere sul file %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Intervallo:</translation>
+ </message>
+ <message>
+ <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="56"/>
+ <source>Today</source>
+ <translation>Oggi</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Questa settimana</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Questo mese</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Il mese scorso</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Quest&apos;anno</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Ricevuto tramite</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>A te</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Ottenuto dal mining</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Altro</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Data</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>a</translation>
+ </message>
+ <message>
+ <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="90"/>
+ <source>Min amount</source>
+ <translation>Importo minimo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Copia l&apos;indirizzo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Intervallo...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Spedito a</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Invio...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Versione di Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Non è possibile ottenere i dati sulla directory %s. Probabilmente Bitcoin è già in esecuzione.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Caricamento indirizzi...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Caricamento dell&apos;indice del blocco...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Caricamento completato</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Indirizzo -proxy non valido</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Errore: CreateThread(StartNode) non riuscito</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>Impossibile collegarsi alla porta %d su questo computer. Probabilmente Bitcoin è già in esecuzione.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Attenzione: lo spazio su disco è scarso</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Utilizzo:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Lista comandi
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Non generare Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Caricamento portamonete...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Ripetere la scansione...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Importo non valido per -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Attenzione: -paytxfee è molto alta. Questa è la commissione che si paga quando si invia una transazione.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Manda il comando a -server o bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>beta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Aiuto su un comando
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Opzioni:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Specifica il file di configurazione (di default: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Specifica il file pid (default: bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Genera Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Parti in icona
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Specifica la cartella dati
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Specifica il timeout di connessione (in millisecondi)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Connessione tramite socks4 proxy
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Consenti ricerche DNS per aggiungere nodi e collegare</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>Ascolta le connessioni JSON-RPC su &lt;porta&gt; (default: 8333 o testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation>Mantieni al massimo &lt;n&gt; connessioni ai peer (default: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Aggiungi un nodo e connetti a</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Connetti solo al nodo specificato</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Non accettare connessioni dall&apos;esterno
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation>Non avviare la lista dei peer usando il DNS</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Soglia di disconnessione dei peer di cattiva qualità (default: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <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="34"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Buffer di ricezione massimo per connessione, &lt;n&gt;*1000 byte (default: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Buffer di invio massimo per connessione, &lt;n&gt;*1000 byte (default: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>Non usare l&apos;UPnP per mappare la porta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Prova ad usare l&apos;UPnp per mappare la porta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Commissione per kB da aggiungere alle transazioni in uscita</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Accetta da linea di comando e da comandi JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>Produci informazioni extra utili al debug</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Anteponi all&apos;output di debug una marca temporale</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Invia le informazioni di trace/debug alla console invece che al file debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Invia le informazioni di trace/debug al debugger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Esegui in background come demone e accetta i comandi
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Utilizza la rete di prova
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Nome utente per connessioni JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Password per connessioni JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Attendi le connessioni JSON-RPC su &lt;porta&gt; (default: 8332)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>Consenti connessioni JSON-RPC dall&apos;indirizzo IP specificato
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>Inviare comandi al nodo in esecuzione su &lt;ip&gt; (default: 127.0.0.1)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Impostare la quantità di chiavi di riserva a &lt;n&gt; (default: 100)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Ripeti analisi della catena dei blocchi per cercare le transazioni mancanti dal portamonete
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>
+Opzioni SSL: (vedi il wiki di Bitcoin per le istruzioni di configurazione SSL)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Utilizzare OpenSSL (https) per le connessioni JSON-RPC
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>File certificato del server (default: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Chiave privata del server (default: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Cifrari accettabili (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Questo messaggio di aiuto
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Errore nel caricamento di addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Errore nel caricamento di blkindex.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Errore nel caricamento di wallet.dat: il portamonete è danneggiato
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Errore nel caricamento di wallet.dat: il portamonete richiede una versione più recente di Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>Il portamonete deve essere riscritto: riavviare Bitcoin per completare</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Errore nel caricamento di wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts
new file mode 100644
index 0000000000..c6a975d33d
--- /dev/null
+++ b/src/qt/locale/bitcoin_nb.ts
@@ -0,0 +1,1863 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="nb">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Om 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; versjon</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>Copyright © 2009-2012 Bitcoin Utviklerne
+
+Dette er eksperimentell programvare.
+
+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.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Adressebok</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>Dette er dine Bitcoin adresser for å motta betalinger. Du kan gi en separat adresse til hver avsender slik at du kan holde oversikt over hvem som betaler deg.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Dobbeltklikk for å redigere adresse eller merkelapp</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Lag en ny adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Ny adresse...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Kopier den valgte adressen til systemets utklippstavle</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Kopier til utklippstavle</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Slett den valgte adressen fra listen. Bare adresser for sending kan slettes.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Slett</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kommaseparert fil (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Feil ved eksportering</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>Kunne ikke skrive til filen %1.</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Eksporter adressebok</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Merkelapp</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(ingen merkelapp)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Ny adgangsfrase</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Gjenta ny adgangsfrase</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialog</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Angi adgangsfrase</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Denne operasjonen krever adgangsfrasen til lommeboken for å dekryptere den.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>Merkelapp</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>ADVARSEL: Hvis du krypterer lommeboken og mister adgangsfrasen vil du &lt;b&gt;MISTE ALLE DINE BITCOINS&lt;/b&gt;!
+Er du sikker på at du vil kryptere lommeboken?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Opplåsing av lommebok feilet</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>Skriv inn den nye adgangsfrasen for lommeboken.&lt;br/&gt;Vennligst bruk en adgangsfrase med &lt;b&gt;10 eller flere tilfeldige tegn&lt;/b&gt;, eller &lt;b&gt;åtte eller flere ord&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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 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="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Denne operasjonen krever adgangsfrasen til lommeboken for å låse den opp.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Kryptering av lommebok feilet</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Dekrypter lommebok</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Krypter lommebok</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Endre adgangsfrase</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Skriv inn gammel og ny adgangsfrase for lommeboken.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Lås opp lommebok</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Adgangsfrasen angitt for dekryptering av lommeboken var feil.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>Adgangsfrase for lommebok endret.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Lommebok kryptert</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Dekryptering av lommebok feilet</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Kryptering av lommebok feilet på grunn av en intern feil. Din lommebok ble ikke kryptert.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>De angitte adgangsfrasene er ulike.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Advarsel: Caps lock tasten er på.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Bekreft kryptering av lommebok</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <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="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Motta bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="204"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Send bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Synkroniserer med nettverk...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitcoin Lommebok</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Vis generell oversikt over lommeboken</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <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="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Eksporter...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Hjelp</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Innstillinger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Synkronisering av blokk-kjede igang</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Oversikt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transaksjoner</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Adressebok</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Send bitcoins til en adresse</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Avslutt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Vis Bitcoin-vinduet</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>Lastet ned %1 av %2 blokker med transaksjonshistorikk.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="588"/>
+ <source>Sending...</source>
+ <translation>Sender...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <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="228"/>
+ <source>About &amp;Qt</source>
+ <translation>Om &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Vis transaksjonshistorikk</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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Avslutt applikasjonen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Vis informasjon om Bitcoin</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Krypter eller dekrypter lommebok</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Krypter Lommebok</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>for %n sekund siden</numerusform>
+ <numerusform>for %n sekunder siden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>for %n minutt siden</numerusform>
+ <numerusform>for %n minutter siden</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Åpne &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Verktøylinje for handlinger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Siste mottatte blokk ble generert %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fil</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>for %n dag siden</numerusform>
+ <numerusform>for %n dager siden</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Ajour</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Kommer ajour...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="615"/>
+ <source>Sent transaction</source>
+ <translation>Sendt transaksjon</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Innkommende transaksjon</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Dato: %1
+Beløp: %2
+Type: %3
+Adresse: %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="225"/>
+ <source>&amp;About %1</source>
+ <translation> &amp;Om %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Vis informasjon om Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Innstillinger...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Endre innstillinger for bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation>En fatal feil har inntruffet. Det er ikke trygt å fortsette og Bitcoin må derfor avslutte.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Endre Adgangsfrase</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Verktøylinje for faner</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[testnett]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Lastet ned %1 blokker med transaksjonshistorikk.</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Enhet for å vise beløp i: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Velg standard underenhet som skal vises i grensesnittet og ved sending av mynter</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Vis adresser i transaksjonslisten</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished">Om Bitcoin-adresser skal vises i transaksjonslisten eller ikke</translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Rediger adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Merkelapp</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>Merkelappen koblet til denne adressen i adresseboken</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Adresse</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>Adressen til denne oppføringen i adresseboken. Denne kan kun endres for utsendingsadresser.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Ny mottaksadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Ny utsendingsadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Rediger mottaksadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Rediger utsendingsadresse</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Den oppgitte adressen &quot;%1&quot; er allerede i adresseboken.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Kunne ikke låse opp lommeboken.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Generering av ny nøkkel feilet.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>en oppgitte adressen &quot;%1&quot; er ikke en gyldig bitcoin-adresse.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Start Bitcoin automatisk når datamaskinen blir slått på</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Start Bitcoin ved oppstart</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimer til systemkurv istedenfor oppgavelinjen</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Vis kun ikon i systemkurv etter minimering av vinduet</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimér ved lukking</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>Minimerer vinduet istedenfor å avslutte applikasjonen når vinduet lukkes. Når dette er slått på avsluttes applikasjonen kun ved å velge avslutt i menyen.</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>Åpne automatisk Bitcoin klientporten på ruteren. Dette virker kun om din ruter støtter UPnP og dette er påslått.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Sett opp port vha. &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Koble til gjennom SOCKS4 proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Koble til Bitcoin nettverket gjennom en SOCKS4 mellomtjener (f.eks. for tilkobling gjennom Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="202"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>IP-adresse for mellomtjener (f.eks. 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Port for mellomtjener (f.eks. 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>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"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Betal transaksjons&amp;gebyr</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>Mellomtjeners &amp;IP: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Port: </translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Hoved</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Innstillinger</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Visning</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Skjema</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>Ubekreftet</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Lommebok</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Din nåværende saldo</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>Totalt antall ubekreftede transaksjoner som ikke telles med i saldo enda</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Antall transaksjoner:</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Totalt antall transaksjoner i lommeboken</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Siste transaksjoner&lt;/b&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Send Bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Fjern alle transaksjonsfelter</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; til %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>Bekreft sending av bitcoins</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Er du sikker på at du vil sende %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation> og </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Beløpen som skal betales må være over 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>Feil: Transaksjonen ble avvist. Dette kan skje om noe av beløpet allerede var brukt, f.eks. hvis du kopierte wallet.dat og noen bitcoins ble brukt i kopien men ikke ble markert som brukt her.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>Adresse for mottaker er ugyldig.</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Send til flere enn én mottaker</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Legg til mottaker...</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Fjern alle</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Saldo:</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>Bekreft sending</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>Totalbeløpet overstiger saldo etter at %1 transaksjonsgebyr er lagt til.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Duplikate adresser funnet. Kan bare sende én gang til hver adresse per operasjon.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Feil: opprettelse av transaksjon feilet.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>Beløpet overstiger saldo.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>&amp;Beløp:</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="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Betal &amp;Til:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Skjema</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>Skriv inn en merkelapp for denne adressen for å legge den til i din adressebok</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Merkelapp:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Adressen betalingen skal sendes til (f.eks. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Velg adresse fra adresseboken</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>Fjern denne mottakeren</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Lim inn adresse fra utklippstavlen</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Skriv inn en Bitcoin adresse (f.eks. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Åpen for %1 blokker</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, kringkast gjennom %1 noder</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, kringkast gjennom %1 node</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/frakoblet?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/ubekreftet</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Status:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Dato:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Kilde:&lt;/b&gt; Generert&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Fra:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Til:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (din, merkelapp: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (din)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <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="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 modnes om %2 flere blokker)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Åpen til %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 bekreftelser</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, har ikke blitt kringkastet uten problemer enda.</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>ukjent</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(ikke akseptert)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <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="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Transaksjonsgebyr:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Nettobeløp:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Melding:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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>Genererte mynter må vente 120 blokker før de kan brukes. Da du genererte denne blokken ble den kringkastet på nettverket for å bli lagt til i kjeden av blokker. Hvis den ikke kommer med i kjeden vil den endre seg til &quot;ikke akseptert og pengene vil ikke kunne brukes. Dette vil noen ganger skje hvis en annen node genererer en blokk noen sekunder i tid fra din egen.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Transaksjonsdetaljer</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Her vises en detaljert beskrivelse av transaksjonen</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Åpen for %n blokk</numerusform>
+ <numerusform>Åpen for %n blokker</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Åpen til %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Ubekreftet (%1 av %2 bekreftelser)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Bekreftet (%1 bekreftelser)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Denne blokken har ikke blitt mottatt av noen andre noder og vil sannsynligvis ikke bli akseptert!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Generert men ikke akseptert</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Mottatt med</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Mottatt fra</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Sendt til</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Betaling til deg selv</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Utvunnet</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Transaksjonsstatus. Hold muspekeren over dette feltet for å se antall bekreftelser.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Dato og tid for da transaksjonen ble mottat.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Type transaksjon.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Mottaksadresse for transaksjonen</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Beløp fjernet eller lagt til saldo.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Beløp</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Dato</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Frakoblet (%1 bekreftelser)</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <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>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Bekreftet</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Rediger merkelapp</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Vis detaljer...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Beløp</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Feil ved eksport</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>Kunne ikke skrive til filen %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Intervall:</translation>
+ </message>
+ <message>
+ <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="56"/>
+ <source>Today</source>
+ <translation>I dag</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Denne uken</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Denne måneden</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Forrige måned</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Sendt til</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Til deg selv</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Utvunnet</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Andre</translation>
+ </message>
+ <message>
+ <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="90"/>
+ <source>Min amount</source>
+ <translation>Minimumsbeløp</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Kopier adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Kopier merkelapp</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Eksporter transaksjonsdata</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kommaseparert fil (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>til</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Dato</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Dette året</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Merkelapp</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Intervall...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Mottatt med</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Sender...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Bitcoin versjon</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Laster adresser...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Laster blokkindeks...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Laster lommebok...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Leser gjennom...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Ferdig med lasting</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Bruk:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Ugyldig -proxy adresse for mellomtjener</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Ugyldig gebyrbeløp for -paytxfee=&lt;beløp&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Advarsel: -paytxfee er satt veldig høyt. Dette er transaksjonsgebyret du betaler når du sender en transaksjon.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Feil: CreateThread(StartNode) feilet</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Advarsel: Lite ledig diskplass</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Kunne ikke låse datamappen %s. Bitcoin kjører sannsynligvis allerede.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>Klarer ikke binde til port %d på denne datamaskinen. Bitcoin kjører sannsynligvis allerede.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>beta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Send kommando til -server eller bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Vis liste over kommandoer
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Få hjelp til kommando
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Innstillinger:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Angi konfigurasjonsfil (standard: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Angi pid-fil (standard: bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Generer mynter
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Ikke generer mynter
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Start minimert
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Angi mappe for data
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Angi tidsavbrudd for forbindelser (i millisekunder)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Koble til gjennom sock4 mellomtjener
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Tillat DNS-oppslag for addnode og connect</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>Lytt etter tilkoblinger på &lt;port&gt;; (standardverdi: 8333 eller testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation>Hold maks &lt;n&gt; koblinger åpne til andre noder (standardverdi: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Legg til node for tilkobling</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Koble kun til angitt node</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished">Ikke finn andre noder via internet relay chat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Ikke ta imot tilkoblinger fra utsiden
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation>Ikke lag initiell nodeliste ved hjelp av DNS</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Grenseverdi for å koble fra noder med dårlig oppførsel (standardverdi: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <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="34"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Maksimum mottaksbuffer per tilkobling, &lt;n&gt;*1000 bytes (standardverdi: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Maksimum sendebuffer per tilkobling, &lt;n&gt;*1000 bytes (standardverdi: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>Ikke sett opp port vha. UPnP</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Sett opp port vha. UPnP</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Gebyr per kB for transaksjoner du sender</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Ta imot kommandolinje-og JSON-RPC-kommandoer</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Kjør som bakgrunnsprosess og ta imot kommandoer
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>Lommeboken måtte skrives om: start Bitcoin på nytt for å fullføre</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Bruk testnettet
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>Gi ut ekstra debuginformasjon</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Sett tidsstempel på debugmeldinger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Send spor/debug informasjon til konsollet istedenfor debug.log filen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Send spor/debug informasjon til debugger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Brukernavn for JSON-RPC forbindelser
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Passord for JSON-RPC forbindelser
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Lytt etter JSON-RPC forbindelser på &lt;port&gt; (standard: 8332)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>Tillat JSON-RPC forbindelser fra oppgitt IP-adresse
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>Send kommandoer til noden som kjører på &lt;ip&gt; (standard: 127.0.0.1)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Sett størrelsen på lager for nye nøkler til &lt;n&gt; (standard: 100)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Se igjennom blokk-kjeden på nytt etter manglende lommebokstransaksjoner
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>SSL innstillinger: (se Bitcoin Wikien for instruksjoner for SSL-oppsett)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Bruk OpenSSL (https) for JSON-RPC forbindelser
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Fil for tjenersertifikat (standard: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Privat nøkkel for tjener (standard: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Akseptable krypteringsmetoder (standard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Denne hjelpemeldingen
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Feil ved lasting av addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Feil ved lasting av blkindex.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Feil ved lasting av wallet.dat: Skadde data i lommeboken
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Feil ved lasting av wallet.dat: Lommeboken krever en nyere versjon av Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Feil ved lasting av wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation>Bitcoin-Qt</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts
new file mode 100644
index 0000000000..e031ffb7db
--- /dev/null
+++ b/src/qt/locale/bitcoin_nl.ts
@@ -0,0 +1,1864 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="nl">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Over 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; versie</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>Copyright © 2009-2012 Bitcoin Ontwikkelaars
+
+Dit is experimentele software.
+
+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 gemaakt door Eric Young (eay@cryptsoft.com) en UPnP software geschreven door Thomas Bernard.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Adresboek</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>Dit zijn uw Bitcoin-adressen om betalingen te ontvangen. U kunt er voor kiezen om een adres aan te maken voor elke afzender. Op deze manier kunt u bijhouden wie al aan u betaald heeft.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Dubbelklik om adres of label te wijzigen</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Maak een nieuw adres aan</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Nieuw Adres...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Kopieer het huidig geselecteerde adres naar het klembord</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="74"/>
+ <source>&amp;Copy to Clipboard</source>
+ <translation>&amp;Kopieer naar Klembord</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <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 zend-adressen kunnen verwijderd worden, niet uw ontvangstadressen.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Verwijder</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kommagescheiden bestand (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Fout bij exporteren</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Exporteer Gegevens van het Adresboek</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>Kon niet schrijven naar bestand %1.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(geen label)</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Label</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Adres</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Nieuwe wachtwoord</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialoog</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Huidig wachtwoord</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>TekstLabel</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Versleutel portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>Portemonneewachtwoord is met succes gewijzigd.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Herhaal wachtwoord</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Open portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Deze operatie vereist uw portemonneewachtwoord om de portemonnee te ontsleutelen</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Ontsleutel portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <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>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation>BELANGRIJK: Elke eerder gemaakte backup van uw portemonneebestand dient u te vervangen door het nieuw gegenereerde, versleutelde portemonneebestand. Om veiligheidsredenen zullen eerdere backups van het niet-versleutelde portemonneebestand onbruikbaar worden zodra u uw nieuwe, versleutelde, portemonnee begint te gebruiken.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Portemonneeversleuteling mislukt</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Portemonneeversleuteling mislukt door een interne fout, Uw portemonnee is niet versleuteld.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Portemonnee versleuteld</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Deze operatie vereist uw portemonneewachtwoord om de portemonnee te openen.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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 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="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>De opgegeven wachtwoorden komen niet overeen</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Het opgegeven wachtwoord voor de portemonnee-ontsleuteling is niet correct.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Portemonnee-ontsleuteling mislukt</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Waarschuwing: De Caps-Lock-toets staat aan.</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>WAARSCHUWING: Wanneer uw portemonnee wordt versleuteld en u verliest uw wachtwoord, dan verliest u&lt;b&gt;AL UW BITCOINS&lt;/b&gt;!
+Bent u er zeker van uw dat u uw portemonnee wilt versleutelen?</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>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="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Bevestig versleuteling van de portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Portemonnee openen mislukt</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Overzicht</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transacties</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>wijzig het wachtwoord voor uw portemonneversleuteling</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>Over &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Verstuur munten naar een bitcoin-adres</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Afsluiten</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Wijzig Wachtwoord</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="588"/>
+ <source>Sending...</source>
+ <translation>Versturen...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitcoin-portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Synchroniseren met netwerk...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Bezig met blokkenketen-synchronisatie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Toon algemeen overzicht van de portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Blader door transactieverleden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <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="204"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Verstuur munten</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Bewerk de lijst van opgeslagen adressen en labels</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Ontvang munten</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Toon informatie over Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>O&amp;pties...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Exporteer...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Bestand</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Instellingen</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[testnetwerk]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Actie-werkbalk</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Adresboek</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;Over %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Open &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Toon Bitcoin-venster</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>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation>
+ <numerusform>%n actieve connectie naar Bitcoinnetwerk</numerusform>
+ <numerusform>%n actieve connecties naar Bitcoinnetwerk</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>%1 blokken van transactiehistorie opgehaald.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n seconde geleden</numerusform>
+ <numerusform>%n seconden geleden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n minuut geleden</numerusform>
+ <numerusform>%n minuten geleden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n uur geleden</numerusform>
+ <numerusform>%n uur geleden</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n dag geleden</numerusform>
+ <numerusform>%n dagen geleden</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Bijgewerkt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Aan het bijwerken...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Laatst ontvangen blok is %1 gegenereerd.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Programma afsluiten</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Laat informatie zien over Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="615"/>
+ <source>Sent transaction</source>
+ <translation>Verzonden transactie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Binnenkomende transactie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Datum: %1
+Bedrag: %2
+Type: %3
+Adres: %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Wijzig instellingen van Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Versleutel Portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Versleutel of ontsleutel portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation>Er is een fatale fout opgetreden. Bitcoin kan niet meer veilig doorgaan en zal nu afgesloten worden.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Hulp</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Tab-werkbalk</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>%1 van %2 blokken van transactiehistorie opgehaald.</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Eenheid om bedrag in te tonen:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Kies de standaard onderverdelingseenheid om weer te geven in uw programma, en voor het versturen van munten</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Toon adressen in uw transactielijst</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation>Of Bitcoinadressen getoond worden in de transactielijst</translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Bewerk Adres</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <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 label dat geassocieerd is met dit adres</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Adres</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>Het adres dat geassocieerd is met deze inschrijving in het adresboek. Dit kan alleen worden veranderd voor zend-adressen.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Nieuw ontvangstadres</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Nieuw adres om naar te verzenden</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Bewerk ontvangstadres</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Bewerk adres om naar te verzenden</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Het opgegeven adres &quot;%1&quot; bestaat al in uw adresboek.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Kon de portemonnee niet openen.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Genereren nieuwe sleutel mislukt.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>Het opgegeven adres &quot;%1&quot; is een ongeldig bitcoinadres</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>Start &amp;Bitcoin wanneer het systeem opstart</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Start Bitcoin automatisch wanneer de computer wordt aangezet</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimaliseer naar het systeemvak in plaats van de taakbalk</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Laat alleen een systeemvak-icoon zien wanneer het venster geminimaliseerd is</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Portmapping via &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>Minimaliseer bij &amp;sluiten van het venster</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>Open de Bitcoin-poort automatisch op de router. Dit werkt alleen als de router UPnP ondersteunt.</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>Minimaliseer het venster in de plaats van de applicatie af te sluiten als het venster gesloten wordt. Wanneer deze optie aan staan, kan de applicatie alleen worden afgesloten door Afsluiten te kiezen in het menu.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Verbind via SOCKS4 proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Verbind met het Bitcoin-netwerk door een SOCKS4 proxy (bijv. wanneer Tor gebruikt wordt)</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-adres van de proxy (bijv. 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="205"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Poort:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="211"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Poort waarop de proxy luistert (bijv. 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>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 &amp;transactiekosten</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Algemeen</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Beeldscherm</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Opties</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Totaal aantal transacties in uw portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Vorm</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Portemonnee</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Onbevestigd:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Uw huidige saldo</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>Totaal van de transacties die nog moeten worden bevestigd en nog niet zijn meegeteld in uw huidige saldo </translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Aantal transacties:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Recente transacties&lt;/b&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Verstuur munten</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Verstuur aan verschillende ontvangers ineens</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Verwijder alle transactievelden</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation>Bevestig de verstuuractie</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation>&amp;Verstuur</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; aan %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Weet u zeker dat u %1 wil versturen?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation> en </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>Bedrag is hoger dan uw huidige saldo</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>Voeg &amp;ontvanger toe...</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Verwijder alles</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>Bevestig versturen munten</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>Het ontvangstadres is niet geldig, controleer uw invoer.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Het ingevoerde bedrag moet groter zijn dan 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>Totaal overschrijdt uw huidige saldo wanneer de %1 transactiekosten worden meegerekend</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Dubbel adres gevonden, u kunt slechts eenmaal naar een bepaald adres verzenden per verstuurtransactie</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Fout: Aanmaak transactie mislukt</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>Fout: De transactie was afgewezen. Dit kan gebeuren als u eerder uitgegeven munten opnieuw wilt versturen, zoals wanneer u een kopie van uw portemonneebestand (wallet.dat) heeft gebruikt en in de kopie deze munten zijn uitgegeven, maar in de huidige portemonnee deze nog niet als zodanig zijn gemarkeerd.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Plak adres vanuit klembord</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Vorm</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>Bedra&amp;g:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Betaal &amp;Aan:</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>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;Label:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Het adres waaraan u wilt betalen (bijv. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Kies adres uit adresboek</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="130"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation>Verwijder deze ontvanger</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Vul een Bitcoinadres in (bijv. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 bevestigingen</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Openen voor %1 blokken</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/niet verbonden?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/onbevestigd</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Status:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, uitgezonden naar %1 node</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, uitgezonden naar %1 nodes</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Datum:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Bron:&lt;/b&gt;Gegenereerd&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Van:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Aan:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation>(Uw adres, label:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation>(uw) </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Openen totdat %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, is nog niet met succes uitgezonden</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>onbekend</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Bij:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 komt beschikbaar na %2 blokken)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(niet geaccepteerd)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Af:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Transactiekosten:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Netto bedrag:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Bericht:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Opmerking:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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. 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>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Transactiedetails</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Dit venster laat een uitgebreide beschrijving van de transactie zien</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Datum</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Adres</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Bedrag</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Open gedurende %n blok</numerusform>
+ <numerusform>Open gedurende %n blokken</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Open tot %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Niet verbonden (%1 bevestigingen)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Onbevestigd (%1 van %2 bevestigd)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Bevestigd (%1 bevestigingen)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Dit blok is niet ontvangen bij andere nodes en zal waarschijnlijk niet worden geaccepteerd!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Gegenereerd maar niet geaccepteerd</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Ontvangen met</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Ontvangen van</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Verzonden aan</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Betaling aan uzelf</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Ontgonnen</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(nvt)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Transactiestatus. Houd de muiscursor boven dit veld om het aantal bevestigingen te laten zien.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Datum en tijd waarop deze transactie is ontvangen.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Type transactie.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Ontvangend adres van transactie</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Bedrag verwijderd van of toegevoegd aan saldo</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation>
+ <numerusform>Ontgonnen saldo komt beschikbaar na %n blok</numerusform>
+ <numerusform>Ontgonnen saldo komt beschikbaar na %n blokken</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Aan uzelf</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Ontgonnen</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Min. bedrag</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Deze maand</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Vorige maand</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Bewerk label</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Exporteer transactiegegevens</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Kommagescheiden bestand (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Bevestigd</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Datum</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Adres</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Bedrag</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Fout bij exporteren</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>Kon niet schrijven naar bestand %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Bereik:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>naar</translation>
+ </message>
+ <message>
+ <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="84"/>
+ <source>Enter address or label to search</source>
+ <translation>Vul adres of label in om te zoeken</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Kopieer adres</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Vandaag</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Deze week</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Dit jaar</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Bereik...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Ontvangen met</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Anders</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Verzonden aan</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Toon details...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Label</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Kopieer label</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Versturen...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Bitcoinversie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Adressen aan het laden...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Portemonnee aan het laden...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Gebruik:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Foutief -proxy adres</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Waarschuwing: -paytxfee is zeer hoog ingesteld. Dit zijn de transactiekosten die u betaalt bij het versturen van een transactie.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>Kan niet binden aan poort %d op deze computer. Bitcoin draait vermoedelijk reeds.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Waarschuwing: Weinig schijfruimte over</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Kan geen lock op de datamap %s verkrijgen. Bitcoin draait vermoedelijk reeds.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Blokindex aan het laden...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Opnieuw aan het scannen ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Klaar met laden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Ongeldig bedrag voor -paytxfee=&lt;bedrag&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Fout: CreateThread(StartNode) is mislukt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>beta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>Portemonnee moest herschreven worden: Herstart Bitcoin om te voltooien</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Stuur commando naar -server of bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>List van commando&apos;s
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Toon hulp voor een commando
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Opties:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Specifieer configuratiebestand (standaard: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Specifieer pid-bestand (standaard: bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Genereer munten
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Genereer geen munten
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Geminimaliseerd starten
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Stel datamap in</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Specificeer de time-out tijd (in milliseconden)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Verbind via socks4 proxy</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Sta DNS-naslag toe voor addnode en connect
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>Luister voor verbindingen op &lt;poort&gt; (standaard: 8333 of testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation>Onderhoud maximaal &lt;n&gt; verbindingen naar peers (standaard: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Voeg een node toe om mee te verbinden</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Verbind alleen met deze node</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished">Don&apos;t Vind anderen door middel van Internet Relay Chat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Sta geen verbindingen van buitenaf toe</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation>Gebruik geen DNS om de lijst met peers op te starten</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Drempel om verbinding te verbreken naar zich misdragende peers (standaard: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation>Aantal seconden dat zich misdragende peers niet opnieuw mogen verbinden (standaard: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Maximale ontvangstbuffer per connectie, &lt;n&gt;*1000 bytes (standaard: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Maximale zendbuffer per connectie, &lt;n&gt;*1000 bytes (standaard: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>Probeer geen UPnP te gebruiken om de poort waarop geluisterd wordt te mappen
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Probeer UPnP te gebruiken om de poort waarop geluisterd wordt te mappen
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Aanvaard commandoregel en JSON-RPC commando&apos;s
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Draai in de achtergrond als daemon en aanvaard commando&apos;s
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Gebruik het testnetwerk
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>Toon extra debuggingsinformatie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Voorzie de debuggingsuitvoer van een tijdsaanduiding</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Stuur trace/debug-info naar de console in plaats van het debug.log bestand</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Stuur trace/debug-info naar debugger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Gebruikersnaam voor JSON-RPC verbindingen
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Wachtwoord voor JSON-RPC verbindingen
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Luister voor JSON-RPC verbindingen op &lt;poort&gt; (standaard: 8332)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>Sta JSON-RPC verbindingen van opgegeven IP adres toe
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>Verstuur commando&apos;s naar proces dat op &lt;ip&gt; draait (standaard: 127.0.0.1)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Stel sleutelpoelgrootte in op &lt;n&gt; (standaard: 100)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Doorzoek de blokkenketting op ontbrekende portemonnee-transacties
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>
+SSL opties: (zie de Bitcoin wiki voor SSL instructies)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Gebruik OpenSSL (https) voor JSON-RPC verbindingen
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Certificaat-bestand voor server (standaard: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Geheime sleutel voor server (standaard: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Aanvaardbare ciphers (standaard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Dit helpbericht
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Fout bij laden van bestand addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Fout bij laden van bestand addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Fout bij het laden van wallet.dat: Portemonnee corrupt
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Fout bij het laden van wallet.dat: Portemonnee vereist nieuwere versie van Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Fout bij laden van bestand wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation>Bitcoin-Qt</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts
new file mode 100644
index 0000000000..f73a7184b6
--- /dev/null
+++ b/src/qt/locale/bitcoin_pt_BR.ts
@@ -0,0 +1,1851 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="pt_BR">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Sobre 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; versão</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"></translation>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Catálogo de endereços</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>Estes são os seus endereços Bitcoin para receber pagamentos. Você pode querer enviar um endereço diferente para cada remetente, para acompanhar quem está pagando.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="33"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Clique duas vezes para editar o endereço ou o etiqueta</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="57"/>
+ <source>Create a new address</source>
+ <translation>Criar um novo endereço</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="60"/>
+ <source>&amp;New Address...</source>
+ <translation>&amp;Novo endereço ...</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="71"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copie o endereço selecionado para a área de transferência do sistema</translation>
+ </message>
+ <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>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Excluir o endereço selecionado da lista. Apenas endereços de envio podem ser excluídos.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Excluir</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Erro ao exportar</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>Could not write to file %1.</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <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="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Arquivo separado por vírgulas (*. csv)</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Endereço</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Rótulo</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(Sem rótulo)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Diálogo</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Digite a frase de segurança</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Nova frase de segurança</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Repita a nova frase de segurança</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>TextoDoRótulo</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>A criptografia da carteira falhou devido a um erro interno. Sua carteira não estava criptografada.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>A abertura da carteira falhou</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>A frase de segurança fornecida não confere.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Esta operação precisa de sua frase de segurança para desbloquear a carteira.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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>O Bitcoin irá fechar agora para finalizar o processo de encriptação. Lembre-se de que encriptar sua carteira não protege totalmente suas bitcoins de serem roubadas por malwares que tenham infectado o seu computador.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Descriptografar carteira</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Digite a frase de segurança antiga e nova para a carteira.</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>Digite a nova frase de seguraça da sua carteira. &lt;br/&gt; Por favor, use uma frase de &lt;b&gt;10 ou mais caracteres aleatórios,&lt;/b&gt; ou &lt;b&gt;oito ou mais palavras.&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>A descriptografia da carteira falhou</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>A frase de segurança digitada para a descriptografia da carteira estava incorreta.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Esta operação precisa de sua frase de segurança para descriptografar a carteira.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Alterar frase de segurança</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Confirmar criptografia da carteira</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>AVISO: Se você criptografar sua carteira e perder sua senha, você vai &lt;b&gt;perder todos os seus BITCOINS!&lt;/b&gt; Tem certeza de que deseja criptografar sua carteira?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Carteira criptografada</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>A frase de segurança da carteira foi alterada com êxito.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Criptografar carteira</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Desbloquear carteira</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>A criptografia da carteira falhou</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <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="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Receber moedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>E&amp;xit</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Catálogo de endereços</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>Sobre &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Exportar...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Sincronização da corrente de blocos em andamento</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Enviar moedas para um endereço bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Export the current view to a file</source>
+ <translation>Export para arquivo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Criptografar Carteira</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Criptografar ou decriptogravar carteira</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <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="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Carteira Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Visão geral</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Mostrar visão geral da carteira</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Mostrar a janela Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <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="222"/>
+ <source>Quit application</source>
+ <translation>Sair da aplicação</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <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"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Abrir &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Mostrar informações sobre o Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="204"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Enviar moedas</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <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>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n dia atrás</numerusform>
+ <numerusform>%n dias atrás</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Sincronizando com a rede...</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n segundo atrás</numerusform>
+ <numerusform>%n segundos atrás</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n minutos atrás</numerusform>
+ <numerusform>%n minutos atrás</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>E configurações</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Barra de ferramentas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Barra de ações</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transações</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Navegar pelo histórico de transações</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Carregados %1 blocos do histórico de transações.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;About %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Mostrar informação sobre Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opções...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Mudar frase de segurança</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Ajuda</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <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="615"/>
+ <source>Sent transaction</source>
+ <translation>Sent transaction</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Incoming transaction</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Data: %1
+Quantidade: %2
+Tipo: %3
+Endereço: %4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="506"/>
+ <source>Catching up...</source>
+ <translation>Recuperando o atraso ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Last received block was generated %1.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n hora atrás</numerusform>
+ <numerusform>%n horas atrás</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Atualizado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="588"/>
+ <source>Sending...</source>
+ <translation>Sending...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Unit to show amounts in: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Choose the default subdivision unit to show in the interface, and when sending coins</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Edit Address</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Label</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>The label associated with this address book entry</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Address</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>The address associated with this address book entry. This can only be modified for sending addresses.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>New receiving address</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>New sending address</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Edit receiving address</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Edit sending address</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>The entered address &quot;%1&quot; is already in the address book.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Could not unlock wallet.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>New key generation failed.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>The entered address &quot;%1&quot; is not a valid bitcoin address.</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;Start Bitcoin on window system startup</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Automatically start Bitcoin after the computer is turned on</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="175"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimize to the tray instead of the taskbar</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Show only a tray icon after minimizing the window</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Map port using &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>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimize on close</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>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.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Connect through SOCKS4 proxy:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through 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 address of the proxy (e.g. 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 of the proxy (e.g. 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>Taxa opcional de transações por kB que ajuda a garantir que suas transações serão processadas rapidamente. A maior parte das transações é de 1 kB. Taxa de 0.01 recomendada.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Pay transaction &amp;fee</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="79"/>
+ <source>Main</source>
+ <translation>Main</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Display</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="104"/>
+ <source>Options</source>
+ <translation>Options</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Your current balance</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>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Total number of transactions in wallet</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Form</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Carteira</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Recent transactions&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Unconfirmed:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Balance:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Number of transactions:</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Send to multiple recipients at once</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Remover todos os campos da transação</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>The amount to pay must be larger than 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>Confirm send coins</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Send Coins</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</source>
+ <translation>&amp;Add recipient...</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="144"/>
+ <source>Confirm the send action</source>
+ <translation>Confirm the send action</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Clear all</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Balance:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <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="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Are you sure you want to send %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation> and </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Form</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>Enter a label for this address to add it to your address book</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>A&amp;mount:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Label:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Choose address from address book</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>Paste address from clipboard</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>Remove this recipient</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Pay &amp;To:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>unknown</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/unconfirmed</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Open for %1 blocks</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/offline?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Status:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, broadcast through %1 node</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, broadcast through %1 nodes</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Date:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;From:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;To:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (yours, label: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (yours)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Credit:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 matures in %2 more blocks)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(not accepted)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Debit:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Transaction fee:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Net amount:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Open until %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 confirmations</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Message:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Comment:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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>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>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, has not been successfully broadcast yet</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Transaction details</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>This pane shows a detailed description of the transaction</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Address</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Amount</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Offline (%1 confirmations)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Unconfirmed (%1 of %2 confirmations)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Confirmed (%1 confirmations)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>This block was not received by any other nodes and will probably not be accepted!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Generated but not accepted</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Received with</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Sent to</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Payment to yourself</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Mined</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(n/a)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Transaction status. Hover over this field to show number of confirmations.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Date and time that the transaction was received.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Type of transaction.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Destination address of transaction.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Amount removed from or added to balance.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Date</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Open for %n block</numerusform>
+ <numerusform>Open for %n blocks</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Open until %1</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Recebido de</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>This week</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>This month</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Last month</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>This year</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Range...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Received with</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Date</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Address</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Amount</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>to</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Label</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>Could not write to file %1.</translation>
+ </message>
+ <message>
+ <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="56"/>
+ <source>Today</source>
+ <translation>Today</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Sent to</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>To yourself</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Mined</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Other</translation>
+ </message>
+ <message>
+ <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="90"/>
+ <source>Min amount</source>
+ <translation>Min amount</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Copy address</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>Copy label</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Edit label</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Confirmed</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Export Transaction Data</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Comma separated file (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Error exporting</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Range:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Show details...</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Sending...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Usage:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Loading wallet...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Invalid -proxy address</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>Loading addresses...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Error: CreateThread(StartNode) failed</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>Unable to bind to port %d on this computer. Bitcoin is probably already running.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Bitcoin version</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Done loading</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Invalid amount for -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>beta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Loading block index...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Rescanning...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Send command to -server or bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>List commands
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Get help for a command
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Options:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Specify configuration file (default: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Specify pid file (default: bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Generate coins
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Don&apos;t generate coins
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Start minimized
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Specify data directory
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Specify connection timeout (in milliseconds)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Connect through socks4 proxy
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Allow DNS lookups for addnode and connect
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Add a node to connect to
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Connect only to the specified node
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Don&apos;t accept connections from outside
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Fee per kB to add to transactions you send
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Run in the background as a daemon and accept commands
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>Procurar por conexões em &lt;port&gt; (padrão: 8333 ou testnet:18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation>Manter no máximo &lt;n&gt; conexões aos peers (padrão: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Limite para desconectar peers mal comportados (padrão: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation>Número de segundos para impedir que peers mal comportados reconectem (padrão: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Pré anexar a saída de debug com estampa de tempo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Mandar informação de trace/debug para o console em vez de para o arquivo debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Mandar informação de trace/debug para o debugger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Username for JSON-RPC connections
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>A Carteira precisou ser reescrita: reinicie o Bitcoin para completar</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Use OpenSSL (https) for JSON-RPC connections
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <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="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <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="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Server certificate file (default: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Server private key (default: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>This help message
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Error loading addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Error loading blkindex.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Error loading wallet.dat: Wallet corrupted
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Error loading wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts
new file mode 100644
index 0000000000..bded8e24b1
--- /dev/null
+++ b/src/qt/locale/bitcoin_ru.ts
@@ -0,0 +1,1870 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru">
+<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>Все права защищены © 2009-2012 Разработчики Bitcoin
+
+Это экспериментальная программа.
+
+Распространяется на правах лицензии MIT/X11, см. файл license.txt или http://www.opensource.org/licenses/mit-license.php.
+
+Этот продукт включате ПО, разработанное OpenSSL Project для использования в OpenSSL Toolkit (http://www.openssl.org/) и криптографическое ПО, написанное Eric Young (eay@cryptsoft.com) и ПО для работы с UPnP, написанное Thomas Bernard.</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;Kопировать</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <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="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Удалить</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>Невозможно записать в файл %1.</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Экспортировать адресную книгу</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Ошибка экспорта</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Текст, разделённый запятыми (*.csv)</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Метка</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>[нет метки]</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Адрес</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>Новый пароль</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialog</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Введите пароль</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>TextLabel</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Не удалось зашифровать бумажник</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Сменить пароль</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>Расшифрование бумажника не удалось</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Разблокировка бумажника не удалась</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</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="51"/>
+ <source>Decrypt 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="113"/>
+ <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="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</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="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Бумажник зашифрован</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>Пароль бумажника успешно изменён.</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</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="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="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</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="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation>ВАЖНО: все предыдущие резервные копии вашего кошелька должны быть заменены новым зашифрованным файлом. В целях безопасности предыдущие резервные копии нешифрованного кошелька станут бесполезны, как только вы начнёте использовать новый шифрованный кошелёк.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Введённые пароли не совпадают.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Внимание: Caps Lock включен.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>О&amp;бзор</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Показать общий обзор действий с бумажником</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Получение монет</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>В&amp;ыход</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Показать окно бумажника</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Экспорт...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Изменить список сохранённых адресов и меток к ним</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Синхронизация с сетью...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Идёт синхронизация цепочки блоков</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Транзакции</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Показать историю транзакций</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Адресная книга</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Показать список адресов для получения платежей</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="204"/>
+ <source>&amp;Send coins</source>
+ <translation>Отп&amp;равка монет</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;О %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Помощь</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Закрыть приложение</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>Оп&amp;ции...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>&amp;Показать бумажник</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Export the current view to a file</source>
+ <translation>Экспортировать в файл</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Зашифровать или расшифровать бумажник</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Зашифровать бумажник</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n минуту назад</numerusform>
+ <numerusform>%n минуты назад</numerusform>
+ <numerusform>%n минут назад</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Настройки</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n час назад</numerusform>
+ <numerusform>%n часа назад</numerusform>
+ <numerusform>%n часов назад</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Панель вкладок</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n день назад</numerusform>
+ <numerusform>%n дня назад</numerusform>
+ <numerusform>%n дней назад</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Синхронизируется...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Последний полученный блок был сгенерирован %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Bitcoin-бумажник</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Синхронизированно</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Отправить монеты на указанный адрес</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="615"/>
+ <source>Sent transaction</source>
+ <translation>Исходящая транзакция</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Входящая транзакция</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Дата: %1
+Количество: %2
+Тип: %3
+Адрес: %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Показать информацию о Bitcoin&apos;е</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>О &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Показать информацию о Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Изменить настройки</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;Изменить пароль</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation>Произошла неисправимая ошибка. Bitcoin не может безопасно продолжать работу и будет закрыт.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Изменить пароль шифрования бумажника</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Панель действий</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[тестовая сеть]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation>
+ <numerusform>%n активное соединение с сетью</numerusform>
+ <numerusform>%n активных соединений с сетью</numerusform>
+ <numerusform>%n активных соединений с сетью</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Загружено %1 блоков истории транзакций.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n секунду назад</numerusform>
+ <numerusform>%n секунды назад</numerusform>
+ <numerusform>%n секунд назад</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>Загружено %1 из %2 блоков истории транзакций.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="588"/>
+ <source>Sending...</source>
+ <translation>Отправка...</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Измерять монеты в: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <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="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Показывать адреса в списке транзакций</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished">Показывать ли адреса Bitcoin в списке транзакций</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="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>Введённый адрес «%1» уже находится в адресной книге.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</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="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>Введённый адрес «%1» не является правильным Bitcoin-адресом.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</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;Cворачивать в системный лоток вместо панели задач</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>Пробросить порт через &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>Автоматически открыть порт для Bitcoin-клиента на роутере. Работает ТОЛЬКО если Ваш роутер поддерживает UPnP и данная функция включена.</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 Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Подключаться к сети Bitcoin через SOCKS4 прокси (например, при использовании Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>&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-адрес прокси (например 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>Опциональная комиссия за каждый КБ транзакции, которая позволяет быть уверенным, что Ваша транзакция будет обработана быстро. Большинство транзакций занимают 1КБ. Рекомендуется комиссия 0.01.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Добавлять ко&amp;миссию</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="104"/>
+ <source>Options</source>
+ <translation>Опции</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="84"/>
+ <source>Display</source>
+ <translation>Отображение</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Бумажник</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Последние транзакции&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Форма</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Не подтверждено:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Баланс:</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="../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="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Общее количество транзакций в Вашем бумажнике</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</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="106"/>
+ <source>Balance:</source>
+ <translation>Баланс:</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>Подтвердить отправку</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>S&amp;end</source>
+ <translation>&amp;Отправить</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <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="96"/>
+ <source>Confirm 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="87"/>
+ <source>Clear all</source>
+ <translation>Очистить всё</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Удалить все поля транзакции</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Вы уверены, что хотите отправить %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>Адрес получателя неверный, пожалуйста, перепроверьте.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Количество монет для отправки должно быть больше 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>Количество отправляемых монет превышает Ваш баланс</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>Сумма превысит Ваш баланс, если комиссия в размере %1 будет добавлена к транзакции</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Обнаружен дублирующийся адрес. Отправка на один и тот же адрес возможна только один раз за одну операцию отправки</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Ошибка: не удалось создать транзакцию.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation> и </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>Адрес получателя платежа (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63)</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>Введите Bitcoin-адрес (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 подтверждений</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/оффлайн?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Открыто до получения %1 блоков</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Статус:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, разослано через %1 узел</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, разослано через %1 узлов</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Дата:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <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="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Отправитель:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>неизвестно</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Получатель:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (Ваш, метка: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (ваш)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Кредит:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 станет доступно через %2 блоков)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Открыто до %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/не подтверждено</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, ещё не было успешно разослано</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(не принято)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Дебет:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <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="226"/>
+ <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="234"/>
+ <source>Comment:</source>
+ <translation>Комментарий:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>Сообщение:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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 блоков прежде, чем они смогут быть отправлены. Когда Вы сгенерировали этот блок он был отправлен в сеть, чтобы он был добавлен к цепочке блоков. Если данная процедура не удастся, статус изменится на «не подтверждено» и монеты будут непередаваемыми. Такое может случайно происходить в случае, если другой узел сгенерирует блок на несколько секунд раньше.</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="214"/>
+ <source>Date</source>
+ <translation>Дата</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Адрес</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Количество</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Открыто для %n блока</numerusform>
+ <numerusform>Открыто для %n блоков</numerusform>
+ <numerusform>Открыто для %n блоков</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Открыто до %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Оффлайн (%1 подтверждений)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Не подтверждено (%1 из %2 подтверждений)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Подтверждено (%1 подтверждений)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <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="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Сгенерированно, но не подтверждено</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Получено</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Получено от</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Отправлено</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Отправлено себе</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Добыто</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>[не доступно]</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Статус транзакции. Подведите курсор к нужному полю для того, чтобы увидеть количество подтверждений.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Дата и время, когда транзакция была получена.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Тип транзакции.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Адрес назначения транзакции.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Сумма, добавленная, или снятая с баланса.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation>
+ <numerusform>Добытыми монетами можно будет воспользоваться через %n блок</numerusform>
+ <numerusform>Добытыми монетами можно будет воспользоваться через %n блока</numerusform>
+ <numerusform>Добытыми монетами можно будет воспользоваться через %n блоков</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>Ошибка экспорта</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>до</translation>
+ </message>
+ <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="126"/>
+ <source>Copy label</source>
+ <translation>Копировать метку</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Изменить метку</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</source>
+ <translation>Копировать адрес</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Показать детали...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Адрес</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Количество</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>Невозможно записать в файл %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Промежуток от:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</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="61"/>
+ <source>Range...</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="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Экспортировать данные транзакций</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Текст, разделённый запятыми (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>В этом месяце</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Подтверждено</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Дата</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Сегодня</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</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>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Отправка....</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Версия</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <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="67"/>
+ <source>Loading addresses...</source>
+ <translation>Загрузка адресов...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Сканирование...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Использование:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Загрузка индекса блоков...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <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="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Ошибка: Созданиние потока (запуск узла) не удался</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <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="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Ошибка в сумме комиссии</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Загрузка бумажника...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Загрузка завершена</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>бета</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>Необходимо перезаписать бумажник, перезапустите Bitcoin для завершения операции</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>ВНИМАНИЕ: На диске заканчивается свободное пространство</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Ошибка в адресе прокси</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Отправить команду на сервер ( -server ) или демону
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Список команд
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Получить помощь по команде</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Опции:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Указать конфигурационный файл вместо используемого по умолчанию (bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Указать pid-файл вместо используемого по умолчанию (bitcoin.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Включить добычу монет
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Выключить добычу монет
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Запускать минимизированным
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Указать рабочую директорию
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Указать таймаут соединения (в миллисекундах)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Разрешить поиск в DNS для комманд &quot;addnode&quot; и &quot;connect&quot;
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation>Не получать начальный список узлов через DNS</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Порог для отключения неправильно ведущих себя узлов (по умолчанию: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation>Число секунд блокирования неправильно ведущих себя узлов (по умолчанию: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <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="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>Не пытаться использовать UPnP для назначения входящего порта</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Пытаться использовать UPnP для назначения входящего порта</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Комиссия на Кб, добавляемая к вашим переводам</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Принимать командную строку и команды JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>Выводить больше отладочной информации</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Дописывать отметки времени к отладочному выводу</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Выводить информацию трассировки/отладки на консоль вместо файла debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Отправлять информацию трассировки/отладки в отладчик</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Добавить узел для соединения
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Подключаться через socks4 прокси</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>Принимать входящие подключения на &lt;port&gt; (по умолчанию: 8333 или 18333 в тестовой сети)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <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="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Соединяться только с указанным узлом
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished">Don&apos;t Найти участников через IRC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Не принимать внешние соединения
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Запустить в бекграунде (как демон) и принимать команды
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Использовать тестовую сеть
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Имя пользователя для JSON-RPC соединений
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Пароль для JSON-RPC соединений
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Слушать &lt;порт&gt; для JSON-RPC соединений (по умолчанию: 8332)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>Разрешить JSON-RPC соединения с указанного адреса
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <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="52"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)
+</source>
+ <translation>Установить размер key pool&apos;а в &lt;n&gt; (по умолчанию: 100)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Просканировать цепочку блоков в поисках пропущенных транзакций для бумажника
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>Опции SSL: (см. Bitcoin Wiki для инструкций)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Использовать OpenSSL (https) для JSON-RPC соединений
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Сертификат (публичный ключ) сервера (по умолчанию: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Закрытый ключ сервера (по умолчанию: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</source>
+ <translation>Допустимые Cipher&apos;ы для сервера (по умолчанию: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>This help message
+</source>
+ <translation>Данная справка
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Ошибка при загрузке addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Ошибка при загрузке blkindex.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Ошибка загрузки wallet.dat: Бумажник повреждён</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Ошибка загрузки wallet.dat: Для данного бумажника требуется более новая версия Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Ошибка при загрузке wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation>Bitcoin-Qt</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts
new file mode 100644
index 0000000000..ce5abe032b
--- /dev/null
+++ b/src/qt/locale/bitcoin_uk.ts
@@ -0,0 +1,1871 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
+<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&apos;a&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 Розробники Bitcoin
+
+Це програмне забезпечення є експериментальним.
+
+Поширюється за ліцензією MIT/X11, додаткова інформація міститься у файлі license.txt, а також за адресою http://www.opensource.org/licenses/mit-license.php.
+
+Цей продукт включає в себе програмне забезпечення, розроблене в рамках проекту 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>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="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Видалити</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>Експортувати адресну книгу</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Файли відділені комами (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>Помилка при експортуванні</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>Неможливо записати у файл %1.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Назва</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(немає назви)</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</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="61"/>
+ <source>New passphrase</source>
+ <translation>Новий пароль</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Дешифрувати гаманець</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Введені паролі не співпадають.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>Не вдалося розблокувати гаманець</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>Повторіть пароль</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</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="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</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="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; як мінімум 8 слів&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="43"/>
+ <source>Unlock 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="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Підтвердити шифрування гаманця</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>Не вдалося зашифрувати гаманець</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Виникла помилка під час шифрування гаманця. Ваш гаманець не було зашифровано.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Введений пароль є невірним.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</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="169"/>
+ <source>Wallet encrypted</source>
+ <translation>Гаманець зашифровано</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>Пароль було успішно змінено.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Увага: Ввімкнено Caps Lock</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>Введіть пароль</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>&amp;Вихід</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Зашифрувати чи розшифрувати гаманець</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Показати інформацію про Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Змінити пароль, який використовується для шифрування гаманця</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>&amp;Про Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>Синхронізація з мережею...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Гаманець</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>Відбувається синхронізація ланцюжка блоків...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>Показати загальний огляд гаманця</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>Пе&amp;реклади</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>Переглянути історію переказів</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Адресна книга</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Редагувати список збережених адрес та міток</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>О&amp;тримати</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="204"/>
+ <source>&amp;Send coins</source>
+ <translation>В&amp;ідправити</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Відправити монети на вказану адресу</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>Вийти</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>П&amp;ро %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Параметри...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Редагувати параметри</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>Показати &amp;гаманець</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>Показати інформацію про Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Огляд</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Налаштування</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Показати список адрес для отримання платежів</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>Панель вкладок</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Експорт...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[тестова мережа]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>Змінити парол&amp;ь</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation>
+ <numerusform>%n активне з’єднання з мережею</numerusform>
+ <numerusform>%n активні з’єднання з мережею</numerusform>
+ <numerusform>%n активних з’єднань з мережею</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Довідка</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Завантажено %1 блоків історії транзакцій.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>Панель дій</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n секунду тому</numerusform>
+ <numerusform>%n секунди тому</numerusform>
+ <numerusform>%n секунд тому</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>Показати вікно гаманця</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Export the current view to a file</source>
+ <translation>Експортувати в файл</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;Шифрування гаманця</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>Завантажено %1 з %2 блоків історії переказів.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <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="491"/>
+ <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="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n день тому</numerusform>
+ <numerusform>%n дня тому</numerusform>
+ <numerusform>%n днів тому</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>Синхронізовано</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>Синхронізується...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Останній отриманий блок було згенеровано %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="615"/>
+ <source>Sent transaction</source>
+ <translation>Надіслані перекази</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>Отримані перекази</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Дата: %1
+Кількість: %2
+Тип: %3
+Адреса: %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="588"/>
+ <source>Sending...</source>
+ <translation>Відправлення...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>В&amp;имірювати монети в: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <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="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Відображати адресу в списку переказів</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"></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="../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="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Введена адреса «%1» вже присутня в адресній книзі.</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>
+ <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="31"/>
+ <source>Edit sending address</source>
+ <translation>Редагувати адресу для відправлення</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>Введена адреса «%1» не є коректною адресою в мережі Bitcoin.</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>Відображення порту через &amp;UPnP</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="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 і ця функція увімкнена.</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 Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Підключатись до мережі Bitcoin через SOCKS4-проксі (наприклад при використанні Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="196"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>&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-адреса проксі-сервера (наприклад 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>Добровільна комісія за кожен Кб переказу, яка дозволяє бути впевненим у тому, що ваш переказ буде оброблено швидко. Розмір більшості переказів рівен 1 Кб. Рекомендована комісія: 0,01.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Заплатити комісі&amp;ю</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="../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="../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="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="88"/>
+ <source>Wallet</source>
+ <translation>Гаманець</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Недавні перекази&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</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>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <source>Send Coins</source>
+ <translation>Відправити</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </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 BTC</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>S&amp;end</source>
+ <translation>&amp;Відправити</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <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="96"/>
+ <source>Confirm send coins</source>
+ <translation>Підтвердіть відправлення</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Ви впевнені що хочете відправити %1</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>Адреса отримувача невірна, будьласка перепровірте.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Кількість монет для відправлення повинна бути більшою 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>Кількість монет для відправлення перевищує ваш баланс.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>Сума перевищить ваш баланс, якщо комісія %1 буде додана до вашого переказу.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>Знайдено адресу що дублюється. Відправлення на кожну адресу дозволяється лише один раз на кожну операцію переказу.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>Помилка: не вдалося створити переказ.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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="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="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Адреса для отримувача платежу (наприклад, 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Введіть адресу Bitcoin (наприклад 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>Відкрити для %1 блоків</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/поза інтернетом?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 підтверджень</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Статус:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, розіслано через %1 вузол</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, розіслано через %1 вузлів</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Дата:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <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="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Відправник:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>невідомий</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Одержувач:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (ваша)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 «дозріє» через %2 блоків)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Дебет:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="226"/>
+ <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="232"/>
+ <source>Message:</source>
+ <translation>Повідомлення:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>Коментар:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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 блоків, перш ніж їх можна буде використати. Коли ви згенерували цей блок, його було відправлено в мережу для того, щоб він був доданий до ланцюжка блоків. Якщо ця процедура не вдасться, статус буде змінено на «не підтверджено» і ви не зможете потратити згенеровані монету. Таке може статись, якщо хтось інший згенерував блок на декілька секунд раніше.</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, ще не було успішно розіслано</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>Відкрити до %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/не підтверджено</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (Ваша, мітка: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Кредит:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(не прийнято)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Комісія за переказ:&lt;/b&gt;</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="214"/>
+ <source>Date</source>
+ <translation>Дата</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>Адреса</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Кількість</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>Відкрити для %n блоку</numerusform>
+ <numerusform>Відкрити для %n блоків</numerusform>
+ <numerusform>Відкрити для %n блоків</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>Відкрити до %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Поза інтернетом (%1 підтверджень)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Непідтверджено (%1 із %2 підтверджень)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Підтверджено (%1 підтверджень)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <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="306"/>
+ <source>Generated but not accepted</source>
+ <translation>Згенеровано, але не підтверджено</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>Отримано</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>Отримано від</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>Відправлено</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>Відправлено собі</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>Добуто</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(недоступно)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Статус переказу. Наведіть вказівник на це поле, щоб показати кількість підтверджень.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Дата і час, коли переказ було отримано.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>Тип переказу.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>Адреса отримувача</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Сума, додана чи знята з балансу.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation>
+ <numerusform>Добутими монетами можна буде скористатись через %n блок</numerusform>
+ <numerusform>Добутими монетами можна буде скористатись через %n блоки</numerusform>
+ <numerusform>Добутими монетами можна буде скористатись через %n блоків</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <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="126"/>
+ <source>Copy label</source>
+ <translation>Скопіювати мітку</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Файли, розділені комою (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>Дата</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>до</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>Ідентифікатор</translation>
+ </message>
+ <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="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="291"/>
+ <source>Error exporting</source>
+ <translation>Помилка експорту</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>Неможливо записати у файл %1</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>Діапазон від:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show details...</source>
+ <translation>Показати деталі...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>Адреса</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Добуті</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>Кількість</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</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="125"/>
+ <source>Copy address</source>
+ <translation>Скопіювати адресу</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Редагувати мітку</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>Експортувати дані переказів</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Сьогодні</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Минулого місяця</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Проміжок</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>Мітка</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Відправлені собі</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Інше</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>Підтверджені</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>Відправка...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>Вкористання:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <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="67"/>
+ <source>Loading addresses...</source>
+ <translation>Завантаження адрес...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>Завантаження завершене</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>Версія</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>Завантаження гаманця...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Помилка у величині комісії</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Помилка: CreateThread(StartNode) дала збій</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <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="89"/>
+ <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>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>Помилка в адресі проксі-сервера</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <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="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>Увага: На диску мало вільного місця</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>Сканування...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>Завантаження індексу блоків...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>бета</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>Відправити команду серверу -server чи демону
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>Список команд
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>Отримати довідку по команді
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>Параметри:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>Вкажіть файл конфігурації (за промовчуванням: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>Вкажіть pid-файл (за промовчуванням: bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>Генерувати монети
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>Не генерувати монети
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>Запускати згорнутим
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>Вкажіть робочий каталог
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>Вкажіть таймаут з’єднання (в мілісекундах)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>Підключитись через SOCKS4-проксі
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>Дозволити пошук в DNS для команд «addnode» і «connect»</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>Чекати на з&apos;єднання на порту (по замовченню 8333 або тестова мережа 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)
+</source>
+ <translation>Підтримувати не більше &lt;n&gt; зв&apos;язків з колегами (за замовчуванням: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>Додати вузол для підключення</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>Підключитись лише до вказаного вузла</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>Не приймати підключення ззовні
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation>Не завантажувати список пірів за допомогою DNS</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>Поріг відключення неправильно підєднаних пірів (за замовчуванням: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation>Максимальній розмір вхідного буферу на одне з&apos;єднання (за замовчуванням 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)
+</source>
+ <translation>Максимальній розмір виіхідного буферу на одне з&apos;єднання (за замовчуванням 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>Не намагатись використовувати UPnP для відображення порту що прослуховується на роутері</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>Намагатись використовувати UPnP для відображення порту що прослуховується на роутері</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>Комісія за Кб</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>Приймати команди із командного рядка та команди JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>Виводити більше налагоджувальної інформації</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>Доповнювати налагоджувальний вивід відміткою часу</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>Відсилаті налагоджувальну інформацію на консоль, а не у файл debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>Відсилаті налагоджувальну інформацію до налагоджувача</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>Потрібно перезаписати гаманець: перезапустіть Біткоін-клієнт для завершення</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>Запустити в фоновому режимі (як демон) та приймати команди
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>Використовувати тестову мережу
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>Ім’я користувача для JSON-RPC-з’єднань
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>Пароль для JSON-RPC-з’єднань
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>Прослуховувати &lt;port&gt; для JSON-RPC-з’єднань (за промовчуванням: 8332)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>Дозволити JSON-RPC-з’єднання з вказаної IP-адреси
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <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="52"/>
+ <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="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>Пересканувати ланцюжок блоків, в пошуку втрачених переказів
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>
+Параметри SSL: (див. Bitcoin Wiki)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>Використовувати OpenSSL (https) для JSON-RPC-з’єднань
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>Сертифікату сервера (за промовчуванням: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>Закритий ключ сервера (за промовчуванням: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <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="63"/>
+ <source>This help message
+</source>
+ <translation>Дана довідка
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>Помилка при завантаженні addr.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>Помилка при завантаженні blkindex.dat
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>Помилка при завантаженні wallet.dat: Гаманець пошкоджено
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>Помилка при завантаженні wallet.dat: Гаманець потребує новішої версії Bitcoin&apos;а
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>Помилка при завантаженні wallet.dat
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts
new file mode 100644
index 0000000000..9ae24ac8ed
--- /dev/null
+++ b/src/qt/locale/bitcoin_zh_CN.ts
@@ -0,0 +1,1860 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_CN">
+<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
+
+这是一个实验性软件。
+
+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.</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="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>导出地址簿数据</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <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="88"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;删除</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>逗号分隔文件 (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>无法写入文件 %1。</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>导出错误</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>标签</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(没有标签)</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>地址</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>新口令</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>输入口令</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>文本标签</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>重复新口令</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>解锁钱包</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</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="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;/&gt;,或者是&lt;b&gt;8个以上的单词&lt;/b&gt;。</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</source>
+ <translation>钱包解密失败。</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="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>确认加密钱包</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>钱包已加密</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation>重要提示:您以前备份的钱包文件应该替换成最新生成的加密钱包文件(重新备份)。从安全性上考虑,您以前备份的未加密的钱包文件,在您使用新的加密钱包后将无效,请重新备份。</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>钱包加密失败</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>由于一个本地错误,加密钱包操作已经失败。您的钱包没有被加密。</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>口令不匹配。</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>钱包解锁失败</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>用于解密钱包的口令不正确。</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>修改口令</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</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="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="113"/>
+ <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="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>钱包口令修改成功</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>警告:大写锁定键CapsLock开启</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>修改存储的地址和标签列表</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;收款地址</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>正在与网络同步...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>正在同步区域锁链</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;概况</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>显示钱包概况</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;交易记录</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>查看交易历史</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;地址簿</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>显示接收支付的地址列表</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="204"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;发送货币</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>退出</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>退出程序</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;关于 %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>显示比特币的相关信息</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>流入交易</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>&amp;文件</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>&amp;帮助</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>分页工具栏</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>加密或解密钱包</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>动作工具栏</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;设置</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>将货币发送到一个比特币地址</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>%1 个交易历史数据区块已下载</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>显示Qt相关信息</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>比特币钱包</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>关于 &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;选项...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>修改比特币配置选项</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>打开 &amp;比特币</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>显示比特币窗口</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Export the current view to a file</source>
+ <translation>导出当前视图到指定文件</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>修改钱包加密口令</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n 秒前</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n 分种前</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n 小时前</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n 天前</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>&amp;加密钱包</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>最新状态</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>更新中...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>最新收到的区块产生于 %1。</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>日期: %1
+金额: %2
+类别: %3
+地址: %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="236"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;导出...</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation>
+ <numerusform>您连接到比特币网络的连接数量共有%n条</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="588"/>
+ <source>Sending...</source>
+ <translation>发送中</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="615"/>
+ <source>Sent transaction</source>
+ <translation>已发送交易</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>&amp;修改口令</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>%1 / %2 个交易历史的区块已下载</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation>发生严重错误。</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;金额显示单位:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <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="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;在交易列表中显示地址</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the 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="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;地址</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="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>
+ <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="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="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>输入的地址 &quot;%1&quot; 并不是一个有效的比特币地址</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <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>使用 &amp;UPnP 映射端口</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>关闭时最小化</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 选项时此功能才有效。</translation>
+ </message>
+ <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="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 Bitcoin 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>代理 &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 (如 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>建议支付交易费用,有助于您的交易得到尽快处理. 绝大多数交易的字节数为 1 kB. 建议支付0.01个比特币.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>支付交易 &amp;费用</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="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>您的当前余额</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</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="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>钱包</translation>
+ </message>
+ <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="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="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;最近交易记录&lt;/b&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <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="84"/>
+ <source>Remove all transaction fields</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 BTC</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>S&amp;end</source>
+ <translation>&amp;发送</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>确认发送货币</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>计入 %1 交易费后的金额超出您的账上余额。</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </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="87"/>
+ <source>Clear all</source>
+ <translation>清除全部</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <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="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>确定您要发送 %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>支付金额必须大于0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>金额超出您的账上余额。</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>发现重复的地址, 每次只能对同一地址发送一次.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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>错误: 交易被拒绝. 如果您使用的是备份钱包,可能存在两个钱包不同步的情况,另一个钱包中的比特币已经被使用,但本地的这个钱包尚没有记录。</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>接收者地址不合法,请检查。</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>错误: 创建交易失败.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;标签:</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="14"/>
+ <source>Form</source>
+ <translation>表单</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>金额</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="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="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="226"/>
+ <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="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;日期:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>未知</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation>(您的, 标签:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;到:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>开启 %1 个数据块</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/离线?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;状态:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>,同过 %1 节点广播</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>,同过 %1 节点组广播</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <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="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;从:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation>(您的)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;到帐:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 成熟于 %2 以上数据块)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, 未被成功广播</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>至 %1 个数据块时开启</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/未确认</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>%1 确认项</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(未接受)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>支出</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>交易费</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="232"/>
+ <source>Message:</source>
+ <translation>消息:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>备注</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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="214"/>
+ <source>Date</source>
+ <translation>日期</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>类型</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>地址</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>数量</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>开启 %n 个数据块</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>至 %1 个数据块时开启</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>离线 (%1 个确认项)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>未确认 (%1 / %2 条确认信息)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>已确认 (%1 条确认信息)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <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="306"/>
+ <source>Generated but not accepted</source>
+ <translation>已生成但未被接受</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>接收于</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>收款来自</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>发送到</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>付款给自己</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>挖矿所得</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(n/a)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>交易状态。 鼠标移到此区域上可显示确认消息项的数目。</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>接收比特币的时间</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>交易类别。</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>交易目的地址。</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>从余额添加或移除的金额。</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation>
+ <numerusform>挖矿所得将在 %n 个数据块之后可用</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <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="72"/>
+ <source>Received with</source>
+ <translation>接收于</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>到自己</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>其他</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>最小金额</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy label</source>
+ <translation>复制标签</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>到</translation>
+ </message>
+ <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="61"/>
+ <source>Range...</source>
+ <translation>范围...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="272"/>
+ <source>Export Transaction Data</source>
+ <translation>导出交易数据</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>逗号分隔文件(*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>已确认</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>日期</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>类别</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>标签</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>地址</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>金额</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>导出错误</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>无法写入文件 %1。</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>范围:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</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="125"/>
+ <source>Copy address</source>
+ <translation>复制地址</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</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>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>发送中...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>比特币版本</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation type="unfinished">Threshold for disconnecting misbehaving peers (缺省: 100)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation type="unfinished">Number of seconds to keep misbehaving peers from reconnecting (缺省: 86400)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <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="64"/>
+ <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="77"/>
+ <source>Rescanning...</source>
+ <translation>正在重新扫描...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>加载区块索引...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>正在加载钱包...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>代理地址不合法</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>错误:线程创建(StartNode)失败</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <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="89"/>
+ <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="9"/>
+ <source>Usage:</source>
+ <translation>使用:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>Loading addresses...</source>
+ <translation>正在加载地址...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>加载完成</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>不合适的交易费 -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <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="92"/>
+ <source>beta</source>
+ <translation>测试</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>警告:磁盘空间不足</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>发送命令到服务器或者 bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>列出命令
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>获得某条命令的帮助
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>选项:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>指定配置文件 (默认为 bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>指定 pid 文件 (默认为 bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>生成货币
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>不要生成货币
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>启动时最小化
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>指定数据目录</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>指定连接超时时间 (微秒)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>通过 socks4 代理连接</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>连接节点时允许DNS查找
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>监听端口连接 &lt;port&gt; (缺省: 8333 or testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <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="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>连接到指定节点</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>只连接到指定节点</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation>Don&apos;t 通过IRC聊天室查找网络上的比特币节点</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>禁止接收外部连接</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation>不要用DNS启动</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>禁止使用 UPnP 映射监听端口
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>输出调试信息</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>为调试输出信息添加时间戳</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>跟踪/调试信息输出到控制台,不输出到debug.log文件</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>跟踪/调试信息输出到 调试器debugger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>尝试使用 UPnP 映射监听端口
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>每发送1kB交易所需的费用</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>接受命令行和 JSON-RPC 命令
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>在后台运行并接受命令
+
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>使用测试网络
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>JSON-RPC连接用户名
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>JSON-RPC连接密码
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <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="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>允许从指定IP接受到的JSON-RPC连接
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)
+</source>
+ <translation>向IP地址为 &lt;ip&gt; 的节点发送指令 (缺省: 127.0.0.1)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <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="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>重新扫描数据链以查找遗漏的交易
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>
+SSL 选项: (SSL 安装教程具体见比特币维基百科)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>为 JSON-RPC 连接使用 OpenSSL (https)连接</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>服务器证书 (默认为 server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>服务器私钥 (默认为 server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <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="63"/>
+ <source>This help message
+</source>
+ <translation>该帮助信息
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>加载 addr.dat 错误
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>加载 blkindex.dat 失败
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>加载 wallet.dat 失败:钱包崩溃
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>加载 wallet.dat 失败:运行钱包需要一个更新版本的比特币软件
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>钱包文件需要重写:请退出并重新启动Bitcoin客户端</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>加载 wallet.dat 失败
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation>比特币-Qt</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts
new file mode 100644
index 0000000000..f3aeae5e60
--- /dev/null
+++ b/src/qt/locale/bitcoin_zh_TW.ts
@@ -0,0 +1,1851 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
+<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>版權為 Bitcoin 開發人員自西元 2009 至 2012 年起所有
+
+這是個實驗性的軟體.
+
+此軟體依據 MIX/X11 軟體授權條款散布, 詳情請見附帶的 license.txt 檔案, 或是以下網站: http://www.opensource.org/licenses/mit-license.php.
+
+此產品也包含了由 OpenSSL Project 所開發的 OpenSSL Toolkit (http://www.openssl.org/) 軟體, 由 Eric Young (eay@cryptsoft.com) 撰寫的加解密軟體, 以及由 Thomas Bernard 所撰寫的 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>新位址...</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>複製到剪貼簿</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="85"/>
+ <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="88"/>
+ <source>&amp;Delete</source>
+ <translation>刪除</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="209"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>逗號區隔資料檔 (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Error exporting</source>
+ <translation>資料匯出有誤</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="222"/>
+ <source>Could not write to file %1.</source>
+ <translation>無法寫入檔案 %1.</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="208"/>
+ <source>Export Address Book Data</source>
+ <translation>匯出位址簿資料</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>位址</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>標記</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="114"/>
+ <source>(no label)</source>
+ <translation>(沒有標記)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
+ <source>New passphrase</source>
+ <translation>新的密碼</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="94"/>
+ <source>TextLabel</source>
+ <translation>文字標籤</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
+ <source>Enter passphrase</source>
+ <translation>輸入密碼</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock 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="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>這個動作需要用你的錢包密碼來解鎖</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
+ <source>Repeat new passphrase</source>
+ <translation>重複新密碼</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</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;8個以上的單字&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="127"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>錢包加密因程式內部有誤而失敗. 你的錢包還是沒有加密.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="113"/>
+ <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="51"/>
+ <source>Decrypt wallet</source>
+ <translation>錢包解密</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="169"/>
+ <source>Wallet encrypted</source>
+ <translation>錢包已加密</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="156"/>
+ <source>Wallet decryption failed</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="170"/>
+ <source>Wallet passphrase was successfully changed.</source>
+ <translation>錢包密碼變更成功.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>變更密碼</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source>
+ <translation>重要: 請改用新產生有加密的錢包檔, 來取代之前錢包檔的備份. 為了安全性的理由, 當你開始使用新的有加密的錢包時, 舊錢包的備份就不能再使用了.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="126"/>
+ <location filename="../askpassphrasedialog.cpp" line="133"/>
+ <location filename="../askpassphrasedialog.cpp" line="175"/>
+ <location filename="../askpassphrasedialog.cpp" line="181"/>
+ <source>Wallet encryption failed</source>
+ <translation>錢包加密失敗</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="134"/>
+ <location filename="../askpassphrasedialog.cpp" line="182"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>提供的密碼不符.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="145"/>
+ <source>Wallet unlock failed</source>
+ <translation>錢包解鎖失敗</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
+ <location filename="../askpassphrasedialog.cpp" line="157"/>
+ <location filename="../askpassphrasedialog.cpp" line="176"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>用來解密錢包的密碼輸入錯誤.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="217"/>
+ <location filename="../askpassphrasedialog.cpp" line="241"/>
+ <source>Warning: The Caps Lock key is on.</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="35"/>
+ <source>Encrypt wallet</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>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="139"/>
+ <location filename="../bitcoingui.cpp" line="445"/>
+ <source>Synchronizing with network...</source>
+ <translation>網路同步中...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="180"/>
+ <source>&amp;Overview</source>
+ <translation>總覽</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="187"/>
+ <source>Browse transaction history</source>
+ <translation>瀏覽交易紀錄</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="221"/>
+ <source>E&amp;xit</source>
+ <translation>結束</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="229"/>
+ <source>Show information about Qt</source>
+ <translation>顯示有關於 Qt 的資訊</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="234"/>
+ <source>Open &amp;Bitcoin</source>
+ <translation>開啟位元幣</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="235"/>
+ <source>Show the Bitcoin window</source>
+ <translation>顯示位元幣主視窗</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="241"/>
+ <source>&amp;Change Passphrase</source>
+ <translation>變更密碼</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="588"/>
+ <source>Sending...</source>
+ <translation>付出中...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="142"/>
+ <source>Block chain synchronization in progress</source>
+ <translation>正在進行區塊鎖鏈的同步中</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="70"/>
+ <source>Bitcoin Wallet</source>
+ <translation>位元幣錢包</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="181"/>
+ <source>Show general overview of wallet</source>
+ <translation>顯示錢包一般總覽</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="186"/>
+ <source>&amp;Transactions</source>
+ <translation>交易</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="192"/>
+ <source>&amp;Address Book</source>
+ <translation>位址簿</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="193"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>編輯儲存位址與標記的列表</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="198"/>
+ <source>&amp;Receive coins</source>
+ <translation>收錢</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="199"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>顯示收款位址的列表</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="205"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>付錢至某個位元幣位址</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="231"/>
+ <source>&amp;Options...</source>
+ <translation>選項...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="226"/>
+ <source>Show information about Bitcoin</source>
+ <translation>顯示位元幣相關資訊</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="228"/>
+ <source>About &amp;Qt</source>
+ <translation>關於 &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;Export...</source>
+ <translation>匯出...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>將錢包加解密</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>變更錢包加密用的密碼</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="222"/>
+ <source>Quit application</source>
+ <translation>結束應用程式</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Export the current view to a file</source>
+ <translation>將目前版面匯出至檔案</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="264"/>
+ <source>&amp;File</source>
+ <translation>檔案</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="301"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>Tabs toolbar</source>
+ <translation>分頁工具列</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="288"/>
+ <source>Actions toolbar</source>
+ <translation>動作工具列</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="430"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation>
+ <numerusform>與位元幣網路有 %n 個連線在使用中</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="468"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>已下載了 %1 個交易紀錄的區塊.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="204"/>
+ <source>&amp;Send coins</source>
+ <translation>付錢</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n second(s) ago</source>
+ <translation>
+ <numerusform>%n 秒鐘前</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="487"/>
+ <source>%n minute(s) ago</source>
+ <translation>
+ <numerusform>%n 分鐘前</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="491"/>
+ <source>%n hour(s) ago</source>
+ <translation>
+ <numerusform>%n 小時前</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="495"/>
+ <source>%n day(s) ago</source>
+ <translation>
+ <numerusform>%n 天前</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="501"/>
+ <source>Up to date</source>
+ <translation>最新狀態</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="506"/>
+ <source>Catching up...</source>
+ <translation>進度追趕中...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="514"/>
+ <source>Last received block was generated %1.</source>
+ <translation>最近收到的區塊產生於 %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="225"/>
+ <source>&amp;About %1</source>
+ <translation>關於%1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="583"/>
+ <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="232"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>修改位元幣的設定選項</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="615"/>
+ <source>Sent transaction</source>
+ <translation>付款交易</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="616"/>
+ <source>Incoming transaction</source>
+ <translation>收款交易</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="617"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>日期: %1
+金額: %2
+類別: %3
+位址: %4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="238"/>
+ <source>&amp;Encrypt Wallet</source>
+ <translation>錢包加密</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="711"/>
+ <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="719"/>
+ <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="../bitcoin.cpp" line="133"/>
+ <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
+ <translation>發生了致命的錯誤. 位元幣程式無法再繼續安全執行, 只好結束.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="273"/>
+ <source>&amp;Help</source>
+ <translation>求助</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="267"/>
+ <source>&amp;Settings</source>
+ <translation>設定</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="388"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="456"/>
+ <source>Downloaded %1 of %2 blocks of transaction history.</source>
+ <translation>已下載了 %1/%2 個交易紀錄的區塊.</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="269"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>金額顯示單位: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <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="280"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;在交易列表中顯示位址</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="281"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished">是否要在交易列表中顯示位元幣位址</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>標記</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>位址</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="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>
+ <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>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="170"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>視窗系統啓動時同時開啓位元幣</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>最小化至通知區域而非工作列</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>用 &amp;UPnP 設定通訊埠對應</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>M&amp;inimize on close</source>
+ <translation>關閉時最小化</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 且開啟時才有作用.</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="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>透過 SOCKS4 代理伺服器連線:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="191"/>
+ <source>Connect to the Bitcoin 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>伺服器位址: </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>通訊埠: </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>付交易手續費</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="../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>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</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="88"/>
+ <source>Wallet</source>
+ <translation>錢包</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>餘額:</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>目前餘額</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="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;最近交易&lt;/b&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="117"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <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="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>移除所有交易欄位</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>S&amp;end</source>
+ <translation>付出</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="113"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source> and </source>
+ <translation>和</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="96"/>
+ <source>Confirm send coins</source>
+ <translation>確認付出金額</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="97"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>確定要付出 %1 嗎?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount exceeds your balance.</source>
+ <translation>金額超過了餘額</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="139"/>
+ <source>Duplicate address found, can only send to each address once per send operation.</source>
+ <translation>發現有重複的位址. 在一次付款動作中, 只能付給每個位址一次.</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add recipient...</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="87"/>
+ <source>Clear all</source>
+ <translation>全部清掉</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="93"/>
+ <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="118"/>
+ <source>The recipient address is not valid, please recheck.</source>
+ <translation>無效的收款位址, 請再檢查看看.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>付款金額必須大於 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>The total exceeds your balance when the %1 transaction fee is included.</source>
+ <translation>包含 %1 的交易手續費後, 總金額超過了你的餘額</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Error: Transaction creation failed.</source>
+ <translation>錯誤: 交易產生失敗.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <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="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>從剪貼簿貼上位址</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>付給:</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="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>付款的目標位址 (比如說 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <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>金額:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>標記:</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="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="34"/>
+ <source>Open for %1 blocks</source>
+ <translation>在 %1 個區塊內未定</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="42"/>
+ <source>%1/offline?</source>
+ <translation>%1/離線中?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="44"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/未確認</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="46"/>
+ <source>%1 confirmations</source>
+ <translation>經確認 %1 次</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;狀態:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="68"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, 尚未成功公告出去</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, 已公告至 %1 個節點</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="72"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, 已公告至 %1 個節點</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;日期:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="83"/>
+ <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="88"/>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;來自:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="106"/>
+ <location filename="../transactiondesc.cpp" line="129"/>
+ <location filename="../transactiondesc.cpp" line="188"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;目的:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="109"/>
+ <source> (yours, label: </source>
+ <translation> (你的, 標記為: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="111"/>
+ <source> (yours)</source>
+ <translation> (你的)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="146"/>
+ <location filename="../transactiondesc.cpp" line="160"/>
+ <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;入帳:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 將在 %2 個區塊產出後熟成)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="152"/>
+ <source>(not accepted)</source>
+ <translation>(不被接受)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="36"/>
+ <source>Open until %1</source>
+ <translation>在 %1 前未定</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="105"/>
+ <source>unknown</source>
+ <translation>未知</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="204"/>
+ <location filename="../transactiondesc.cpp" line="219"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;出帳:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <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="226"/>
+ <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="232"/>
+ <source>Message:</source>
+ <translation>訊息:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="234"/>
+ <source>Comment:</source>
+ <translation>附註:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="237"/>
+ <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="214"/>
+ <source>Date</source>
+ <translation>日期</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Type</source>
+ <translation>種類</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Address</source>
+ <translation>位址</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>金額</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="277"/>
+ <source>Open for %n block(s)</source>
+ <translation>
+ <numerusform>在 %n 個區塊內未定</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="280"/>
+ <source>Open until %1</source>
+ <translation>在 %1 前未定</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="283"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>離線中 (經確認 %1 次)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="286"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>未確認 (經確認 %1 次, 應確認 %2 次)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="289"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>已確認 (經確認 %1 次)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="303"/>
+ <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="306"/>
+ <source>Generated but not accepted</source>
+ <translation>產出但不被接受</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received with</source>
+ <translation>收受於</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="351"/>
+ <source>Received from</source>
+ <translation>收受自</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Sent to</source>
+ <translation>付出至</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Payment to yourself</source>
+ <translation>付給自己</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="358"/>
+ <source>Mined</source>
+ <translation>開採所得</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="396"/>
+ <source>(n/a)</source>
+ <translation>(不適用)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>交易狀態. 移動游標至欄位上方來顯示確認次數.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>收到交易的日期與時間.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Type of transaction.</source>
+ <translation>交易的種類.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Destination address of transaction.</source>
+ <translation>交易的目標位址.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="603"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>減去或加入至餘額的金額</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="297"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation>
+ <numerusform>生產金額將在 %n 個區塊產出後可用</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>Type</source>
+ <translation>種類</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>給自己</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>最小金額</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy address</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="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="272"/>
+ <source>Export Transaction Data</source>
+ <translation>匯出交易資料</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="273"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>逗號分隔資料檔 (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Confirmed</source>
+ <translation>已確認</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Date</source>
+ <translation>日期</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="284"/>
+ <source>Label</source>
+ <translation>標記</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="285"/>
+ <source>Address</source>
+ <translation>位址</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="286"/>
+ <source>Amount</source>
+ <translation>金額</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>ID</source>
+ <translation>識別碼</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Error exporting</source>
+ <translation>匯出錯誤</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="291"/>
+ <source>Could not write to file %1.</source>
+ <translation>無法寫入至 %1 檔案.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="393"/>
+ <source>Range:</source>
+ <translation>範圍:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="401"/>
+ <source>to</source>
+ <translation>至</translation>
+ </message>
+ <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="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="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="126"/>
+ <source>Copy label</source>
+ <translation>複製標記</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>輸入位址或標記來搜尋</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="144"/>
+ <source>Sending...</source>
+ <translation>付出中...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="9"/>
+ <source>Usage:</source>
+ <translation>用法:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <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="67"/>
+ <source>Loading addresses...</source>
+ <translation>載入位址中...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="79"/>
+ <source>Invalid -proxy address</source>
+ <translation>無效的 -proxy 位址</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>-paytxfee=&lt;金額&gt; 中的金額無效</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <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="89"/>
+ <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="85"/>
+ <source>Warning: Disk space is low</source>
+ <translation>警告: 磁碟空間很少</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Bitcoin version</source>
+ <translation>位元幣版本</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="69"/>
+ <source>Loading block index...</source>
+ <translation>載入區塊索引中...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Loading wallet...</source>
+ <translation>載入錢包中...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Rescanning...</source>
+ <translation>重新掃描中...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Done loading</source>
+ <translation>載入完成</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>錯誤: CreateThread(StartNode) 失敗</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>無法與這台電腦上的通訊埠 %d 連結. 也許 Bitcoin 已經在執行了.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete
+</source>
+ <translation>錢包需要重寫: 請重啟位元幣來完成</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>beta</source>
+ <translation>公測版</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Send command to -server or bitcoind
+</source>
+ <translation>送指令至 -server 或 bitcoind
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>List commands
+</source>
+ <translation>列出指令
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Get help for a command
+</source>
+ <translation>取得指令說明
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Options:
+</source>
+ <translation>選項:
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Specify configuration file (default: bitcoin.conf)
+</source>
+ <translation>指定設定檔 (預設: bitcoin.conf)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>Specify pid file (default: bitcoind.pid)
+</source>
+ <translation>指定行程識別碼檔案 (預設: bitcoind.pid)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Generate coins
+</source>
+ <translation>生產位元幣
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Don&apos;t generate coins
+</source>
+ <translation>不生產位元幣
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Start minimized
+</source>
+ <translation>啓動時最小化
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify data directory
+</source>
+ <translation>指定資料目錄</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Specify connection timeout (in milliseconds)
+</source>
+ <translation>指定連線逾時時間 (毫秒)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Connect through socks4 proxy
+</source>
+ <translation>透過 socks4 代理伺服器連線</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Allow DNS lookups for addnode and connect
+</source>
+ <translation>允許 addnode 和 connect 時做域名解析
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)
+</source>
+ <translation>在通訊埠 &lt;port&gt; 聽候連線 (預設: 8333, 或若為測試網路: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <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="25"/>
+ <source>Add a node to connect to
+</source>
+ <translation>新增連線節點</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Connect only to the specified node
+</source>
+ <translation>只連線至指定節點</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Don&apos;t find peers using internet relay chat
+</source>
+ <translation type="unfinished">Don&apos;t 是否使用網際網路中繼聊天(IRC)來找節點</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Don&apos;t accept connections from outside
+</source>
+ <translation>不接受外來連線</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Don&apos;t bootstrap list of peers using DNS
+</source>
+ <translation>初始化節點列表時不使用 DNS</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)
+</source>
+ <translation>與亂搞的節點斷線的臨界值 (預設: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)
+</source>
+ <translation>避免與亂搞的節點連線的秒數 (預設: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <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="36"/>
+ <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="37"/>
+ <source>Don&apos;t attempt to use UPnP to map the listening port
+</source>
+ <translation>不嘗試用 UPnP 來設定服務連接埠的對應
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Attempt to use UPnP to map the listening port
+</source>
+ <translation>嘗試用 UPnP 來設定服務連接埠的對應
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Fee per kB to add to transactions you send
+</source>
+ <translation>交易付款時每 kB 的交易手續費
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
+ <source>Accept command line and JSON-RPC commands
+</source>
+ <translation>接受命令列與 JSON-RPC 指令
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
+ <source>Run in the background as a daemon and accept commands
+</source>
+ <translation>以背景程式執行並接受指令</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Use the test network
+</source>
+ <translation>使用測試網路
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Output extra debugging information
+</source>
+ <translation>輸出額外的除錯資訊</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Prepend debug output with timestamp
+</source>
+ <translation>在除錯輸出內容前附加時間</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Send trace/debug info to console instead of debug.log file
+</source>
+ <translation>輸出追蹤或除錯資訊至終端機, 而非 debug.log 檔案</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Send trace/debug info to debugger
+</source>
+ <translation>輸出追蹤或除錯資訊給除錯器</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Username for JSON-RPC connections
+</source>
+ <translation>JSON-RPC 連線使用者名稱</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Password for JSON-RPC connections
+</source>
+ <translation>JSON-RPC 連線密碼</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)
+</source>
+ <translation>在通訊埠 &lt;port&gt; 聽候 JSON-RPC 連線 (預設: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Allow JSON-RPC connections from specified IP address
+</source>
+ <translation>只允許從指定網路位址來的 JSON-RPC 連線</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <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="52"/>
+ <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="53"/>
+ <source>Rescan the block chain for missing wallet transactions
+</source>
+ <translation>重新掃描區塊鎖鏈, 以尋找錢包所遺漏的交易.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)
+</source>
+ <translation>
+SSL 選項: (SSL 設定程序請見 Bitcoin Wiki)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections
+</source>
+ <translation>使用 OpenSSL (https) 於JSON-RPC 連線
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Server certificate file (default: server.cert)
+</source>
+ <translation>伺服器憑證檔 (預設: server.cert)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Server private key (default: server.pem)
+</source>
+ <translation>伺服器密鑰檔 (預設: server.pem)
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
+ <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="63"/>
+ <source>This help message
+</source>
+ <translation>此協助訊息
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="68"/>
+ <source>Error loading addr.dat
+</source>
+ <translation>載入 addr.dat 錯誤
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Error loading blkindex.dat
+</source>
+ <translation>載入 blkindex.dat 失敗
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Error loading wallet.dat: Wallet corrupted
+</source>
+ <translation>載入 wallet.dat 失敗: 錢包壞掉了
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin
+</source>
+ <translation>載入 wallet.dat 錯誤: 此錢包需要新版的 Bitcoin
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>Error loading wallet.dat
+</source>
+ <translation>載入 wallet.dat 錯誤
+</translation>
+ </message>
+</context>
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="169"/>
+ <source>Bitcoin-Qt</source>
+ <translation type="unfinished">位元幣Qt版</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/qt/macdockiconhandler.h b/src/qt/macdockiconhandler.h
new file mode 100644
index 0000000000..d39c780233
--- /dev/null
+++ b/src/qt/macdockiconhandler.h
@@ -0,0 +1,39 @@
+#ifndef MACDOCKICONHANDLER_H
+#define MACDOCKICONHANDLER_H
+
+#include <QObject>
+
+class QMenu;
+class QIcon;
+class QWidget;
+class objc_object;
+
+/** Macintosh-specific dock icon handler.
+ */
+class MacDockIconHandler : public QObject
+{
+ Q_OBJECT
+public:
+ ~MacDockIconHandler();
+
+ QMenu *dockMenu();
+ void setIcon(const QIcon &icon);
+
+ static MacDockIconHandler *instance();
+
+ void handleDockIconClickEvent();
+
+signals:
+ void dockIconClicked();
+
+public slots:
+
+private:
+ MacDockIconHandler();
+
+ objc_object *m_dockIconClickEventHandler;
+ QWidget *m_dummyWidget;
+ QMenu *m_dockMenu;
+};
+
+#endif // MACDOCKICONCLICKHANDLER_H
diff --git a/src/qt/macdockiconhandler.mm b/src/qt/macdockiconhandler.mm
new file mode 100644
index 0000000000..df56e6949d
--- /dev/null
+++ b/src/qt/macdockiconhandler.mm
@@ -0,0 +1,99 @@
+
+#include "macdockiconhandler.h"
+
+#include <QtGui/QMenu>
+#include <QtGui/QWidget>
+
+extern void qt_mac_set_dock_menu(QMenu*);
+
+#undef slots
+#include <Cocoa/Cocoa.h>
+
+@interface DockIconClickEventHandler : NSObject
+{
+ MacDockIconHandler* dockIconHandler;
+}
+
+@end
+
+@implementation DockIconClickEventHandler
+
+- (id)initWithDockIconHandler:(MacDockIconHandler *)aDockIconHandler
+{
+ self = [super init];
+ if (self) {
+ dockIconHandler = aDockIconHandler;
+
+ [[NSAppleEventManager sharedAppleEventManager]
+ setEventHandler:self
+ andSelector:@selector(handleDockClickEvent:withReplyEvent:)
+ forEventClass:kCoreEventClass
+ andEventID:kAEReopenApplication];
+ }
+ return self;
+}
+
+- (void)handleDockClickEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
+{
+ Q_UNUSED(event)
+ Q_UNUSED(replyEvent)
+
+ if (dockIconHandler)
+ dockIconHandler->handleDockIconClickEvent();
+}
+
+@end
+
+MacDockIconHandler::MacDockIconHandler() : QObject()
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ this->m_dockIconClickEventHandler = [[DockIconClickEventHandler alloc] initWithDockIconHandler:this];
+
+ this->m_dummyWidget = new QWidget();
+ this->m_dockMenu = new QMenu(this->m_dummyWidget);
+ qt_mac_set_dock_menu(this->m_dockMenu);
+ [pool release];
+}
+
+MacDockIconHandler::~MacDockIconHandler()
+{
+ [this->m_dockIconClickEventHandler release];
+ delete this->m_dummyWidget;
+}
+
+QMenu *MacDockIconHandler::dockMenu()
+{
+ return this->m_dockMenu;
+}
+
+void MacDockIconHandler::setIcon(const QIcon &icon)
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ NSImage *image;
+ if (icon.isNull())
+ image = [[NSImage imageNamed:@"NSApplicationIcon"] retain];
+ else {
+ QSize size = icon.actualSize(QSize(128, 128));
+ QPixmap pixmap = icon.pixmap(size);
+ CGImageRef cgImage = pixmap.toMacCGImageRef();
+ image = [[NSImage alloc] initWithCGImage:cgImage size:NSZeroSize];
+ CFRelease(cgImage);
+ }
+
+ [NSApp setApplicationIconImage:image];
+ [image release];
+ [pool release];
+}
+
+MacDockIconHandler *MacDockIconHandler::instance()
+{
+ static MacDockIconHandler *s_instance = NULL;
+ if (!s_instance)
+ s_instance = new MacDockIconHandler();
+ return s_instance;
+}
+
+void MacDockIconHandler::handleDockIconClickEvent()
+{
+ emit this->dockIconClicked();
+}
diff --git a/src/qt/monitoreddatamapper.cpp b/src/qt/monitoreddatamapper.cpp
new file mode 100644
index 0000000000..88948d07bf
--- /dev/null
+++ b/src/qt/monitoreddatamapper.cpp
@@ -0,0 +1,36 @@
+#include "monitoreddatamapper.h"
+
+#include <QWidget>
+#include <QMetaObject>
+#include <QMetaProperty>
+
+MonitoredDataMapper::MonitoredDataMapper(QObject *parent) :
+ QDataWidgetMapper(parent)
+{
+}
+
+
+void MonitoredDataMapper::addMapping(QWidget *widget, int section)
+{
+ QDataWidgetMapper::addMapping(widget, section);
+ addChangeMonitor(widget);
+}
+
+void MonitoredDataMapper::addMapping(QWidget *widget, int section, const QByteArray &propertyName)
+{
+ QDataWidgetMapper::addMapping(widget, section, propertyName);
+ addChangeMonitor(widget);
+}
+
+void MonitoredDataMapper::addChangeMonitor(QWidget *widget)
+{
+ // Watch user property of widget for changes, and connect
+ // the signal to our viewModified signal.
+ QMetaProperty prop = widget->metaObject()->userProperty();
+ int signal = prop.notifySignalIndex();
+ int method = this->metaObject()->indexOfMethod("viewModified()");
+ if(signal != -1 && method != -1)
+ {
+ QMetaObject::connect(widget, signal, this, method);
+ }
+}
diff --git a/src/qt/monitoreddatamapper.h b/src/qt/monitoreddatamapper.h
new file mode 100644
index 0000000000..33a874e73a
--- /dev/null
+++ b/src/qt/monitoreddatamapper.h
@@ -0,0 +1,31 @@
+#ifndef MONITOREDDATAMAPPER_H
+#define MONITOREDDATAMAPPER_H
+
+#include <QDataWidgetMapper>
+
+QT_BEGIN_NAMESPACE
+class QWidget;
+QT_END_NAMESPACE
+
+/** Data to Widget mapper that watches for edits and notifies listeners when a field is edited.
+ This can be used, for example, to enable a commit/apply button in a configuration dialog.
+ */
+class MonitoredDataMapper : public QDataWidgetMapper
+{
+ Q_OBJECT
+public:
+ explicit MonitoredDataMapper(QObject *parent=0);
+
+ void addMapping(QWidget *widget, int section);
+ void addMapping(QWidget *widget, int section, const QByteArray &propertyName);
+private:
+ void addChangeMonitor(QWidget *widget);
+
+signals:
+ void viewModified();
+
+};
+
+
+
+#endif // MONITOREDDATAMAPPER_H
diff --git a/src/qt/notificator.cpp b/src/qt/notificator.cpp
new file mode 100644
index 0000000000..c1c177dbfe
--- /dev/null
+++ b/src/qt/notificator.cpp
@@ -0,0 +1,302 @@
+#include "notificator.h"
+
+#include <QMetaType>
+#include <QVariant>
+#include <QIcon>
+#include <QApplication>
+#include <QStyle>
+#include <QByteArray>
+#include <QSystemTrayIcon>
+#include <QMessageBox>
+#include <QTemporaryFile>
+#include <QImageWriter>
+
+#ifdef USE_DBUS
+#include <QtDBus/QtDBus>
+#include <stdint.h>
+#endif
+
+#ifdef Q_WS_MAC
+#include <ApplicationServices/ApplicationServices.h>
+extern bool qt_mac_execute_apple_script(const QString &script, AEDesc *ret);
+#endif
+
+// https://wiki.ubuntu.com/NotificationDevelopmentGuidelines recommends at least 128
+const int FREEDESKTOP_NOTIFICATION_ICON_SIZE = 128;
+
+Notificator::Notificator(const QString &programName, QSystemTrayIcon *trayicon, QWidget *parent):
+ QObject(parent),
+ parent(parent),
+ programName(programName),
+ mode(None),
+ trayIcon(trayicon)
+#ifdef USE_DBUS
+ ,interface(0)
+#endif
+{
+ if(trayicon && trayicon->supportsMessages())
+ {
+ mode = QSystemTray;
+ }
+#ifdef USE_DBUS
+ interface = new QDBusInterface("org.freedesktop.Notifications",
+ "/org/freedesktop/Notifications", "org.freedesktop.Notifications");
+ if(interface->isValid())
+ {
+ mode = Freedesktop;
+ }
+#endif
+#ifdef Q_WS_MAC
+ // Check if Growl is installed (based on Qt's tray icon implementation)
+ CFURLRef cfurl;
+ OSStatus status = LSGetApplicationForInfo(kLSUnknownType, kLSUnknownCreator, CFSTR("growlTicket"), kLSRolesAll, 0, &cfurl);
+ if (status != kLSApplicationNotFoundErr) {
+ CFBundleRef bundle = CFBundleCreate(0, cfurl);
+ if (CFStringCompare(CFBundleGetIdentifier(bundle), CFSTR("com.Growl.GrowlHelperApp"), kCFCompareCaseInsensitive | kCFCompareBackwards) == kCFCompareEqualTo) {
+ if (CFStringHasSuffix(CFURLGetString(cfurl), CFSTR("/Growl.app/")))
+ mode = Growl13;
+ else
+ mode = Growl12;
+ }
+ CFRelease(cfurl);
+ CFRelease(bundle);
+ }
+#endif
+}
+
+Notificator::~Notificator()
+{
+#ifdef USE_DBUS
+ delete interface;
+#endif
+}
+
+#ifdef USE_DBUS
+
+// Loosely based on http://www.qtcentre.org/archive/index.php/t-25879.html
+class FreedesktopImage
+{
+public:
+ FreedesktopImage() {}
+ FreedesktopImage(const QImage &img);
+
+ static int metaType();
+
+ // Image to variant that can be marshalled over DBus
+ static QVariant toVariant(const QImage &img);
+
+private:
+ int width, height, stride;
+ bool hasAlpha;
+ int channels;
+ int bitsPerSample;
+ QByteArray image;
+
+ friend QDBusArgument &operator<<(QDBusArgument &a, const FreedesktopImage &i);
+ friend const QDBusArgument &operator>>(const QDBusArgument &a, FreedesktopImage &i);
+};
+
+Q_DECLARE_METATYPE(FreedesktopImage);
+
+// Image configuration settings
+const int CHANNELS = 4;
+const int BYTES_PER_PIXEL = 4;
+const int BITS_PER_SAMPLE = 8;
+
+FreedesktopImage::FreedesktopImage(const QImage &img):
+ width(img.width()),
+ height(img.height()),
+ stride(img.width() * BYTES_PER_PIXEL),
+ hasAlpha(true),
+ channels(CHANNELS),
+ bitsPerSample(BITS_PER_SAMPLE)
+{
+ // Convert 00xAARRGGBB to RGBA bytewise (endian-independent) format
+ QImage tmp = img.convertToFormat(QImage::Format_ARGB32);
+ const uint32_t *data = reinterpret_cast<const uint32_t*>(tmp.constBits());
+
+ unsigned int num_pixels = width * height;
+ image.resize(num_pixels * BYTES_PER_PIXEL);
+
+ for(unsigned int ptr = 0; ptr < num_pixels; ++ptr)
+ {
+ image[ptr*BYTES_PER_PIXEL+0] = data[ptr] >> 16; // R
+ image[ptr*BYTES_PER_PIXEL+1] = data[ptr] >> 8; // G
+ image[ptr*BYTES_PER_PIXEL+2] = data[ptr]; // B
+ image[ptr*BYTES_PER_PIXEL+3] = data[ptr] >> 24; // A
+ }
+}
+
+QDBusArgument &operator<<(QDBusArgument &a, const FreedesktopImage &i)
+{
+ a.beginStructure();
+ a << i.width << i.height << i.stride << i.hasAlpha << i.bitsPerSample << i.channels << i.image;
+ a.endStructure();
+ return a;
+}
+
+const QDBusArgument &operator>>(const QDBusArgument &a, FreedesktopImage &i)
+{
+ a.beginStructure();
+ a >> i.width >> i.height >> i.stride >> i.hasAlpha >> i.bitsPerSample >> i.channels >> i.image;
+ a.endStructure();
+ return a;
+}
+
+int FreedesktopImage::metaType()
+{
+ return qDBusRegisterMetaType<FreedesktopImage>();
+}
+
+QVariant FreedesktopImage::toVariant(const QImage &img)
+{
+ FreedesktopImage fimg(img);
+ return QVariant(FreedesktopImage::metaType(), &fimg);
+}
+
+void Notificator::notifyDBus(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout)
+{
+ Q_UNUSED(cls);
+ // Arguments for DBus call:
+ QList<QVariant> args;
+
+ // Program Name:
+ args.append(programName);
+
+ // Unique ID of this notification type:
+ args.append(0U);
+
+ // Application Icon, empty string
+ args.append(QString());
+
+ // Summary
+ args.append(title);
+
+ // Body
+ args.append(text);
+
+ // Actions (none, actions are deprecated)
+ QStringList actions;
+ args.append(actions);
+
+ // Hints
+ QVariantMap hints;
+
+ // If no icon specified, set icon based on class
+ QIcon tmpicon;
+ if(icon.isNull())
+ {
+ QStyle::StandardPixmap sicon = QStyle::SP_MessageBoxQuestion;
+ switch(cls)
+ {
+ case Information: sicon = QStyle::SP_MessageBoxInformation; break;
+ case Warning: sicon = QStyle::SP_MessageBoxWarning; break;
+ case Critical: sicon = QStyle::SP_MessageBoxCritical; break;
+ default: break;
+ }
+ tmpicon = QApplication::style()->standardIcon(sicon);
+ }
+ else
+ {
+ tmpicon = icon;
+ }
+ hints["icon_data"] = FreedesktopImage::toVariant(tmpicon.pixmap(FREEDESKTOP_NOTIFICATION_ICON_SIZE).toImage());
+ args.append(hints);
+
+ // Timeout (in msec)
+ args.append(millisTimeout);
+
+ // "Fire and forget"
+ interface->callWithArgumentList(QDBus::NoBlock, "Notify", args);
+}
+#endif
+
+void Notificator::notifySystray(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout)
+{
+ Q_UNUSED(icon);
+ QSystemTrayIcon::MessageIcon sicon = QSystemTrayIcon::NoIcon;
+ switch(cls) // Set icon based on class
+ {
+ case Information: sicon = QSystemTrayIcon::Information; break;
+ case Warning: sicon = QSystemTrayIcon::Warning; break;
+ case Critical: sicon = QSystemTrayIcon::Critical; break;
+ }
+ trayIcon->showMessage(title, text, sicon, millisTimeout);
+}
+
+// Based on Qt's tray icon implementation
+#ifdef Q_WS_MAC
+void Notificator::notifyGrowl(Class cls, const QString &title, const QString &text, const QIcon &icon)
+{
+ const QString script(
+ "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
+ " notify with name \"Notification\" title \"%2\" description \"%3\" application name \"%1\"%4\n" // -- Send a Notification
+ "end tell"
+ );
+
+ QString notificationApp(QApplication::applicationName());
+ if (notificationApp.isEmpty())
+ notificationApp = "Application";
+
+ QPixmap notificationIconPixmap;
+ if (icon.isNull()) { // If no icon specified, set icon based on class
+ QStyle::StandardPixmap sicon = QStyle::SP_MessageBoxQuestion;
+ switch (cls)
+ {
+ case Information: sicon = QStyle::SP_MessageBoxInformation; break;
+ case Warning: sicon = QStyle::SP_MessageBoxWarning; break;
+ case Critical: sicon = QStyle::SP_MessageBoxCritical; break;
+ }
+ notificationIconPixmap = QApplication::style()->standardPixmap(sicon);
+ }
+ else {
+ QSize size = icon.actualSize(QSize(48, 48));
+ notificationIconPixmap = icon.pixmap(size);
+ }
+
+ QString notificationIcon;
+ QTemporaryFile notificationIconFile;
+ if (!notificationIconPixmap.isNull() && notificationIconFile.open()) {
+ QImageWriter writer(&notificationIconFile, "PNG");
+ if (writer.write(notificationIconPixmap.toImage()))
+ notificationIcon = QString(" image from location \"file://%1\"").arg(notificationIconFile.fileName());
+ }
+
+ QString quotedTitle(title), quotedText(text);
+ quotedTitle.replace("\\", "\\\\").replace("\"", "\\");
+ quotedText.replace("\\", "\\\\").replace("\"", "\\");
+ QString growlApp(this->mode == Notificator::Growl13 ? "Growl" : "GrowlHelperApp");
+ qt_mac_execute_apple_script(script.arg(notificationApp, quotedTitle, quotedText, notificationIcon, growlApp), 0);
+}
+#endif
+
+void Notificator::notify(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout)
+{
+ switch(mode)
+ {
+#ifdef USE_DBUS
+ case Freedesktop:
+ notifyDBus(cls, title, text, icon, millisTimeout);
+ break;
+#endif
+ case QSystemTray:
+ notifySystray(cls, title, text, icon, millisTimeout);
+ break;
+#ifdef Q_WS_MAC
+ case Growl12:
+ case Growl13:
+ notifyGrowl(cls, title, text, icon);
+ break;
+#endif
+ default:
+ if(cls == Critical)
+ {
+ // Fall back to old fashioned pop-up dialog if critical and no other notification available
+ QMessageBox::critical(parent, title, text, QMessageBox::Ok, QMessageBox::Ok);
+ }
+ break;
+ }
+}
diff --git a/src/qt/notificator.h b/src/qt/notificator.h
new file mode 100644
index 0000000000..8abc0b2ec2
--- /dev/null
+++ b/src/qt/notificator.h
@@ -0,0 +1,69 @@
+#ifndef NOTIFICATOR_H
+#define NOTIFICATOR_H
+
+#include <QObject>
+#include <QIcon>
+
+QT_BEGIN_NAMESPACE
+class QSystemTrayIcon;
+#ifdef USE_DBUS
+class QDBusInterface;
+#endif
+QT_END_NAMESPACE
+
+/** Cross-platform desktop notification client. */
+class Notificator: public QObject
+{
+ Q_OBJECT
+public:
+ /** Create a new notificator.
+ @note Ownership of trayIcon is not transferred to this object.
+ */
+ Notificator(const QString &programName=QString(), QSystemTrayIcon *trayIcon=0, QWidget *parent=0);
+ ~Notificator();
+
+ // Message class
+ enum Class
+ {
+ Information, /**< Informational message */
+ Warning, /**< Notify user of potential problem */
+ Critical /**< An error occurred */
+ };
+
+public slots:
+
+ /** Show notification message.
+ @param[in] cls general message class
+ @param[in] title title shown with message
+ @param[in] text message content
+ @param[in] icon optional icon to show with message
+ @param[in] millisTimeout notification timeout in milliseconds (defaults to 10 seconds)
+ @note Platform implementations are free to ignore any of the provided fields except for \a text.
+ */
+ void notify(Class cls, const QString &title, const QString &text,
+ const QIcon &icon = QIcon(), int millisTimeout = 10000);
+
+private:
+ QWidget *parent;
+ enum Mode {
+ None, /**< Ignore informational notifications, and show a modal pop-up dialog for Critical notifications. */
+ Freedesktop, /**< Use DBus org.freedesktop.Notifications */
+ QSystemTray, /**< Use QSystemTray::showMessage */
+ Growl12, /**< Use the Growl 1.2 notification system (Mac only) */
+ Growl13 /**< Use the Growl 1.3 notification system (Mac only) */
+ };
+ QString programName;
+ Mode mode;
+ QSystemTrayIcon *trayIcon;
+#ifdef USE_DBUS
+ QDBusInterface *interface;
+
+ void notifyDBus(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout);
+#endif
+ void notifySystray(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout);
+#ifdef Q_WS_MAC
+ void notifyGrowl(Class cls, const QString &title, const QString &text, const QIcon &icon);
+#endif
+};
+
+#endif // NOTIFICATOR_H
diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp
new file mode 100644
index 0000000000..6018419fbc
--- /dev/null
+++ b/src/qt/optionsdialog.cpp
@@ -0,0 +1,293 @@
+#include "optionsdialog.h"
+#include "optionsmodel.h"
+#include "bitcoinamountfield.h"
+#include "monitoreddatamapper.h"
+#include "guiutil.h"
+#include "bitcoinunits.h"
+#include "qvaluecombobox.h"
+
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QPushButton>
+#include <QListWidget>
+#include <QStackedWidget>
+
+#include <QCheckBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QIntValidator>
+#include <QDoubleValidator>
+#include <QRegExpValidator>
+#include <QDialogButtonBox>
+
+/* First page of options */
+class MainOptionsPage : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit MainOptionsPage(QWidget *parent=0);
+
+ void setMapper(MonitoredDataMapper *mapper);
+private:
+ QCheckBox *bitcoin_at_startup;
+#ifndef Q_WS_MAC
+ QCheckBox *minimize_to_tray;
+#endif
+ QCheckBox *map_port_upnp;
+#ifndef Q_WS_MAC
+ QCheckBox *minimize_on_close;
+#endif
+ QCheckBox *connect_socks4;
+ QLineEdit *proxy_ip;
+ QLineEdit *proxy_port;
+ BitcoinAmountField *fee_edit;
+
+signals:
+
+public slots:
+
+};
+
+class DisplayOptionsPage : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit DisplayOptionsPage(QWidget *parent=0);
+
+ void setMapper(MonitoredDataMapper *mapper);
+private:
+ QValueComboBox *unit;
+ QCheckBox *display_addresses;
+signals:
+
+public slots:
+
+};
+
+#include "optionsdialog.moc"
+
+OptionsDialog::OptionsDialog(QWidget *parent):
+ QDialog(parent), contents_widget(0), pages_widget(0),
+ model(0), main_page(0), display_page(0)
+{
+ contents_widget = new QListWidget();
+ contents_widget->setMaximumWidth(128);
+
+ pages_widget = new QStackedWidget();
+ pages_widget->setMinimumWidth(300);
+
+ QListWidgetItem *item_main = new QListWidgetItem(tr("Main"));
+ contents_widget->addItem(item_main);
+ main_page = new MainOptionsPage(this);
+ pages_widget->addWidget(main_page);
+
+ QListWidgetItem *item_display = new QListWidgetItem(tr("Display"));
+ contents_widget->addItem(item_display);
+ display_page = new DisplayOptionsPage(this);
+ pages_widget->addWidget(display_page);
+
+ contents_widget->setCurrentRow(0);
+
+ QHBoxLayout *main_layout = new QHBoxLayout();
+ main_layout->addWidget(contents_widget);
+ main_layout->addWidget(pages_widget, 1);
+
+ QVBoxLayout *layout = new QVBoxLayout();
+ layout->addLayout(main_layout);
+
+ QDialogButtonBox *buttonbox = new QDialogButtonBox();
+ buttonbox->setStandardButtons(QDialogButtonBox::Apply|QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
+ apply_button = buttonbox->button(QDialogButtonBox::Apply);
+ layout->addWidget(buttonbox);
+
+ setLayout(layout);
+ setWindowTitle(tr("Options"));
+
+ /* Widget-to-option mapper */
+ mapper = new MonitoredDataMapper(this);
+ mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
+ mapper->setOrientation(Qt::Vertical);
+ /* enable apply button when data modified */
+ connect(mapper, SIGNAL(viewModified()), this, SLOT(enableApply()));
+ /* disable apply button when new data loaded */
+ connect(mapper, SIGNAL(currentIndexChanged(int)), this, SLOT(disableApply()));
+
+ /* Event bindings */
+ connect(contents_widget, SIGNAL(currentRowChanged(int)), this, SLOT(changePage(int)));
+ connect(buttonbox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(okClicked()));
+ connect(buttonbox->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(cancelClicked()));
+ connect(buttonbox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(applyClicked()));
+}
+
+void OptionsDialog::setModel(OptionsModel *model)
+{
+ this->model = model;
+
+ mapper->setModel(model);
+ main_page->setMapper(mapper);
+ display_page->setMapper(mapper);
+
+ mapper->toFirst();
+}
+
+void OptionsDialog::changePage(int index)
+{
+ pages_widget->setCurrentIndex(index);
+}
+
+void OptionsDialog::okClicked()
+{
+ mapper->submit();
+ accept();
+}
+
+void OptionsDialog::cancelClicked()
+{
+ reject();
+}
+
+void OptionsDialog::applyClicked()
+{
+ mapper->submit();
+ apply_button->setEnabled(false);
+}
+
+void OptionsDialog::enableApply()
+{
+ apply_button->setEnabled(true);
+}
+
+void OptionsDialog::disableApply()
+{
+ apply_button->setEnabled(false);
+}
+
+MainOptionsPage::MainOptionsPage(QWidget *parent):
+ QWidget(parent)
+{
+ QVBoxLayout *layout = new QVBoxLayout();
+
+ bitcoin_at_startup = new QCheckBox(tr("&Start Bitcoin on window system startup"));
+ bitcoin_at_startup->setToolTip(tr("Automatically start Bitcoin after the computer is turned on"));
+ layout->addWidget(bitcoin_at_startup);
+
+#ifndef Q_WS_MAC
+ 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
+
+ connect_socks4 = new QCheckBox(tr("&Connect through SOCKS4 proxy:"));
+ connect_socks4->setToolTip(tr("Connect to the Bitcoin network through a SOCKS4 proxy (e.g. when connecting through Tor)"));
+ layout->addWidget(connect_socks4);
+
+ QHBoxLayout *proxy_hbox = new QHBoxLayout();
+ proxy_hbox->addSpacing(18);
+ QLabel *proxy_ip_label = new QLabel(tr("Proxy &IP: "));
+ proxy_hbox->addWidget(proxy_ip_label);
+ proxy_ip = new QLineEdit();
+ proxy_ip->setMaximumWidth(140);
+ proxy_ip->setEnabled(false);
+ proxy_ip->setValidator(new QRegExpValidator(QRegExp("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}"), this));
+ proxy_ip->setToolTip(tr("IP address of the proxy (e.g. 127.0.0.1)"));
+ proxy_ip_label->setBuddy(proxy_ip);
+ proxy_hbox->addWidget(proxy_ip);
+ QLabel *proxy_port_label = new QLabel(tr("&Port: "));
+ proxy_hbox->addWidget(proxy_port_label);
+ proxy_port = new QLineEdit();
+ proxy_port->setMaximumWidth(55);
+ proxy_port->setValidator(new QIntValidator(0, 65535, this));
+ proxy_port->setEnabled(false);
+ proxy_port->setToolTip(tr("Port of the proxy (e.g. 1234)"));
+ proxy_port_label->setBuddy(proxy_port);
+ proxy_hbox->addWidget(proxy_port);
+ proxy_hbox->addStretch(1);
+
+ layout->addLayout(proxy_hbox);
+ QLabel *fee_help = new QLabel(tr("Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended."));
+ fee_help->setWordWrap(true);
+ layout->addWidget(fee_help);
+
+ QHBoxLayout *fee_hbox = new QHBoxLayout();
+ fee_hbox->addSpacing(18);
+ QLabel *fee_label = new QLabel(tr("Pay transaction &fee"));
+ fee_hbox->addWidget(fee_label);
+ fee_edit = new BitcoinAmountField();
+
+ fee_label->setBuddy(fee_edit);
+ fee_hbox->addWidget(fee_edit);
+ fee_hbox->addStretch(1);
+
+ layout->addLayout(fee_hbox);
+
+ layout->addStretch(1); // Extra space at bottom
+
+ setLayout(layout);
+
+ connect(connect_socks4, SIGNAL(toggled(bool)), proxy_ip, SLOT(setEnabled(bool)));
+ connect(connect_socks4, SIGNAL(toggled(bool)), proxy_port, SLOT(setEnabled(bool)));
+
+#ifndef USE_UPNP
+ map_port_upnp->setDisabled(true);
+#endif
+}
+
+void MainOptionsPage::setMapper(MonitoredDataMapper *mapper)
+{
+ // Map model to widgets
+ mapper->addMapping(bitcoin_at_startup, OptionsModel::StartAtStartup);
+#ifndef Q_WS_MAC
+ mapper->addMapping(minimize_to_tray, OptionsModel::MinimizeToTray);
+#endif
+ mapper->addMapping(map_port_upnp, OptionsModel::MapPortUPnP);
+#ifndef Q_WS_MAC
+ mapper->addMapping(minimize_on_close, OptionsModel::MinimizeOnClose);
+#endif
+ mapper->addMapping(connect_socks4, OptionsModel::ConnectSOCKS4);
+ mapper->addMapping(proxy_ip, OptionsModel::ProxyIP);
+ mapper->addMapping(proxy_port, OptionsModel::ProxyPort);
+ mapper->addMapping(fee_edit, OptionsModel::Fee);
+}
+
+DisplayOptionsPage::DisplayOptionsPage(QWidget *parent):
+ QWidget(parent)
+{
+ QVBoxLayout *layout = new QVBoxLayout();
+
+ QHBoxLayout *unit_hbox = new QHBoxLayout();
+ unit_hbox->addSpacing(18);
+ QLabel *unit_label = new QLabel(tr("&Unit to show amounts in: "));
+ unit_hbox->addWidget(unit_label);
+ unit = new QValueComboBox(this);
+ unit->setModel(new BitcoinUnits(this));
+ unit->setToolTip(tr("Choose the default subdivision unit to show in the interface, and when sending coins"));
+
+ unit_label->setBuddy(unit);
+ unit_hbox->addWidget(unit);
+
+ layout->addLayout(unit_hbox);
+
+ 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();
+
+ setLayout(layout);
+}
+
+void DisplayOptionsPage::setMapper(MonitoredDataMapper *mapper)
+{
+ mapper->addMapping(unit, OptionsModel::DisplayUnit);
+ mapper->addMapping(display_addresses, OptionsModel::DisplayAddresses);
+}
diff --git a/src/qt/optionsdialog.h b/src/qt/optionsdialog.h
new file mode 100644
index 0000000000..9e1f87c646
--- /dev/null
+++ b/src/qt/optionsdialog.h
@@ -0,0 +1,53 @@
+#ifndef OPTIONSDIALOG_H
+#define OPTIONSDIALOG_H
+
+#include <QDialog>
+
+QT_BEGIN_NAMESPACE
+class QStackedWidget;
+class QListWidget;
+class QListWidgetItem;
+class QPushButton;
+QT_END_NAMESPACE
+class OptionsModel;
+class MainOptionsPage;
+class DisplayOptionsPage;
+class MonitoredDataMapper;
+
+/** Preferences dialog. */
+class OptionsDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ explicit OptionsDialog(QWidget *parent=0);
+
+ void setModel(OptionsModel *model);
+
+signals:
+
+public slots:
+ /** Change the current page to \a index. */
+ void changePage(int index);
+
+private slots:
+ void okClicked();
+ void cancelClicked();
+ void applyClicked();
+ void enableApply();
+ void disableApply();
+
+private:
+ QListWidget *contents_widget;
+ QStackedWidget *pages_widget;
+ OptionsModel *model;
+ MonitoredDataMapper *mapper;
+ QPushButton *apply_button;
+
+ // Pages
+ MainOptionsPage *main_page;
+ DisplayOptionsPage *display_page;
+
+ void setupMainPage();
+};
+
+#endif // OPTIONSDIALOG_H
diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp
new file mode 100644
index 0000000000..883d7e4ff8
--- /dev/null
+++ b/src/qt/optionsmodel.cpp
@@ -0,0 +1,164 @@
+#include "optionsmodel.h"
+#include "bitcoinunits.h"
+
+#include "headers.h"
+
+OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
+ QAbstractListModel(parent),
+ wallet(wallet),
+ nDisplayUnit(BitcoinUnits::BTC),
+ bDisplayAddresses(false)
+{
+ // Read our specific settings from the wallet db
+ CWalletDB walletdb(wallet->strWalletFile);
+ walletdb.ReadSetting("nDisplayUnit", nDisplayUnit);
+ walletdb.ReadSetting("bDisplayAddresses", bDisplayAddresses);
+}
+
+int OptionsModel::rowCount(const QModelIndex & parent) const
+{
+ return OptionIDRowCount;
+}
+
+QVariant OptionsModel::data(const QModelIndex & index, int role) const
+{
+ if(role == Qt::EditRole)
+ {
+ switch(index.row())
+ {
+ case StartAtStartup:
+ return QVariant();
+ case MinimizeToTray:
+ return QVariant(fMinimizeToTray);
+ case MapPortUPnP:
+ return QVariant(fUseUPnP);
+ case MinimizeOnClose:
+ return QVariant(fMinimizeOnClose);
+ case ConnectSOCKS4:
+ return QVariant(fUseProxy);
+ case ProxyIP:
+ return QVariant(QString::fromStdString(addrProxy.ToStringIP()));
+ case ProxyPort:
+ return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
+ case Fee:
+ return QVariant(nTransactionFee);
+ case DisplayUnit:
+ return QVariant(nDisplayUnit);
+ case DisplayAddresses:
+ return QVariant(bDisplayAddresses);
+ default:
+ return QVariant();
+ }
+ }
+ return QVariant();
+}
+
+bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, int role)
+{
+ bool successful = true; /* set to false on parse error */
+ if(role == Qt::EditRole)
+ {
+ CWalletDB walletdb(wallet->strWalletFile);
+ switch(index.row())
+ {
+ case StartAtStartup:
+ successful = false; /*TODO*/
+ break;
+ case MinimizeToTray:
+ fMinimizeToTray = value.toBool();
+ walletdb.WriteSetting("fMinimizeToTray", fMinimizeToTray);
+ break;
+ case MapPortUPnP:
+ fUseUPnP = value.toBool();
+ walletdb.WriteSetting("fUseUPnP", fUseUPnP);
+#ifdef USE_UPNP
+ MapPort(fUseUPnP);
+#endif
+ break;
+ case MinimizeOnClose:
+ fMinimizeOnClose = value.toBool();
+ walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
+ break;
+ case ConnectSOCKS4:
+ fUseProxy = value.toBool();
+ walletdb.WriteSetting("fUseProxy", fUseProxy);
+ break;
+ case ProxyIP:
+ {
+ // Use CAddress to parse and check IP
+ CAddress addr(value.toString().toStdString() + ":1");
+ if (addr.ip != INADDR_NONE)
+ {
+ addrProxy.ip = addr.ip;
+ walletdb.WriteSetting("addrProxy", addrProxy);
+ }
+ else
+ {
+ successful = false;
+ }
+ }
+ break;
+ case ProxyPort:
+ {
+ int nPort = atoi(value.toString().toAscii().data());
+ if (nPort > 0 && nPort < std::numeric_limits<unsigned short>::max())
+ {
+ addrProxy.port = htons(nPort);
+ walletdb.WriteSetting("addrProxy", addrProxy);
+ }
+ else
+ {
+ successful = false;
+ }
+ }
+ break;
+ case Fee: {
+ nTransactionFee = value.toLongLong();
+ walletdb.WriteSetting("nTransactionFee", nTransactionFee);
+ }
+ break;
+ case DisplayUnit: {
+ int unit = value.toInt();
+ nDisplayUnit = unit;
+ walletdb.WriteSetting("nDisplayUnit", nDisplayUnit);
+ emit displayUnitChanged(unit);
+ }
+ break;
+ case DisplayAddresses: {
+ bDisplayAddresses = value.toBool();
+ walletdb.WriteSetting("bDisplayAddresses", bDisplayAddresses);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ emit dataChanged(index, index);
+
+ return successful;
+}
+
+qint64 OptionsModel::getTransactionFee()
+{
+ return nTransactionFee;
+}
+
+bool OptionsModel::getMinimizeToTray()
+{
+ return fMinimizeToTray;
+}
+
+bool OptionsModel::getMinimizeOnClose()
+{
+ return fMinimizeOnClose;
+}
+
+int OptionsModel::getDisplayUnit()
+{
+ return nDisplayUnit;
+}
+
+bool OptionsModel::getDisplayAddresses()
+{
+ return bDisplayAddresses;
+}
diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h
new file mode 100644
index 0000000000..debd614e54
--- /dev/null
+++ b/src/qt/optionsmodel.h
@@ -0,0 +1,56 @@
+#ifndef OPTIONSMODEL_H
+#define OPTIONSMODEL_H
+
+#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.
+ This can be changed to a tree once the settings become sufficiently
+ complex.
+ */
+class OptionsModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+ explicit OptionsModel(CWallet *wallet, QObject *parent = 0);
+
+ enum OptionID {
+ StartAtStartup, // bool
+ MinimizeToTray, // bool
+ MapPortUPnP, // bool
+ MinimizeOnClose, // bool
+ ConnectSOCKS4, // bool
+ ProxyIP, // QString
+ ProxyPort, // int
+ Fee, // qint64
+ DisplayUnit, // BitcoinUnits::Unit
+ DisplayAddresses, // bool
+ OptionIDRowCount
+ };
+
+ 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);
+
+ /* Explicit getters */
+ qint64 getTransactionFee();
+ bool getMinimizeToTray();
+ bool getMinimizeOnClose();
+ int getDisplayUnit();
+ bool getDisplayAddresses();
+private:
+ // Wallet stores persistent options
+ CWallet *wallet;
+ int nDisplayUnit;
+ bool bDisplayAddresses;
+signals:
+ void displayUnitChanged(int unit);
+
+public slots:
+
+};
+
+#endif // OPTIONSMODEL_H
diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp
new file mode 100644
index 0000000000..2c3d8a49e3
--- /dev/null
+++ b/src/qt/overviewpage.cpp
@@ -0,0 +1,185 @@
+#include "overviewpage.h"
+#include "ui_overviewpage.h"
+
+#include "walletmodel.h"
+#include "bitcoinunits.h"
+#include "optionsmodel.h"
+#include "transactiontablemodel.h"
+#include "transactionfilterproxy.h"
+#include "guiutil.h"
+#include "guiconstants.h"
+
+#include <QAbstractItemDelegate>
+#include <QPainter>
+
+#define DECORATION_SIZE 64
+#define NUM_ITEMS 3
+
+class TxViewDelegate : public QAbstractItemDelegate
+{
+ Q_OBJECT
+public:
+ TxViewDelegate(): QAbstractItemDelegate(), unit(BitcoinUnits::BTC)
+ {
+
+ }
+
+ inline void paint(QPainter *painter, const QStyleOptionViewItem &option,
+ const QModelIndex &index ) const
+ {
+ painter->save();
+
+ QIcon icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole));
+ QRect mainRect = option.rect;
+ QRect decorationRect(mainRect.topLeft(), QSize(DECORATION_SIZE, DECORATION_SIZE));
+ int xspace = DECORATION_SIZE + 8;
+ int ypad = 6;
+ int halfheight = (mainRect.height() - 2*ypad)/2;
+ QRect amountRect(mainRect.left() + xspace, mainRect.top()+ypad, mainRect.width() - xspace, halfheight);
+ QRect addressRect(mainRect.left() + xspace, mainRect.top()+ypad+halfheight, mainRect.width() - xspace, halfheight);
+ icon.paint(painter, decorationRect);
+
+ QDateTime date = index.data(TransactionTableModel::DateRole).toDateTime();
+ QString address = index.data(Qt::DisplayRole).toString();
+ qint64 amount = index.data(TransactionTableModel::AmountRole).toLongLong();
+ bool confirmed = index.data(TransactionTableModel::ConfirmedRole).toBool();
+ QVariant value = index.data(Qt::ForegroundRole);
+ QColor foreground = option.palette.color(QPalette::Text);
+ if(qVariantCanConvert<QColor>(value))
+ {
+ foreground = qvariant_cast<QColor>(value);
+ }
+
+ painter->setPen(foreground);
+ painter->drawText(addressRect, Qt::AlignLeft|Qt::AlignVCenter, address);
+
+ if(amount < 0)
+ {
+ foreground = COLOR_NEGATIVE;
+ }
+ else if(!confirmed)
+ {
+ foreground = COLOR_UNCONFIRMED;
+ }
+ else
+ {
+ foreground = option.palette.color(QPalette::Text);
+ }
+ painter->setPen(foreground);
+ QString amountText = BitcoinUnits::formatWithUnit(unit, amount, true);
+ if(!confirmed)
+ {
+ amountText = QString("[") + amountText + QString("]");
+ }
+ painter->drawText(amountRect, Qt::AlignRight|Qt::AlignVCenter, amountText);
+
+ painter->setPen(option.palette.color(QPalette::Text));
+ painter->drawText(amountRect, Qt::AlignLeft|Qt::AlignVCenter, GUIUtil::dateTimeStr(date));
+
+ painter->restore();
+ }
+
+ inline QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
+ {
+ return QSize(DECORATION_SIZE, DECORATION_SIZE);
+ }
+
+ int unit;
+
+};
+#include "overviewpage.moc"
+
+OverviewPage::OverviewPage(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::OverviewPage),
+ currentBalance(-1),
+ currentUnconfirmedBalance(-1),
+ txdelegate(new TxViewDelegate())
+{
+ ui->setupUi(this);
+
+ // Balance: <balance>
+ ui->labelBalance->setFont(QFont("Monospace", -1, QFont::Bold));
+ ui->labelBalance->setToolTip(tr("Your current balance"));
+ ui->labelBalance->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::TextSelectableByKeyboard);
+
+ // Unconfirmed balance: <balance>
+ ui->labelUnconfirmed->setFont(QFont("Monospace", -1, QFont::Bold));
+ ui->labelUnconfirmed->setToolTip(tr("Total of transactions that have yet to be confirmed, and do not yet count toward the current balance"));
+ ui->labelUnconfirmed->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::TextSelectableByKeyboard);
+
+ ui->labelNumTransactions->setToolTip(tr("Total number of transactions in wallet"));
+
+ // Recent transactions
+ ui->listTransactions->setStyleSheet("QListView { background:transparent }");
+ ui->listTransactions->setItemDelegate(txdelegate);
+ ui->listTransactions->setIconSize(QSize(DECORATION_SIZE, DECORATION_SIZE));
+ ui->listTransactions->setSelectionMode(QAbstractItemView::NoSelection);
+ ui->listTransactions->setMinimumHeight(NUM_ITEMS * (DECORATION_SIZE + 2));
+ ui->listTransactions->setAttribute(Qt::WA_MacShowFocusRect, false);
+
+ connect(ui->listTransactions, SIGNAL(clicked(QModelIndex)), this, SIGNAL(transactionClicked(QModelIndex)));
+}
+
+OverviewPage::~OverviewPage()
+{
+ delete ui;
+}
+
+void OverviewPage::setBalance(qint64 balance, qint64 unconfirmedBalance)
+{
+ int unit = model->getOptionsModel()->getDisplayUnit();
+ currentBalance = balance;
+ currentUnconfirmedBalance = unconfirmedBalance;
+ ui->labelBalance->setText(BitcoinUnits::formatWithUnit(unit, balance));
+ ui->labelUnconfirmed->setText(BitcoinUnits::formatWithUnit(unit, unconfirmedBalance));
+}
+
+void OverviewPage::setNumTransactions(int count)
+{
+ ui->labelNumTransactions->setText(QLocale::system().toString(count));
+}
+
+void OverviewPage::setModel(WalletModel *model)
+{
+ this->model = model;
+ if(model && model->getOptionsModel())
+ {
+ // Set up transaction list
+ TransactionFilterProxy *filter = new TransactionFilterProxy();
+ filter->setSourceModel(model->getTransactionTableModel());
+ filter->setLimit(NUM_ITEMS);
+ filter->setDynamicSortFilter(true);
+ filter->setSortRole(Qt::EditRole);
+ filter->sort(TransactionTableModel::Status, Qt::DescendingOrder);
+
+ ui->listTransactions->setModel(filter);
+ ui->listTransactions->setModelColumn(TransactionTableModel::ToAddress);
+
+ // Keep up to date with wallet
+ setBalance(model->getBalance(), model->getUnconfirmedBalance());
+ connect(model, SIGNAL(balanceChanged(qint64, qint64)), this, SLOT(setBalance(qint64, qint64)));
+
+ setNumTransactions(model->getNumTransactions());
+ connect(model, SIGNAL(numTransactionsChanged(int)), this, SLOT(setNumTransactions(int)));
+
+ connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+ }
+
+ // update the display unit, to not use the default ("BTC")
+ updateDisplayUnit();
+}
+
+void OverviewPage::updateDisplayUnit()
+{
+ if(model && model->getOptionsModel())
+ {
+ if(currentBalance != -1)
+ setBalance(currentBalance, currentUnconfirmedBalance);
+
+ // Update txdelegate->unit with the current unit
+ txdelegate->unit = model->getOptionsModel()->getDisplayUnit();
+
+ ui->listTransactions->update();
+ }
+}
diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h
new file mode 100644
index 0000000000..99fe486494
--- /dev/null
+++ b/src/qt/overviewpage.h
@@ -0,0 +1,46 @@
+#ifndef OVERVIEWPAGE_H
+#define OVERVIEWPAGE_H
+
+#include <QWidget>
+
+QT_BEGIN_NAMESPACE
+class QModelIndex;
+QT_END_NAMESPACE
+
+namespace Ui {
+ class OverviewPage;
+}
+class WalletModel;
+class TxViewDelegate;
+
+/** Overview ("home") page widget */
+class OverviewPage : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit OverviewPage(QWidget *parent = 0);
+ ~OverviewPage();
+
+ void setModel(WalletModel *model);
+
+public slots:
+ void setBalance(qint64 balance, qint64 unconfirmedBalance);
+ void setNumTransactions(int count);
+
+signals:
+ void transactionClicked(const QModelIndex &index);
+
+private:
+ Ui::OverviewPage *ui;
+ WalletModel *model;
+ qint64 currentBalance;
+ qint64 currentUnconfirmedBalance;
+
+ TxViewDelegate *txdelegate;
+
+private slots:
+ void updateDisplayUnit();
+};
+
+#endif // OVERVIEWPAGE_H
diff --git a/src/qt/qvalidatedlineedit.cpp b/src/qt/qvalidatedlineedit.cpp
new file mode 100644
index 0000000000..8ca230c9d7
--- /dev/null
+++ b/src/qt/qvalidatedlineedit.cpp
@@ -0,0 +1,45 @@
+#include "qvalidatedlineedit.h"
+
+#include "guiconstants.h"
+
+QValidatedLineEdit::QValidatedLineEdit(QWidget *parent) :
+ QLineEdit(parent), valid(true)
+{
+ connect(this, SIGNAL(textChanged(QString)), this, SLOT(markValid()));
+}
+
+void QValidatedLineEdit::setValid(bool valid)
+{
+ if(valid == this->valid)
+ {
+ return;
+ }
+
+ if(valid)
+ {
+ setStyleSheet("");
+ }
+ else
+ {
+ setStyleSheet(STYLE_INVALID);
+ }
+ this->valid = valid;
+}
+
+void QValidatedLineEdit::focusInEvent(QFocusEvent *evt)
+{
+ // Clear invalid flag on focus
+ setValid(true);
+ QLineEdit::focusInEvent(evt);
+}
+
+void QValidatedLineEdit::markValid()
+{
+ setValid(true);
+}
+
+void QValidatedLineEdit::clear()
+{
+ setValid(true);
+ QLineEdit::clear();
+}
diff --git a/src/qt/qvalidatedlineedit.h b/src/qt/qvalidatedlineedit.h
new file mode 100644
index 0000000000..66e26be9a3
--- /dev/null
+++ b/src/qt/qvalidatedlineedit.h
@@ -0,0 +1,29 @@
+#ifndef QVALIDATEDLINEEDIT_H
+#define QVALIDATEDLINEEDIT_H
+
+#include <QLineEdit>
+
+/** Line edit that can be marked as "invalid" to show input validation feedback. When marked as invalid,
+ it will get a red background until it is focused.
+ */
+class QValidatedLineEdit : public QLineEdit
+{
+ Q_OBJECT
+public:
+ explicit QValidatedLineEdit(QWidget *parent = 0);
+ void clear();
+
+protected:
+ void focusInEvent(QFocusEvent *evt);
+
+private:
+ bool valid;
+
+public slots:
+ void setValid(bool valid);
+
+private slots:
+ void markValid();
+};
+
+#endif // QVALIDATEDLINEEDIT_H
diff --git a/src/qt/qvaluecombobox.cpp b/src/qt/qvaluecombobox.cpp
new file mode 100644
index 0000000000..c0ad8c12e5
--- /dev/null
+++ b/src/qt/qvaluecombobox.cpp
@@ -0,0 +1,27 @@
+#include "qvaluecombobox.h"
+
+QValueComboBox::QValueComboBox(QWidget *parent) :
+ QComboBox(parent), role(Qt::UserRole)
+{
+ connect(this, SIGNAL(currentIndexChanged(int)), this, SLOT(handleSelectionChanged(int)));
+}
+
+int QValueComboBox::value() const
+{
+ return itemData(currentIndex(), role).toInt();
+}
+
+void QValueComboBox::setValue(int value)
+{
+ setCurrentIndex(findData(value, role));
+}
+
+void QValueComboBox::setRole(int role)
+{
+ this->role = role;
+}
+
+void QValueComboBox::handleSelectionChanged(int idx)
+{
+ emit valueChanged();
+}
diff --git a/src/qt/qvaluecombobox.h b/src/qt/qvaluecombobox.h
new file mode 100644
index 0000000000..11f342d71c
--- /dev/null
+++ b/src/qt/qvaluecombobox.h
@@ -0,0 +1,32 @@
+#ifndef QVALUECOMBOBOX_H
+#define QVALUECOMBOBOX_H
+
+#include <QComboBox>
+
+/* QComboBox that can be used with QDataWidgetMapper to select ordinal values from a model. */
+class QValueComboBox : public QComboBox
+{
+ Q_OBJECT
+ Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged USER true)
+public:
+ explicit QValueComboBox(QWidget *parent = 0);
+
+ int value() const;
+ void setValue(int value);
+
+ /** Specify model role to use as ordinal value */
+ void setRole(int role);
+
+signals:
+ void valueChanged();
+
+public slots:
+
+private:
+ int role;
+
+private slots:
+ void handleSelectionChanged(int idx);
+};
+
+#endif // QVALUECOMBOBOX_H
diff --git a/src/qt/res/bitcoin-qt.rc b/src/qt/res/bitcoin-qt.rc
new file mode 100644
index 0000000000..1a1ab53be4
--- /dev/null
+++ b/src/qt/res/bitcoin-qt.rc
@@ -0,0 +1 @@
+IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico"
diff --git a/src/qt/res/icons/add.png b/src/qt/res/icons/add.png
new file mode 100644
index 0000000000..f98e2a8ca7
--- /dev/null
+++ b/src/qt/res/icons/add.png
Binary files differ
diff --git a/src/qt/res/icons/address-book.png b/src/qt/res/icons/address-book.png
new file mode 100644
index 0000000000..d41dbe6539
--- /dev/null
+++ b/src/qt/res/icons/address-book.png
Binary files differ
diff --git a/src/qt/res/icons/bitcoin.icns b/src/qt/res/icons/bitcoin.icns
new file mode 100644
index 0000000000..3c757080aa
--- /dev/null
+++ b/src/qt/res/icons/bitcoin.icns
Binary files differ
diff --git a/src/qt/res/icons/bitcoin.ico b/src/qt/res/icons/bitcoin.ico
new file mode 100644
index 0000000000..01afd3c6da
--- /dev/null
+++ b/src/qt/res/icons/bitcoin.ico
Binary files differ
diff --git a/src/qt/res/icons/bitcoin.png b/src/qt/res/icons/bitcoin.png
new file mode 100644
index 0000000000..bf43144e5e
--- /dev/null
+++ b/src/qt/res/icons/bitcoin.png
Binary files differ
diff --git a/src/qt/res/icons/bitcoin_testnet.png b/src/qt/res/icons/bitcoin_testnet.png
new file mode 100644
index 0000000000..ee2dc40563
--- /dev/null
+++ b/src/qt/res/icons/bitcoin_testnet.png
Binary files differ
diff --git a/src/qt/res/icons/clock1.png b/src/qt/res/icons/clock1.png
new file mode 100644
index 0000000000..448e47f947
--- /dev/null
+++ b/src/qt/res/icons/clock1.png
Binary files differ
diff --git a/src/qt/res/icons/clock2.png b/src/qt/res/icons/clock2.png
new file mode 100644
index 0000000000..c1a6e99f7f
--- /dev/null
+++ b/src/qt/res/icons/clock2.png
Binary files differ
diff --git a/src/qt/res/icons/clock3.png b/src/qt/res/icons/clock3.png
new file mode 100644
index 0000000000..e429a402cf
--- /dev/null
+++ b/src/qt/res/icons/clock3.png
Binary files differ
diff --git a/src/qt/res/icons/clock4.png b/src/qt/res/icons/clock4.png
new file mode 100644
index 0000000000..ba036f47d3
--- /dev/null
+++ b/src/qt/res/icons/clock4.png
Binary files differ
diff --git a/src/qt/res/icons/clock5.png b/src/qt/res/icons/clock5.png
new file mode 100644
index 0000000000..411d7a78a0
--- /dev/null
+++ b/src/qt/res/icons/clock5.png
Binary files differ
diff --git a/src/qt/res/icons/configure.png b/src/qt/res/icons/configure.png
new file mode 100644
index 0000000000..95bd319ce1
--- /dev/null
+++ b/src/qt/res/icons/configure.png
Binary files differ
diff --git a/src/qt/res/icons/connect0_16.png b/src/qt/res/icons/connect0_16.png
new file mode 100644
index 0000000000..66f3ae4f86
--- /dev/null
+++ b/src/qt/res/icons/connect0_16.png
Binary files differ
diff --git a/src/qt/res/icons/connect1_16.png b/src/qt/res/icons/connect1_16.png
new file mode 100644
index 0000000000..76000beee2
--- /dev/null
+++ b/src/qt/res/icons/connect1_16.png
Binary files differ
diff --git a/src/qt/res/icons/connect2_16.png b/src/qt/res/icons/connect2_16.png
new file mode 100644
index 0000000000..6d9a37281a
--- /dev/null
+++ b/src/qt/res/icons/connect2_16.png
Binary files differ
diff --git a/src/qt/res/icons/connect3_16.png b/src/qt/res/icons/connect3_16.png
new file mode 100644
index 0000000000..a211700785
--- /dev/null
+++ b/src/qt/res/icons/connect3_16.png
Binary files differ
diff --git a/src/qt/res/icons/connect4_16.png b/src/qt/res/icons/connect4_16.png
new file mode 100644
index 0000000000..e2fe97d496
--- /dev/null
+++ b/src/qt/res/icons/connect4_16.png
Binary files differ
diff --git a/src/qt/res/icons/edit.png b/src/qt/res/icons/edit.png
new file mode 100644
index 0000000000..1d69145151
--- /dev/null
+++ b/src/qt/res/icons/edit.png
Binary files differ
diff --git a/src/qt/res/icons/editcopy.png b/src/qt/res/icons/editcopy.png
new file mode 100644
index 0000000000..f882aa2ad8
--- /dev/null
+++ b/src/qt/res/icons/editcopy.png
Binary files differ
diff --git a/src/qt/res/icons/editpaste.png b/src/qt/res/icons/editpaste.png
new file mode 100644
index 0000000000..a192060bdd
--- /dev/null
+++ b/src/qt/res/icons/editpaste.png
Binary files differ
diff --git a/src/qt/res/icons/export.png b/src/qt/res/icons/export.png
new file mode 100644
index 0000000000..1df9c2398d
--- /dev/null
+++ b/src/qt/res/icons/export.png
Binary files differ
diff --git a/src/qt/res/icons/history.png b/src/qt/res/icons/history.png
new file mode 100644
index 0000000000..10ac0e1592
--- /dev/null
+++ b/src/qt/res/icons/history.png
Binary files differ
diff --git a/src/qt/res/icons/key.png b/src/qt/res/icons/key.png
new file mode 100644
index 0000000000..ece0164f77
--- /dev/null
+++ b/src/qt/res/icons/key.png
Binary files differ
diff --git a/src/qt/res/icons/lock_closed.png b/src/qt/res/icons/lock_closed.png
new file mode 100644
index 0000000000..c566510c40
--- /dev/null
+++ b/src/qt/res/icons/lock_closed.png
Binary files differ
diff --git a/src/qt/res/icons/lock_open.png b/src/qt/res/icons/lock_open.png
new file mode 100644
index 0000000000..c98ca8663b
--- /dev/null
+++ b/src/qt/res/icons/lock_open.png
Binary files differ
diff --git a/src/qt/res/icons/notsynced.png b/src/qt/res/icons/notsynced.png
new file mode 100644
index 0000000000..c9e71184c5
--- /dev/null
+++ b/src/qt/res/icons/notsynced.png
Binary files differ
diff --git a/src/qt/res/icons/overview.png b/src/qt/res/icons/overview.png
new file mode 100644
index 0000000000..ee2511f01d
--- /dev/null
+++ b/src/qt/res/icons/overview.png
Binary files differ
diff --git a/src/qt/res/icons/quit.png b/src/qt/res/icons/quit.png
new file mode 100644
index 0000000000..0dde6f395c
--- /dev/null
+++ b/src/qt/res/icons/quit.png
Binary files differ
diff --git a/src/qt/res/icons/receive.png b/src/qt/res/icons/receive.png
new file mode 100644
index 0000000000..53ad1d1565
--- /dev/null
+++ b/src/qt/res/icons/receive.png
Binary files differ
diff --git a/src/qt/res/icons/remove.png b/src/qt/res/icons/remove.png
new file mode 100644
index 0000000000..a44b6d130b
--- /dev/null
+++ b/src/qt/res/icons/remove.png
Binary files differ
diff --git a/src/qt/res/icons/send.png b/src/qt/res/icons/send.png
new file mode 100644
index 0000000000..ceb91ea66d
--- /dev/null
+++ b/src/qt/res/icons/send.png
Binary files differ
diff --git a/src/qt/res/icons/synced.png b/src/qt/res/icons/synced.png
new file mode 100644
index 0000000000..4d7e0e8821
--- /dev/null
+++ b/src/qt/res/icons/synced.png
Binary files differ
diff --git a/src/qt/res/icons/toolbar.png b/src/qt/res/icons/toolbar.png
new file mode 100644
index 0000000000..84c18e29fa
--- /dev/null
+++ b/src/qt/res/icons/toolbar.png
Binary files differ
diff --git a/src/qt/res/icons/toolbar_testnet.png b/src/qt/res/icons/toolbar_testnet.png
new file mode 100644
index 0000000000..90ed6d99f4
--- /dev/null
+++ b/src/qt/res/icons/toolbar_testnet.png
Binary files differ
diff --git a/src/qt/res/icons/transaction0.png b/src/qt/res/icons/transaction0.png
new file mode 100644
index 0000000000..4578666ee4
--- /dev/null
+++ b/src/qt/res/icons/transaction0.png
Binary files differ
diff --git a/src/qt/res/icons/transaction2.png b/src/qt/res/icons/transaction2.png
new file mode 100644
index 0000000000..01bb558a10
--- /dev/null
+++ b/src/qt/res/icons/transaction2.png
Binary files differ
diff --git a/src/qt/res/icons/tx_inout.png b/src/qt/res/icons/tx_inout.png
new file mode 100644
index 0000000000..5f092f97aa
--- /dev/null
+++ b/src/qt/res/icons/tx_inout.png
Binary files differ
diff --git a/src/qt/res/icons/tx_input.png b/src/qt/res/icons/tx_input.png
new file mode 100644
index 0000000000..0f5fea3a84
--- /dev/null
+++ b/src/qt/res/icons/tx_input.png
Binary files differ
diff --git a/src/qt/res/icons/tx_mined.png b/src/qt/res/icons/tx_mined.png
new file mode 100644
index 0000000000..613f30fecc
--- /dev/null
+++ b/src/qt/res/icons/tx_mined.png
Binary files differ
diff --git a/src/qt/res/icons/tx_output.png b/src/qt/res/icons/tx_output.png
new file mode 100644
index 0000000000..9ae39fb329
--- /dev/null
+++ b/src/qt/res/icons/tx_output.png
Binary files differ
diff --git a/src/qt/res/images/about.png b/src/qt/res/images/about.png
new file mode 100644
index 0000000000..c9ab9511ef
--- /dev/null
+++ b/src/qt/res/images/about.png
Binary files differ
diff --git a/src/qt/res/images/splash2.jpg b/src/qt/res/images/splash2.jpg
new file mode 100644
index 0000000000..3846e6f68d
--- /dev/null
+++ b/src/qt/res/images/splash2.jpg
Binary files differ
diff --git a/src/qt/res/movies/update_spinner.mng b/src/qt/res/movies/update_spinner.mng
new file mode 100644
index 0000000000..7df3baac6f
--- /dev/null
+++ b/src/qt/res/movies/update_spinner.mng
Binary files differ
diff --git a/src/qt/res/src/bitcoin.svg b/src/qt/res/src/bitcoin.svg
new file mode 100644
index 0000000000..96f10178a2
--- /dev/null
+++ b/src/qt/res/src/bitcoin.svg
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ width="256"
+ height="256"
+ sodipodi:docname="bitcoin.svg"
+ inkscape:export-filename="/store/orion/projects/bitcoin/BC_Logo_icon32.png"
+ inkscape:export-xdpi="11.25"
+ inkscape:export-ydpi="11.25"
+ style="display:inline">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6">
+ <linearGradient
+ id="linearGradient3800">
+ <stop
+ style="stop-color:#fbba6c;stop-opacity:1;"
+ offset="0"
+ id="stop3802" />
+ <stop
+ style="stop-color:#f89825;stop-opacity:1;"
+ offset="1"
+ id="stop3804" />
+ </linearGradient>
+ <filter
+ inkscape:collect="always"
+ id="filter3788">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="7.7328864"
+ id="feGaussianBlur3790" />
+ </filter>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3800"
+ id="radialGradient3806"
+ cx="137.01819"
+ cy="136.81316"
+ fx="137.01819"
+ fy="136.81316"
+ r="120.22619"
+ gradientTransform="matrix(1,0,0,0.99768745,0,0.29784356)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1204"
+ inkscape:window-height="972"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="1"
+ inkscape:cx="-54.927212"
+ inkscape:cy="128"
+ inkscape:window-x="238"
+ inkscape:window-y="143"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Shadow"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:nodetypes="sssssssssssscssssscsssscscssssssssssscscsssssssscscssssscssscssssssscsssssssss"
+ inkscape:connector-curvature="0"
+ id="path2986"
+ d="M 111.77934,251.6677 C 67.147549,243.82973 30.788461,211.94464 17.111244,168.64858 7.1011053,136.9609 11.409199,100.0445 28.433065,71.630835 45.23974,43.579693 71.151762,24.409692 103.78036,15.888094 c 12.1652,-3.177178 33.00458,-3.99623 46.6577,-1.833789 45.59908,7.22219 82.56109,39.080427 96.48709,83.164011 10.01013,31.687684 5.70204,68.604084 -11.32183,97.017744 -16.8025,28.04418 -42.64131,47.16473 -75.34729,55.75648 -7.52834,1.97768 -11.60054,2.41566 -24.95273,2.68377 -10.90952,0.21906 -18.34974,-0.0999 -23.52396,-1.00861 z m 20.17619,-31.35425 c 0.63075,-2.39846 2.14458,-8.28561 3.36407,-13.08254 1.56481,-6.15521 2.69488,-8.60563 3.84031,-8.32722 0.89267,0.21696 7.39067,0.68131 14.43998,1.03189 16.31195,0.81124 23.9944,-1.14509 31.43693,-8.00537 7.63877,-7.04117 11.30337,-15.63267 11.82635,-27.72636 0.37592,-8.69327 0.10152,-10.44523 -2.27687,-14.53617 -1.48738,-2.55836 -5.17935,-6.48313 -8.20438,-8.7217 l -5.50006,-4.07013 4.37131,-1.87838 c 9.83682,-4.22697 14.47489,-11.84516 15.1401,-24.86816 0.41587,-8.14174 0.12573,-9.95645 -2.32406,-14.536178 -3.41249,-6.379435 -11.7129,-12.875301 -21.81801,-17.074696 -4.15735,-1.727672 -7.66196,-3.187464 -7.78803,-3.243983 -0.12607,-0.05651 1.28534,-6.088871 3.13645,-13.405229 1.85112,-7.316357 3.26253,-13.372021 3.13645,-13.457031 -0.12607,-0.08501 -2.84573,-0.778731 -6.04368,-1.541604 -3.19796,-0.762872 -6.6666,-1.640092 -7.70811,-1.949379 -1.54868,-0.459905 -2.47321,1.773902 -5.07541,12.262964 -2.215,8.928331 -3.69157,12.825303 -4.85951,12.825303 -2.30435,0 -12.01076,-2.489633 -12.01076,-3.080685 0,-0.263336 1.37739,-5.975631 3.06085,-12.693987 1.68345,-6.718356 2.78086,-12.49516 2.43868,-12.837341 -1.06646,-1.066455 -13.66473,-4.07084 -14.61292,-3.484827 -0.49474,0.305758 -2.13899,5.806491 -3.65393,12.223852 -1.51493,6.417361 -3.0693,12.177423 -3.45416,12.800138 -0.42537,0.68826 -6.84309,-0.416984 -16.36715,-2.818708 -8.617084,-2.173005 -15.989649,-3.583696 -16.383486,-3.13487 -0.393848,0.448826 -1.334199,3.432558 -2.089673,6.630515 -0.755474,3.197957 -1.623352,6.656241 -1.928612,7.685075 -0.438573,1.478093 0.970946,2.194444 6.717302,3.413902 7.407149,1.571906 12.549199,5.114005 12.549199,8.644526 0,3.559986 -18.770806,76.736553 -20.092504,78.329103 -1.007682,1.21419 -2.807318,1.40957 -7.196833,0.78135 -11.551776,-1.65329 -10.897277,-1.95681 -14.648875,6.7937 -1.878049,4.38054 -3.41465,8.32832 -3.41465,8.77286 0,0.44453 6.14881,2.29784 13.664008,4.11848 7.515199,1.82065 14.792647,3.72851 16.172114,4.23971 l 2.508106,0.92945 -3.31877,13.11716 c -1.825323,7.21442 -3.215633,13.21726 -3.089563,13.33965 0.549874,0.53382 15.058297,4.01313 15.382497,3.68892 0.19792,-0.19791 1.74688,-5.83164 3.44215,-12.51942 1.69526,-6.68778 3.30839,-12.52544 3.58472,-12.97256 0.443,-0.71676 11.73522,1.68597 12.76544,2.7162 0.21981,0.21981 -1.08467,6.26629 -2.89884,13.43664 l -3.29849,13.03696 4.8136,1.23571 c 2.6475,0.67965 5.33693,1.42786 5.97652,1.66271 3.63321,1.33406 5.19855,0.40079 6.2902,-3.75024 z m 0.68716,-43.88623 c -0.63959,-0.21166 -5.21848,-1.29512 -10.17531,-2.40768 -4.95684,-1.11255 -9.01243,-2.23295 -9.01243,-2.48975 0,-0.65492 8.11353,-33.1852 8.69895,-34.87745 0.34957,-1.01046 3.32218,-0.62569 10.96233,1.41895 12.84914,3.43866 18.00073,5.54314 23.11146,9.44128 8.35514,6.37277 10.49752,14.36232 5.75489,21.46161 -3.94917,5.91153 -9.15813,8.03413 -19.45529,7.92788 -4.79693,-0.0496 -9.245,-0.26317 -9.8846,-0.47484 z m 2.50991,-54.7082 c -3.73627,-0.93479 -7.21128,-1.958 -7.72221,-2.27376 -0.72057,-0.44534 6.3168,-31.740173 7.3756,-32.798964 0.64276,-0.642776 19.09068,4.708848 22.8588,6.631196 2.34875,1.19824 5.92162,4.059214 7.93975,6.357724 2.94919,3.358944 3.66929,5.201504 3.66929,9.388734 0,4.31035 -0.68714,5.95944 -3.98073,9.55341 -3.93586,4.2948 -4.08991,4.34657 -13.664,4.59252 -5.49512,0.14117 -12.62142,-0.48635 -16.4765,-1.45086 z"
+ style="opacity:0.8176923;fill:#000000;fill-opacity:1;filter:url(#filter3788)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Front"
+ style="display:inline">
+ <path
+ style="fill:url(#radialGradient3806);fill-opacity:1;display:inline"
+ d="M 107.77934,247.6677 C 63.147549,239.82973 26.788461,207.94464 13.111244,164.64858 3.1011053,132.9609 7.4091993,96.044496 24.433065,67.630835 41.23974,39.579693 67.151762,20.409692 99.780356,11.888094 111.94556,8.7109163 132.78494,7.8918643 146.43806,10.054305 c 45.59908,7.22219 82.56109,39.080427 96.48709,83.164011 10.01013,31.687684 5.70204,68.604084 -11.32183,97.017744 -16.8025,28.04418 -42.64131,47.16473 -75.34729,55.75648 -7.52834,1.97768 -11.60054,2.41566 -24.95273,2.68377 -10.90952,0.21906 -18.34974,-0.0999 -23.52396,-1.00861 z m 20.17619,-31.35425 c 0.63075,-2.39846 2.14458,-8.28561 3.36407,-13.08254 1.56481,-6.15521 2.69488,-8.60563 3.84031,-8.32722 0.89267,0.21696 7.39067,0.68131 14.43998,1.03189 16.31195,0.81124 23.9944,-1.14509 31.43693,-8.00537 7.63877,-7.04117 11.30337,-15.63267 11.82635,-27.72636 0.37592,-8.69327 0.10152,-10.44523 -2.27687,-14.53617 -1.48738,-2.55836 -5.17935,-6.48313 -8.20438,-8.7217 l -5.50006,-4.07013 4.37131,-1.87838 c 9.83682,-4.22697 14.47489,-11.84516 15.1401,-24.86816 0.41587,-8.141744 0.12573,-9.956454 -2.32406,-14.536178 -3.41249,-6.379435 -11.7129,-12.875301 -21.81801,-17.074696 -4.15735,-1.727672 -7.66196,-3.187464 -7.78803,-3.243983 -0.12607,-0.05651 1.28534,-6.088871 3.13645,-13.405229 1.85112,-7.316357 3.26253,-13.372021 3.13645,-13.457031 -0.12607,-0.08501 -2.84573,-0.778731 -6.04368,-1.541604 -3.19796,-0.762872 -6.6666,-1.640092 -7.70811,-1.949379 -1.54868,-0.459905 -2.47321,1.773902 -5.07541,12.262964 -2.215,8.928331 -3.69157,12.825303 -4.85951,12.825303 -2.30435,0 -12.01076,-2.489633 -12.01076,-3.080685 0,-0.263336 1.37739,-5.975631 3.06085,-12.693987 1.68345,-6.718356 2.78086,-12.49516 2.43868,-12.837341 -1.06646,-1.066455 -13.66473,-4.07084 -14.61292,-3.484827 -0.49474,0.305758 -2.13899,5.806491 -3.65393,12.223852 -1.51493,6.417361 -3.0693,12.177423 -3.45416,12.800138 -0.42537,0.68826 -6.84309,-0.416984 -16.36715,-2.818708 -8.617084,-2.173005 -15.989649,-3.583696 -16.383486,-3.13487 -0.393848,0.448826 -1.334199,3.432558 -2.089673,6.630515 -0.755474,3.197957 -1.623352,6.656241 -1.928612,7.685075 -0.438573,1.478093 0.970946,2.194444 6.717302,3.413902 7.407145,1.571906 12.549199,5.114005 12.549199,8.644526 0,3.559986 -18.770806,76.736553 -20.092504,78.329103 -1.007682,1.21419 -2.807318,1.40957 -7.196833,0.78135 -11.551776,-1.65329 -10.897277,-1.95681 -14.648875,6.7937 -1.878049,4.38054 -3.41465,8.32832 -3.41465,8.77286 0,0.44453 6.14881,2.29784 13.664008,4.11848 7.515199,1.82065 14.792647,3.72851 16.172114,4.23971 l 2.508106,0.92945 -3.31877,13.11716 c -1.825323,7.21442 -3.215633,13.21726 -3.089563,13.33965 0.549874,0.53382 15.058293,4.01313 15.382493,3.68892 0.19792,-0.19791 1.74688,-5.83164 3.442154,-12.51942 1.69526,-6.68778 3.30839,-12.52544 3.58472,-12.97256 0.443,-0.71676 11.73522,1.68597 12.76544,2.7162 0.21981,0.21981 -1.08467,6.26629 -2.89884,13.43664 l -3.29849,13.03696 4.8136,1.23571 c 2.6475,0.67965 5.33693,1.42786 5.97652,1.66271 3.63321,1.33406 5.19855,0.40079 6.2902,-3.75024 z m 0.68716,-43.88623 c -0.63959,-0.21166 -5.21848,-1.29512 -10.17531,-2.40768 -4.95684,-1.11255 -9.01243,-2.23295 -9.01243,-2.48975 0,-0.65492 8.11353,-33.1852 8.69895,-34.87745 0.34957,-1.01046 3.32218,-0.62569 10.96233,1.41895 12.84914,3.43866 18.00073,5.54314 23.11146,9.44128 8.35514,6.37277 10.49752,14.36232 5.75489,21.46161 -3.94917,5.91153 -9.15813,8.03413 -19.45529,7.92788 -4.79693,-0.0496 -9.245,-0.26317 -9.8846,-0.47484 z m 2.50991,-54.7082 c -3.73627,-0.93479 -7.21128,-1.958 -7.72221,-2.27376 -0.72057,-0.44534 6.3168,-31.740173 7.3756,-32.798964 0.64276,-0.642776 19.09068,4.708848 22.8588,6.631196 2.34875,1.19824 5.92162,4.059214 7.93975,6.357724 2.94919,3.35894 3.66929,5.201504 3.66929,9.388734 0,4.31035 -0.68714,5.95944 -3.98073,9.55341 -3.93586,4.2948 -4.08991,4.34657 -13.664,4.59252 -5.49512,0.14117 -12.62142,-0.48635 -16.4765,-1.45086 z"
+ id="path2987"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssssscssssscsssscscssssssssssscscsssssssscscssssscssscssssssscsssssssss"
+ inkscape:export-xdpi="11.98"
+ inkscape:export-ydpi="11.98" />
+ </g>
+</svg>
diff --git a/src/qt/res/src/clock1.svg b/src/qt/res/src/clock1.svg
new file mode 100644
index 0000000000..793dc7f91c
--- /dev/null
+++ b/src/qt/res/src/clock1.svg
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg2987"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="clock0.svg">
+ <defs
+ id="defs2989">
+ <linearGradient
+ id="linearGradient4465">
+ <stop
+ id="stop4467"
+ offset="0"
+ style="stop-color:#c1c1c1;stop-opacity:1;" />
+ <stop
+ id="stop4469"
+ offset="1"
+ style="stop-color:#8c8c8c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4424">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4426" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:1;"
+ offset="1"
+ id="stop4428" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4357">
+ <stop
+ id="stop4359"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ff84a6;stop-opacity:0.49803922;"
+ offset="0.36363637"
+ id="stop4473" />
+ <stop
+ id="stop4361"
+ offset="1"
+ style="stop-color:#ff0a4d;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4347">
+ <stop
+ id="stop4349"
+ offset="0"
+ style="stop-color:#909090;stop-opacity:1;" />
+ <stop
+ id="stop4351"
+ offset="1"
+ style="stop-color:#3c3c3c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3767">
+ <stop
+ style="stop-color:#ff8282;stop-opacity:1;"
+ offset="0"
+ id="stop3769" />
+ <stop
+ style="stop-color:#ff1919;stop-opacity:1;"
+ offset="1"
+ id="stop3771" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4347"
+ id="linearGradient3779"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ id="filter4339">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.3240906"
+ id="feGaussianBlur4341" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4345"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4424"
+ id="linearGradient4430"
+ x1="10.740074"
+ y1="16.148634"
+ x2="6.3055735"
+ y2="-1.2798394"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4357"
+ id="radialGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5712985,0.01074232,-0.01353758,1.9801676,-4.5655476,-0.68355868)"
+ cx="8.1975746"
+ cy="-0.080271922"
+ fx="8.1975746"
+ fy="-0.080271922"
+ r="7.7781744" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient4471"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="0.31530906"
+ inkscape:cy="12.478576"
+ inkscape:current-layer="layer4"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1127"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata2992">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Shadow"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3779);fill-opacity:1;stroke:none;display:inline;filter:url(#filter4339)"
+ id="path2997"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ transform="translate(0,-0.08838835)" />
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="Clock"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ sodipodi:ry="7.7781744"
+ sodipodi:rx="7.7781744"
+ sodipodi:cy="8.1334372"
+ sodipodi:cx="8.0433397"
+ id="path4343"
+ style="fill:url(#linearGradient4345);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Block"
+ sodipodi:insensitive="true"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient4471);fill-opacity:1;stroke:none;display:inline"
+ id="path4462"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="M 14.4287,3.6919089 A 7.7781744,7.7781744 0 1 1 8.0707322,0.35531099 L 8.0433397,8.1334372 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ sodipodi:start="5.675432"
+ sodipodi:end="10.999096" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Ticks"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ id="use4309"
+ transform="matrix(0.77323696,-0.44642857,0.44642857,0.77323696,-1.9715899,5.5529328)"
+ style="fill:url(#linearGradient4430);fill-opacity:1;stroke:none"
+ d="M 8.875,2.03125 C 8.875,2.5317581 8.4832492,2.9375 8,2.9375 7.5167508,2.9375 7.125,2.5317581 7.125,2.03125 7.125,1.5307419 7.5167508,1.125 8,1.125 c 0.4832492,0 0.875,0.4057419 0.875,0.90625 z M 5.8484195,2.6358993 C 6.0986735,3.069352 5.9622783,3.6166102 5.5437722,3.8582348 5.1252661,4.0998594 4.583129,3.944352 4.332875,3.5108993 4.082621,3.0774465 4.2190162,2.5301884 4.6375222,2.2885638 5.0560283,2.0469392 5.5981654,2.2024466 5.8484195,2.6358993 z M 3.5296488,4.6728304 C 3.9631015,4.9230844 4.1186089,5.4652215 3.8769843,5.8837276 3.6353597,6.3022337 3.0881015,6.4386289 2.6546488,6.1883748 2.221196,5.9381208 2.0656886,5.3959837 2.3073132,4.9774776 2.5489379,4.5589715 3.096196,4.4225763 3.5296488,4.6728304 z m -0.989649,2.9234201 c 0.5005081,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.4057419,0.875 -0.90625,0.875 -0.5005081,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.4057419,-0.875 0.90625,-0.875 z M 3.144649,10.622831 c 0.4334527,-0.250254 0.9807109,-0.113859 1.2223355,0.304647 0.2416246,0.418506 0.086117,0.960643 -0.3473355,1.210897 C 3.5861963,12.388629 3.0389381,12.252234 2.7973135,11.833728 2.5556889,11.415222 2.7111963,10.873085 3.144649,10.622831 z m 2.036931,2.31877 c 0.2502541,-0.433452 0.7923912,-0.58896 1.2108973,-0.347335 0.4185061,0.241624 0.5549012,0.788883 0.3046472,1.222335 -0.2502541,0.433453 -0.7923912,0.58896 -1.2108972,0.347336 C 5.0677212,13.922312 4.931326,13.375054 5.18158,12.941601 z m 2.9234201,0.989649 c 0,-0.500508 0.3917508,-0.90625 0.875,-0.90625 0.4832492,0 0.875,0.405742 0.875,0.90625 0,0.500509 -0.3917508,0.90625 -0.875,0.90625 -0.4832492,0 -0.875,-0.405741 -0.875,-0.90625 z M 11.13158,13.326601 c -0.250254,-0.433453 -0.113859,-0.980711 0.304647,-1.222335 0.418507,-0.241625 0.960644,-0.08612 1.210898,0.347335 0.250254,0.433453 0.113859,0.980711 -0.304648,1.222336 -0.418506,0.241624 -0.960643,0.08612 -1.210897,-0.347336 z m 2.318771,-2.036931 c -0.433453,-0.250254 -0.58896,-0.792391 -0.347335,-1.210897 0.241624,-0.4185064 0.788882,-0.5549016 1.222335,-0.3046476 0.433453,0.2502536 0.58896,0.7923916 0.347336,1.2108976 -0.241625,0.418506 -0.788883,0.554901 -1.222336,0.304647 z M 14.44,8.36625 c -0.500508,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.405742,-0.875 0.90625,-0.875 0.500508,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.405742,0.875 -0.90625,0.875 z M 13.835351,5.3396697 C 13.401898,5.5899238 12.85464,5.4535286 12.613016,5.0350225 12.371391,4.6165164 12.526898,4.0743793 12.960351,3.8241252 c 0.433453,-0.250254 0.980711,-0.1138588 1.222336,0.3046473 0.241624,0.4185061 0.08612,0.9606432 -0.347336,1.2108972 z M 11.79842,3.0208989 C 11.548166,3.4543516 11.006029,3.609859 10.587523,3.3682344 10.169017,3.1266098 10.032621,2.5793516 10.282875,2.1458989 10.533129,1.7124461 11.075267,1.5569388 11.493773,1.7985634 11.912279,2.040188 12.048674,2.5874462 11.79842,3.0208989 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7.875,2.8017767 0,5.25"
+ id="path4436"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 7.7781746,7.4629419 10.783378,7.6397186"
+ id="path4438"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Shine"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4440);fill-opacity:1;stroke:none"
+ id="path4353"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.3686199"
+ sodipodi:ry="7.4368792"
+ d="m 15.41196,8.1334372 a 7.3686199,7.4368792 0 1 1 -14.73724019,0 7.3686199,7.4368792 0 1 1 14.73724019,0 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)" />
+ </g>
+</svg>
diff --git a/src/qt/res/src/clock2.svg b/src/qt/res/src/clock2.svg
new file mode 100644
index 0000000000..6a78adf700
--- /dev/null
+++ b/src/qt/res/src/clock2.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg2987"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="clock0.svg">
+ <defs
+ id="defs2989">
+ <linearGradient
+ id="linearGradient4465">
+ <stop
+ id="stop4467"
+ offset="0"
+ style="stop-color:#c1c1c1;stop-opacity:1;" />
+ <stop
+ id="stop4469"
+ offset="1"
+ style="stop-color:#8c8c8c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4424">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4426" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:1;"
+ offset="1"
+ id="stop4428" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4357">
+ <stop
+ id="stop4359"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ff848d;stop-opacity:0.49803922;"
+ offset="0.36363637"
+ id="stop4473" />
+ <stop
+ id="stop4361"
+ offset="1"
+ style="stop-color:#ff0a1b;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4347">
+ <stop
+ id="stop4349"
+ offset="0"
+ style="stop-color:#909090;stop-opacity:1;" />
+ <stop
+ id="stop4351"
+ offset="1"
+ style="stop-color:#3c3c3c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3767">
+ <stop
+ style="stop-color:#ffae82;stop-opacity:1;"
+ offset="0"
+ id="stop3769" />
+ <stop
+ style="stop-color:#ff6a19;stop-opacity:1;"
+ offset="1"
+ id="stop3771" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4347"
+ id="linearGradient3779"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ id="filter4339">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.3240906"
+ id="feGaussianBlur4341" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4345"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4424"
+ id="linearGradient4430"
+ x1="10.740074"
+ y1="16.148634"
+ x2="6.3055735"
+ y2="-1.2798394"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4357"
+ id="radialGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5712985,0.01074232,-0.01353758,1.9801676,-4.5655476,-0.68355868)"
+ cx="8.1975746"
+ cy="-0.080271922"
+ fx="8.1975746"
+ fy="-0.080271922"
+ r="7.7781744" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient4471"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="10.569917"
+ inkscape:cy="10.828475"
+ inkscape:current-layer="layer5"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1127"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata2992">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Shadow"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3779);fill-opacity:1;stroke:none;display:inline;filter:url(#filter4339)"
+ id="path2997"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ transform="translate(0,-0.08838835)" />
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="Clock"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ sodipodi:ry="7.7781744"
+ sodipodi:rx="7.7781744"
+ sodipodi:cy="8.1334372"
+ sodipodi:cx="8.0433397"
+ id="path4343"
+ style="fill:url(#linearGradient4345);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Block"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient4471);fill-opacity:1;stroke:none;display:inline"
+ id="path4462"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="M 15.197954,11.184912 A 7.7781744,7.7781744 0 1 1 8.0707322,0.35531099 L 8.0433397,8.1334372 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ sodipodi:start="0.4031442"
+ sodipodi:end="4.7159107" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Ticks"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ id="use4309"
+ transform="matrix(0.77323696,-0.44642857,0.44642857,0.77323696,-1.9715899,5.5529328)"
+ style="fill:url(#linearGradient4430);fill-opacity:1;stroke:none"
+ d="M 8.875,2.03125 C 8.875,2.5317581 8.4832492,2.9375 8,2.9375 7.5167508,2.9375 7.125,2.5317581 7.125,2.03125 7.125,1.5307419 7.5167508,1.125 8,1.125 c 0.4832492,0 0.875,0.4057419 0.875,0.90625 z M 5.8484195,2.6358993 C 6.0986735,3.069352 5.9622783,3.6166102 5.5437722,3.8582348 5.1252661,4.0998594 4.583129,3.944352 4.332875,3.5108993 4.082621,3.0774465 4.2190162,2.5301884 4.6375222,2.2885638 5.0560283,2.0469392 5.5981654,2.2024466 5.8484195,2.6358993 z M 3.5296488,4.6728304 C 3.9631015,4.9230844 4.1186089,5.4652215 3.8769843,5.8837276 3.6353597,6.3022337 3.0881015,6.4386289 2.6546488,6.1883748 2.221196,5.9381208 2.0656886,5.3959837 2.3073132,4.9774776 2.5489379,4.5589715 3.096196,4.4225763 3.5296488,4.6728304 z m -0.989649,2.9234201 c 0.5005081,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.4057419,0.875 -0.90625,0.875 -0.5005081,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.4057419,-0.875 0.90625,-0.875 z M 3.144649,10.622831 c 0.4334527,-0.250254 0.9807109,-0.113859 1.2223355,0.304647 0.2416246,0.418506 0.086117,0.960643 -0.3473355,1.210897 C 3.5861963,12.388629 3.0389381,12.252234 2.7973135,11.833728 2.5556889,11.415222 2.7111963,10.873085 3.144649,10.622831 z m 2.036931,2.31877 c 0.2502541,-0.433452 0.7923912,-0.58896 1.2108973,-0.347335 0.4185061,0.241624 0.5549012,0.788883 0.3046472,1.222335 -0.2502541,0.433453 -0.7923912,0.58896 -1.2108972,0.347336 C 5.0677212,13.922312 4.931326,13.375054 5.18158,12.941601 z m 2.9234201,0.989649 c 0,-0.500508 0.3917508,-0.90625 0.875,-0.90625 0.4832492,0 0.875,0.405742 0.875,0.90625 0,0.500509 -0.3917508,0.90625 -0.875,0.90625 -0.4832492,0 -0.875,-0.405741 -0.875,-0.90625 z M 11.13158,13.326601 c -0.250254,-0.433453 -0.113859,-0.980711 0.304647,-1.222335 0.418507,-0.241625 0.960644,-0.08612 1.210898,0.347335 0.250254,0.433453 0.113859,0.980711 -0.304648,1.222336 -0.418506,0.241624 -0.960643,0.08612 -1.210897,-0.347336 z m 2.318771,-2.036931 c -0.433453,-0.250254 -0.58896,-0.792391 -0.347335,-1.210897 0.241624,-0.4185064 0.788882,-0.5549016 1.222335,-0.3046476 0.433453,0.2502536 0.58896,0.7923916 0.347336,1.2108976 -0.241625,0.418506 -0.788883,0.554901 -1.222336,0.304647 z M 14.44,8.36625 c -0.500508,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.405742,-0.875 0.90625,-0.875 0.500508,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.405742,0.875 -0.90625,0.875 z M 13.835351,5.3396697 C 13.401898,5.5899238 12.85464,5.4535286 12.613016,5.0350225 12.371391,4.6165164 12.526898,4.0743793 12.960351,3.8241252 c 0.433453,-0.250254 0.980711,-0.1138588 1.222336,0.3046473 0.241624,0.4185061 0.08612,0.9606432 -0.347336,1.2108972 z M 11.79842,3.0208989 C 11.548166,3.4543516 11.006029,3.609859 10.587523,3.3682344 10.169017,3.1266098 10.032621,2.5793516 10.282875,2.1458989 10.533129,1.7124461 11.075267,1.5569388 11.493773,1.7985634 11.912279,2.040188 12.048674,2.5874462 11.79842,3.0208989 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7.875,2.8017767 0,5.25"
+ id="path4436"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 7.7781746,7.4629419 10.783378,7.6397186"
+ id="path4438"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Shine"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4440);fill-opacity:1;stroke:none"
+ id="path4353"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.3686199"
+ sodipodi:ry="7.4368792"
+ d="m 15.41196,8.1334372 a 7.3686199,7.4368792 0 1 1 -14.73724019,0 7.3686199,7.4368792 0 1 1 14.73724019,0 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)" />
+ </g>
+</svg>
diff --git a/src/qt/res/src/clock3.svg b/src/qt/res/src/clock3.svg
new file mode 100644
index 0000000000..09ccc2549f
--- /dev/null
+++ b/src/qt/res/src/clock3.svg
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg2987"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="clock1.svg">
+ <defs
+ id="defs2989">
+ <linearGradient
+ id="linearGradient4465">
+ <stop
+ id="stop4467"
+ offset="0"
+ style="stop-color:#c1c1c1;stop-opacity:1;" />
+ <stop
+ id="stop4469"
+ offset="1"
+ style="stop-color:#8c8c8c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4424">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4426" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:1;"
+ offset="1"
+ id="stop4428" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4357">
+ <stop
+ id="stop4359"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffa184;stop-opacity:0.49803922;"
+ offset="0.36363637"
+ id="stop4473" />
+ <stop
+ id="stop4361"
+ offset="1"
+ style="stop-color:#ff440a;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4347">
+ <stop
+ id="stop4349"
+ offset="0"
+ style="stop-color:#909090;stop-opacity:1;" />
+ <stop
+ id="stop4351"
+ offset="1"
+ style="stop-color:#3c3c3c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3767">
+ <stop
+ style="stop-color:#ffda82;stop-opacity:1;"
+ offset="0"
+ id="stop3769" />
+ <stop
+ style="stop-color:#ffbb19;stop-opacity:1;"
+ offset="1"
+ id="stop3771" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4347"
+ id="linearGradient3779"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ id="filter4339">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.3240906"
+ id="feGaussianBlur4341" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4345"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4424"
+ id="linearGradient4430"
+ x1="10.740074"
+ y1="16.148634"
+ x2="6.3055735"
+ y2="-1.2798394"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4357"
+ id="radialGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5712985,0.01074232,-0.01353758,1.9801676,-4.5655476,-0.68355868)"
+ cx="8.1975746"
+ cy="-0.080271922"
+ fx="8.1975746"
+ fy="-0.080271922"
+ r="7.7781744" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient4471"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="23.894737"
+ inkscape:cx="16"
+ inkscape:cy="-1"
+ inkscape:current-layer="layer5"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1127"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata2992">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Shadow"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3779);fill-opacity:1;stroke:none;display:inline;filter:url(#filter4339)"
+ id="path2997"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ transform="translate(0,-0.08838835)" />
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="Clock"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ sodipodi:ry="7.7781744"
+ sodipodi:rx="7.7781744"
+ sodipodi:cy="8.1334372"
+ sodipodi:cx="8.0433397"
+ id="path4343"
+ style="fill:url(#linearGradient4345);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Block"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient4471);fill-opacity:1;stroke:none;display:inline"
+ id="path4462"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="M 8.2135533,15.909749 A 7.7781744,7.7781744 0 1 1 8.0707322,0.35531099 L 8.0433397,8.1334372 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ sodipodi:start="1.5489111"
+ sodipodi:end="4.7159107" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Ticks"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ id="use4309"
+ transform="matrix(0.77323696,-0.44642857,0.44642857,0.77323696,-1.9715899,5.5529328)"
+ style="fill:url(#linearGradient4430);fill-opacity:1;stroke:none"
+ d="M 8.875,2.03125 C 8.875,2.5317581 8.4832492,2.9375 8,2.9375 7.5167508,2.9375 7.125,2.5317581 7.125,2.03125 7.125,1.5307419 7.5167508,1.125 8,1.125 c 0.4832492,0 0.875,0.4057419 0.875,0.90625 z M 5.8484195,2.6358993 C 6.0986735,3.069352 5.9622783,3.6166102 5.5437722,3.8582348 5.1252661,4.0998594 4.583129,3.944352 4.332875,3.5108993 4.082621,3.0774465 4.2190162,2.5301884 4.6375222,2.2885638 5.0560283,2.0469392 5.5981654,2.2024466 5.8484195,2.6358993 z M 3.5296488,4.6728304 C 3.9631015,4.9230844 4.1186089,5.4652215 3.8769843,5.8837276 3.6353597,6.3022337 3.0881015,6.4386289 2.6546488,6.1883748 2.221196,5.9381208 2.0656886,5.3959837 2.3073132,4.9774776 2.5489379,4.5589715 3.096196,4.4225763 3.5296488,4.6728304 z m -0.989649,2.9234201 c 0.5005081,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.4057419,0.875 -0.90625,0.875 -0.5005081,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.4057419,-0.875 0.90625,-0.875 z M 3.144649,10.622831 c 0.4334527,-0.250254 0.9807109,-0.113859 1.2223355,0.304647 0.2416246,0.418506 0.086117,0.960643 -0.3473355,1.210897 C 3.5861963,12.388629 3.0389381,12.252234 2.7973135,11.833728 2.5556889,11.415222 2.7111963,10.873085 3.144649,10.622831 z m 2.036931,2.31877 c 0.2502541,-0.433452 0.7923912,-0.58896 1.2108973,-0.347335 0.4185061,0.241624 0.5549012,0.788883 0.3046472,1.222335 -0.2502541,0.433453 -0.7923912,0.58896 -1.2108972,0.347336 C 5.0677212,13.922312 4.931326,13.375054 5.18158,12.941601 z m 2.9234201,0.989649 c 0,-0.500508 0.3917508,-0.90625 0.875,-0.90625 0.4832492,0 0.875,0.405742 0.875,0.90625 0,0.500509 -0.3917508,0.90625 -0.875,0.90625 -0.4832492,0 -0.875,-0.405741 -0.875,-0.90625 z M 11.13158,13.326601 c -0.250254,-0.433453 -0.113859,-0.980711 0.304647,-1.222335 0.418507,-0.241625 0.960644,-0.08612 1.210898,0.347335 0.250254,0.433453 0.113859,0.980711 -0.304648,1.222336 -0.418506,0.241624 -0.960643,0.08612 -1.210897,-0.347336 z m 2.318771,-2.036931 c -0.433453,-0.250254 -0.58896,-0.792391 -0.347335,-1.210897 0.241624,-0.4185064 0.788882,-0.5549016 1.222335,-0.3046476 0.433453,0.2502536 0.58896,0.7923916 0.347336,1.2108976 -0.241625,0.418506 -0.788883,0.554901 -1.222336,0.304647 z M 14.44,8.36625 c -0.500508,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.405742,-0.875 0.90625,-0.875 0.500508,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.405742,0.875 -0.90625,0.875 z M 13.835351,5.3396697 C 13.401898,5.5899238 12.85464,5.4535286 12.613016,5.0350225 12.371391,4.6165164 12.526898,4.0743793 12.960351,3.8241252 c 0.433453,-0.250254 0.980711,-0.1138588 1.222336,0.3046473 0.241624,0.4185061 0.08612,0.9606432 -0.347336,1.2108972 z M 11.79842,3.0208989 C 11.548166,3.4543516 11.006029,3.609859 10.587523,3.3682344 10.169017,3.1266098 10.032621,2.5793516 10.282875,2.1458989 10.533129,1.7124461 11.075267,1.5569388 11.493773,1.7985634 11.912279,2.040188 12.048674,2.5874462 11.79842,3.0208989 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7.875,2.8017767 0,5.25"
+ id="path4436"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 7.7781746,7.4629419 10.783378,7.6397186"
+ id="path4438"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Shine"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4440);fill-opacity:1;stroke:none"
+ id="path4353"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.3686199"
+ sodipodi:ry="7.4368792"
+ d="m 15.41196,8.1334372 a 7.3686199,7.4368792 0 1 1 -14.73724019,0 7.3686199,7.4368792 0 1 1 14.73724019,0 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)" />
+ </g>
+</svg>
diff --git a/src/qt/res/src/clock4.svg b/src/qt/res/src/clock4.svg
new file mode 100644
index 0000000000..7d9dc37acb
--- /dev/null
+++ b/src/qt/res/src/clock4.svg
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg2987"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="clock2.svg">
+ <defs
+ id="defs2989">
+ <linearGradient
+ id="linearGradient4465">
+ <stop
+ id="stop4467"
+ offset="0"
+ style="stop-color:#c1c1c1;stop-opacity:1;" />
+ <stop
+ id="stop4469"
+ offset="1"
+ style="stop-color:#8c8c8c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4424">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4426" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:1;"
+ offset="1"
+ id="stop4428" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4357">
+ <stop
+ id="stop4359"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffcc84;stop-opacity:0.49803922;"
+ offset="0.36363637"
+ id="stop4473" />
+ <stop
+ id="stop4361"
+ offset="1"
+ style="stop-color:#ff9a0a;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4347">
+ <stop
+ id="stop4349"
+ offset="0"
+ style="stop-color:#909090;stop-opacity:1;" />
+ <stop
+ id="stop4351"
+ offset="1"
+ style="stop-color:#3c3c3c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3767">
+ <stop
+ style="stop-color:#f8ff82;stop-opacity:1;"
+ offset="0"
+ id="stop3769" />
+ <stop
+ style="stop-color:#f1ff19;stop-opacity:1;"
+ offset="1"
+ id="stop3771" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4347"
+ id="linearGradient3779"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ id="filter4339">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.3240906"
+ id="feGaussianBlur4341" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4345"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4424"
+ id="linearGradient4430"
+ x1="10.740074"
+ y1="16.148634"
+ x2="6.3055735"
+ y2="-1.2798394"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4357"
+ id="radialGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5712985,0.01074232,-0.01353758,1.9801676,-4.5655476,-0.68355868)"
+ cx="8.1975746"
+ cy="-0.080271922"
+ fx="8.1975746"
+ fy="-0.080271922"
+ r="7.7781744" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient4471"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="8.6111742"
+ inkscape:cy="6.6684704"
+ inkscape:current-layer="layer5"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1127"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata2992">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Shadow"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3779);fill-opacity:1;stroke:none;display:inline;filter:url(#filter4339)"
+ id="path2997"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ transform="translate(0,-0.08838835)" />
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="Clock"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ sodipodi:ry="7.7781744"
+ sodipodi:rx="7.7781744"
+ sodipodi:cy="8.1334372"
+ sodipodi:cx="8.0433397"
+ id="path4343"
+ style="fill:url(#linearGradient4345);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Block"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient4471);fill-opacity:1;stroke:none;display:inline"
+ id="path4462"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="M 1.7005474,12.635546 A 7.7781744,7.7781744 0 0 1 8.0707322,0.35531099 L 8.0433397,8.1334372 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ sodipodi:start="2.5243203"
+ sodipodi:end="4.7159107" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Ticks"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ id="use4309"
+ transform="matrix(0.77323696,-0.44642857,0.44642857,0.77323696,-1.9715899,5.5529328)"
+ style="fill:url(#linearGradient4430);fill-opacity:1;stroke:none"
+ d="M 8.875,2.03125 C 8.875,2.5317581 8.4832492,2.9375 8,2.9375 7.5167508,2.9375 7.125,2.5317581 7.125,2.03125 7.125,1.5307419 7.5167508,1.125 8,1.125 c 0.4832492,0 0.875,0.4057419 0.875,0.90625 z M 5.8484195,2.6358993 C 6.0986735,3.069352 5.9622783,3.6166102 5.5437722,3.8582348 5.1252661,4.0998594 4.583129,3.944352 4.332875,3.5108993 4.082621,3.0774465 4.2190162,2.5301884 4.6375222,2.2885638 5.0560283,2.0469392 5.5981654,2.2024466 5.8484195,2.6358993 z M 3.5296488,4.6728304 C 3.9631015,4.9230844 4.1186089,5.4652215 3.8769843,5.8837276 3.6353597,6.3022337 3.0881015,6.4386289 2.6546488,6.1883748 2.221196,5.9381208 2.0656886,5.3959837 2.3073132,4.9774776 2.5489379,4.5589715 3.096196,4.4225763 3.5296488,4.6728304 z m -0.989649,2.9234201 c 0.5005081,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.4057419,0.875 -0.90625,0.875 -0.5005081,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.4057419,-0.875 0.90625,-0.875 z M 3.144649,10.622831 c 0.4334527,-0.250254 0.9807109,-0.113859 1.2223355,0.304647 0.2416246,0.418506 0.086117,0.960643 -0.3473355,1.210897 C 3.5861963,12.388629 3.0389381,12.252234 2.7973135,11.833728 2.5556889,11.415222 2.7111963,10.873085 3.144649,10.622831 z m 2.036931,2.31877 c 0.2502541,-0.433452 0.7923912,-0.58896 1.2108973,-0.347335 0.4185061,0.241624 0.5549012,0.788883 0.3046472,1.222335 -0.2502541,0.433453 -0.7923912,0.58896 -1.2108972,0.347336 C 5.0677212,13.922312 4.931326,13.375054 5.18158,12.941601 z m 2.9234201,0.989649 c 0,-0.500508 0.3917508,-0.90625 0.875,-0.90625 0.4832492,0 0.875,0.405742 0.875,0.90625 0,0.500509 -0.3917508,0.90625 -0.875,0.90625 -0.4832492,0 -0.875,-0.405741 -0.875,-0.90625 z M 11.13158,13.326601 c -0.250254,-0.433453 -0.113859,-0.980711 0.304647,-1.222335 0.418507,-0.241625 0.960644,-0.08612 1.210898,0.347335 0.250254,0.433453 0.113859,0.980711 -0.304648,1.222336 -0.418506,0.241624 -0.960643,0.08612 -1.210897,-0.347336 z m 2.318771,-2.036931 c -0.433453,-0.250254 -0.58896,-0.792391 -0.347335,-1.210897 0.241624,-0.4185064 0.788882,-0.5549016 1.222335,-0.3046476 0.433453,0.2502536 0.58896,0.7923916 0.347336,1.2108976 -0.241625,0.418506 -0.788883,0.554901 -1.222336,0.304647 z M 14.44,8.36625 c -0.500508,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.405742,-0.875 0.90625,-0.875 0.500508,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.405742,0.875 -0.90625,0.875 z M 13.835351,5.3396697 C 13.401898,5.5899238 12.85464,5.4535286 12.613016,5.0350225 12.371391,4.6165164 12.526898,4.0743793 12.960351,3.8241252 c 0.433453,-0.250254 0.980711,-0.1138588 1.222336,0.3046473 0.241624,0.4185061 0.08612,0.9606432 -0.347336,1.2108972 z M 11.79842,3.0208989 C 11.548166,3.4543516 11.006029,3.609859 10.587523,3.3682344 10.169017,3.1266098 10.032621,2.5793516 10.282875,2.1458989 10.533129,1.7124461 11.075267,1.5569388 11.493773,1.7985634 11.912279,2.040188 12.048674,2.5874462 11.79842,3.0208989 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7.875,2.8017767 0,5.25"
+ id="path4436"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 7.7781746,7.4629419 10.783378,7.6397186"
+ id="path4438"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Shine"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4440);fill-opacity:1;stroke:none"
+ id="path4353"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.3686199"
+ sodipodi:ry="7.4368792"
+ d="m 15.41196,8.1334372 a 7.3686199,7.4368792 0 1 1 -14.73724019,0 7.3686199,7.4368792 0 1 1 14.73724019,0 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)" />
+ </g>
+</svg>
diff --git a/src/qt/res/src/clock5.svg b/src/qt/res/src/clock5.svg
new file mode 100644
index 0000000000..9fd58d9d97
--- /dev/null
+++ b/src/qt/res/src/clock5.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg2987"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="clock3.svg">
+ <defs
+ id="defs2989">
+ <linearGradient
+ id="linearGradient4465">
+ <stop
+ id="stop4467"
+ offset="0"
+ style="stop-color:#c1c1c1;stop-opacity:1;" />
+ <stop
+ id="stop4469"
+ offset="1"
+ style="stop-color:#8c8c8c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4424">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4426" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:1;"
+ offset="1"
+ id="stop4428" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4357">
+ <stop
+ id="stop4359"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#fff884;stop-opacity:0.49803922;"
+ offset="0.36363637"
+ id="stop4473" />
+ <stop
+ id="stop4361"
+ offset="1"
+ style="stop-color:#fff10a;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4347">
+ <stop
+ id="stop4349"
+ offset="0"
+ style="stop-color:#909090;stop-opacity:1;" />
+ <stop
+ id="stop4351"
+ offset="1"
+ style="stop-color:#3c3c3c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3767">
+ <stop
+ style="stop-color:#ccff82;stop-opacity:1;"
+ offset="0"
+ id="stop3769" />
+ <stop
+ style="stop-color:#a0ff19;stop-opacity:1;"
+ offset="1"
+ id="stop3771" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4347"
+ id="linearGradient3779"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ id="filter4339">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.3240906"
+ id="feGaussianBlur4341" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4345"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4424"
+ id="linearGradient4430"
+ x1="10.740074"
+ y1="16.148634"
+ x2="6.3055735"
+ y2="-1.2798394"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4357"
+ id="radialGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5712985,0.01074232,-0.01353758,1.9801676,-4.5655476,-0.68355868)"
+ cx="8.1975746"
+ cy="-0.080271922"
+ fx="8.1975746"
+ fy="-0.080271922"
+ r="7.7781744" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient4471"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="8.6111742"
+ inkscape:cy="6.6684704"
+ inkscape:current-layer="layer3"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1127"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata2992">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Shadow"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3779);fill-opacity:1;stroke:none;display:inline;filter:url(#filter4339)"
+ id="path2997"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ transform="translate(0,-0.08838835)" />
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="Clock"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ sodipodi:ry="7.7781744"
+ sodipodi:rx="7.7781744"
+ sodipodi:cy="8.1334372"
+ sodipodi:cx="8.0433397"
+ id="path4343"
+ style="fill:url(#linearGradient4345);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Block"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient4471);fill-opacity:1;stroke:none;display:inline"
+ id="path4462"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="M 1.0968082,4.6340519 A 7.7781744,7.7781744 0 0 1 8.0707322,0.35531099 L 8.0433397,8.1334372 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ sodipodi:start="3.6082438"
+ sodipodi:end="4.7159107" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Ticks"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ id="use4309"
+ transform="matrix(0.77323696,-0.44642857,0.44642857,0.77323696,-1.9715899,5.5529328)"
+ style="fill:url(#linearGradient4430);fill-opacity:1;stroke:none"
+ d="M 8.875,2.03125 C 8.875,2.5317581 8.4832492,2.9375 8,2.9375 7.5167508,2.9375 7.125,2.5317581 7.125,2.03125 7.125,1.5307419 7.5167508,1.125 8,1.125 c 0.4832492,0 0.875,0.4057419 0.875,0.90625 z M 5.8484195,2.6358993 C 6.0986735,3.069352 5.9622783,3.6166102 5.5437722,3.8582348 5.1252661,4.0998594 4.583129,3.944352 4.332875,3.5108993 4.082621,3.0774465 4.2190162,2.5301884 4.6375222,2.2885638 5.0560283,2.0469392 5.5981654,2.2024466 5.8484195,2.6358993 z M 3.5296488,4.6728304 C 3.9631015,4.9230844 4.1186089,5.4652215 3.8769843,5.8837276 3.6353597,6.3022337 3.0881015,6.4386289 2.6546488,6.1883748 2.221196,5.9381208 2.0656886,5.3959837 2.3073132,4.9774776 2.5489379,4.5589715 3.096196,4.4225763 3.5296488,4.6728304 z m -0.989649,2.9234201 c 0.5005081,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.4057419,0.875 -0.90625,0.875 -0.5005081,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.4057419,-0.875 0.90625,-0.875 z M 3.144649,10.622831 c 0.4334527,-0.250254 0.9807109,-0.113859 1.2223355,0.304647 0.2416246,0.418506 0.086117,0.960643 -0.3473355,1.210897 C 3.5861963,12.388629 3.0389381,12.252234 2.7973135,11.833728 2.5556889,11.415222 2.7111963,10.873085 3.144649,10.622831 z m 2.036931,2.31877 c 0.2502541,-0.433452 0.7923912,-0.58896 1.2108973,-0.347335 0.4185061,0.241624 0.5549012,0.788883 0.3046472,1.222335 -0.2502541,0.433453 -0.7923912,0.58896 -1.2108972,0.347336 C 5.0677212,13.922312 4.931326,13.375054 5.18158,12.941601 z m 2.9234201,0.989649 c 0,-0.500508 0.3917508,-0.90625 0.875,-0.90625 0.4832492,0 0.875,0.405742 0.875,0.90625 0,0.500509 -0.3917508,0.90625 -0.875,0.90625 -0.4832492,0 -0.875,-0.405741 -0.875,-0.90625 z M 11.13158,13.326601 c -0.250254,-0.433453 -0.113859,-0.980711 0.304647,-1.222335 0.418507,-0.241625 0.960644,-0.08612 1.210898,0.347335 0.250254,0.433453 0.113859,0.980711 -0.304648,1.222336 -0.418506,0.241624 -0.960643,0.08612 -1.210897,-0.347336 z m 2.318771,-2.036931 c -0.433453,-0.250254 -0.58896,-0.792391 -0.347335,-1.210897 0.241624,-0.4185064 0.788882,-0.5549016 1.222335,-0.3046476 0.433453,0.2502536 0.58896,0.7923916 0.347336,1.2108976 -0.241625,0.418506 -0.788883,0.554901 -1.222336,0.304647 z M 14.44,8.36625 c -0.500508,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.405742,-0.875 0.90625,-0.875 0.500508,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.405742,0.875 -0.90625,0.875 z M 13.835351,5.3396697 C 13.401898,5.5899238 12.85464,5.4535286 12.613016,5.0350225 12.371391,4.6165164 12.526898,4.0743793 12.960351,3.8241252 c 0.433453,-0.250254 0.980711,-0.1138588 1.222336,0.3046473 0.241624,0.4185061 0.08612,0.9606432 -0.347336,1.2108972 z M 11.79842,3.0208989 C 11.548166,3.4543516 11.006029,3.609859 10.587523,3.3682344 10.169017,3.1266098 10.032621,2.5793516 10.282875,2.1458989 10.533129,1.7124461 11.075267,1.5569388 11.493773,1.7985634 11.912279,2.040188 12.048674,2.5874462 11.79842,3.0208989 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7.875,2.8017767 0,5.25"
+ id="path4436"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 7.7781746,7.4629419 10.783378,7.6397186"
+ id="path4438"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Shine"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4440);fill-opacity:1;stroke:none"
+ id="path4353"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.3686199"
+ sodipodi:ry="7.4368792"
+ d="m 15.41196,8.1334372 a 7.3686199,7.4368792 0 1 1 -14.73724019,0 7.3686199,7.4368792 0 1 1 14.73724019,0 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)" />
+ </g>
+</svg>
diff --git a/src/qt/res/src/clock_green.svg b/src/qt/res/src/clock_green.svg
new file mode 100644
index 0000000000..e31f0e7995
--- /dev/null
+++ b/src/qt/res/src/clock_green.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg2987"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="clock_green.svg">
+ <defs
+ id="defs2989">
+ <linearGradient
+ id="linearGradient4465">
+ <stop
+ id="stop4467"
+ offset="0"
+ style="stop-color:#c1c1c1;stop-opacity:1;" />
+ <stop
+ id="stop4469"
+ offset="1"
+ style="stop-color:#8c8c8c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4424">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4426" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:1;"
+ offset="1"
+ id="stop4428" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4357">
+ <stop
+ id="stop4359"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#baff84;stop-opacity:0.49803922;"
+ offset="0.36363637"
+ id="stop4473" />
+ <stop
+ id="stop4361"
+ offset="1"
+ style="stop-color:#76ff0a;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4347">
+ <stop
+ id="stop4349"
+ offset="0"
+ style="stop-color:#c1c1c1;stop-opacity:1;" />
+ <stop
+ id="stop4351"
+ offset="1"
+ style="stop-color:#8c8c8c;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3767">
+ <stop
+ style="stop-color:#82ff82;stop-opacity:1;"
+ offset="0"
+ id="stop3769" />
+ <stop
+ style="stop-color:#19ff19;stop-opacity:1;"
+ offset="1"
+ id="stop3771" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4347"
+ id="linearGradient3779"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ id="filter4339">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.3240906"
+ id="feGaussianBlur4341" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3767"
+ id="linearGradient4345"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4424"
+ id="linearGradient4430"
+ x1="10.740074"
+ y1="16.148634"
+ x2="6.3055735"
+ y2="-1.2798394"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4357"
+ id="radialGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5712985,0.01074232,-0.01353758,1.9801676,-4.5655476,-0.68355868)"
+ cx="8.1975746"
+ cy="-0.080271922"
+ fx="8.1975746"
+ fy="-0.080271922"
+ r="7.7781744" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4465"
+ id="linearGradient4471"
+ gradientUnits="userSpaceOnUse"
+ x1="2.224874"
+ y1="2.8301363"
+ x2="14.038582"
+ y2="13.171574" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="9.1870806"
+ inkscape:cy="14.089546"
+ inkscape:current-layer="layer3"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1127"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata2992">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Shadow"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3779);fill-opacity:1;stroke:none;display:inline;filter:url(#filter4339)"
+ id="path2997"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ transform="translate(0,-0.08838835)" />
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="Clock"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ d="m 15.821514,8.1334372 a 7.7781744,7.7781744 0 1 1 -15.55634867,0 7.7781744,7.7781744 0 1 1 15.55634867,0 z"
+ sodipodi:ry="7.7781744"
+ sodipodi:rx="7.7781744"
+ sodipodi:cy="8.1334372"
+ sodipodi:cx="8.0433397"
+ id="path4343"
+ style="fill:url(#linearGradient4345);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Block"
+ sodipodi:insensitive="true"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient4471);fill-opacity:1;stroke:none;display:inline"
+ id="path4462"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.7781744"
+ sodipodi:ry="7.7781744"
+ d="M 14.4287,3.6919089 A 7.7781744,7.7781744 0 1 1 8.0707322,0.35531099 L 8.0433397,8.1334372 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)"
+ sodipodi:start="5.675432"
+ sodipodi:end="10.999096" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Ticks"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ id="use4309"
+ transform="matrix(0.77323696,-0.44642857,0.44642857,0.77323696,-1.9715899,5.5529328)"
+ style="fill:url(#linearGradient4430);fill-opacity:1;stroke:none"
+ d="M 8.875,2.03125 C 8.875,2.5317581 8.4832492,2.9375 8,2.9375 7.5167508,2.9375 7.125,2.5317581 7.125,2.03125 7.125,1.5307419 7.5167508,1.125 8,1.125 c 0.4832492,0 0.875,0.4057419 0.875,0.90625 z M 5.8484195,2.6358993 C 6.0986735,3.069352 5.9622783,3.6166102 5.5437722,3.8582348 5.1252661,4.0998594 4.583129,3.944352 4.332875,3.5108993 4.082621,3.0774465 4.2190162,2.5301884 4.6375222,2.2885638 5.0560283,2.0469392 5.5981654,2.2024466 5.8484195,2.6358993 z M 3.5296488,4.6728304 C 3.9631015,4.9230844 4.1186089,5.4652215 3.8769843,5.8837276 3.6353597,6.3022337 3.0881015,6.4386289 2.6546488,6.1883748 2.221196,5.9381208 2.0656886,5.3959837 2.3073132,4.9774776 2.5489379,4.5589715 3.096196,4.4225763 3.5296488,4.6728304 z m -0.989649,2.9234201 c 0.5005081,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.4057419,0.875 -0.90625,0.875 -0.5005081,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.4057419,-0.875 0.90625,-0.875 z M 3.144649,10.622831 c 0.4334527,-0.250254 0.9807109,-0.113859 1.2223355,0.304647 0.2416246,0.418506 0.086117,0.960643 -0.3473355,1.210897 C 3.5861963,12.388629 3.0389381,12.252234 2.7973135,11.833728 2.5556889,11.415222 2.7111963,10.873085 3.144649,10.622831 z m 2.036931,2.31877 c 0.2502541,-0.433452 0.7923912,-0.58896 1.2108973,-0.347335 0.4185061,0.241624 0.5549012,0.788883 0.3046472,1.222335 -0.2502541,0.433453 -0.7923912,0.58896 -1.2108972,0.347336 C 5.0677212,13.922312 4.931326,13.375054 5.18158,12.941601 z m 2.9234201,0.989649 c 0,-0.500508 0.3917508,-0.90625 0.875,-0.90625 0.4832492,0 0.875,0.405742 0.875,0.90625 0,0.500509 -0.3917508,0.90625 -0.875,0.90625 -0.4832492,0 -0.875,-0.405741 -0.875,-0.90625 z M 11.13158,13.326601 c -0.250254,-0.433453 -0.113859,-0.980711 0.304647,-1.222335 0.418507,-0.241625 0.960644,-0.08612 1.210898,0.347335 0.250254,0.433453 0.113859,0.980711 -0.304648,1.222336 -0.418506,0.241624 -0.960643,0.08612 -1.210897,-0.347336 z m 2.318771,-2.036931 c -0.433453,-0.250254 -0.58896,-0.792391 -0.347335,-1.210897 0.241624,-0.4185064 0.788882,-0.5549016 1.222335,-0.3046476 0.433453,0.2502536 0.58896,0.7923916 0.347336,1.2108976 -0.241625,0.418506 -0.788883,0.554901 -1.222336,0.304647 z M 14.44,8.36625 c -0.500508,0 -0.90625,-0.3917508 -0.90625,-0.875 0,-0.4832492 0.405742,-0.875 0.90625,-0.875 0.500508,0 0.90625,0.3917508 0.90625,0.875 0,0.4832492 -0.405742,0.875 -0.90625,0.875 z M 13.835351,5.3396697 C 13.401898,5.5899238 12.85464,5.4535286 12.613016,5.0350225 12.371391,4.6165164 12.526898,4.0743793 12.960351,3.8241252 c 0.433453,-0.250254 0.980711,-0.1138588 1.222336,0.3046473 0.241624,0.4185061 0.08612,0.9606432 -0.347336,1.2108972 z M 11.79842,3.0208989 C 11.548166,3.4543516 11.006029,3.609859 10.587523,3.3682344 10.169017,3.1266098 10.032621,2.5793516 10.282875,2.1458989 10.533129,1.7124461 11.075267,1.5569388 11.493773,1.7985634 11.912279,2.040188 12.048674,2.5874462 11.79842,3.0208989 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7.875,2.8017767 0,5.25"
+ id="path4436"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 7.7781746,7.4629419 10.783378,7.6397186"
+ id="path4438"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Shine"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4440);fill-opacity:1;stroke:none"
+ id="path4353"
+ sodipodi:cx="8.0433397"
+ sodipodi:cy="8.1334372"
+ sodipodi:rx="7.3686199"
+ sodipodi:ry="7.4368792"
+ d="m 15.41196,8.1334372 a 7.3686199,7.4368792 0 1 1 -14.73724019,0 7.3686199,7.4368792 0 1 1 14.73724019,0 z"
+ transform="matrix(0.91562931,0,0,0.91562931,0.64737218,0.56658541)" />
+ </g>
+</svg>
diff --git a/src/qt/res/src/inout.svg b/src/qt/res/src/inout.svg
new file mode 100644
index 0000000000..bfab8ef6ab
--- /dev/null
+++ b/src/qt/res/src/inout.svg
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3039"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ width="120"
+ height="120"
+ sodipodi:docname="inout3.svg"
+ inkscape:export-filename="/home/orion/projects2/bitcoin/tx_mined.png"
+ inkscape:export-xdpi="12"
+ inkscape:export-ydpi="12"
+ style="display:inline">
+ <metadata
+ id="metadata3045">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3043" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1127"
+ id="namedview3041"
+ showgrid="false"
+ inkscape:zoom="1"
+ inkscape:cx="87.12655"
+ inkscape:cy="67.287943"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer7" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="base"
+ style="display:none">
+ <path
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#afafaf;fill-opacity:1;stroke:none;stroke-width:7;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
+ d="m 45.375,17 c -13.984022,0.241082 -24.968241,3.28976 -37.4375,9.59375 -8.9920665,21.871558 -6.680947,46.393002 -1.96875,69 26.190925,13.15317 55.594909,12.97748 81.75,-0.21875 3.852144,-9.729509 1.599587,-12.800015 2.375,-23.15625 C 83.917272,72.423868 77.129905,67.688094 74.1875,75.25 72.702487,79.722025 76.119709,82.645519 69.15625,83.34375 53.023957,88.536726 37.721719,89.140031 21.875,82.28125 19.715285,68.367979 18.599566,53.65725 22.5,40 c 16.868164,-6.642068 33.121079,-6.120062 50.03125,-0.15625 1.285344,5.854815 1.574746,5.763255 2.375,11.6875 C 80.46378,51.970623 89.644961,53.334736 91.3125,46 91.85305,36.007959 89.372312,31.625095 87.1875,25.6875 73.709743,21.03478 59.804255,16.698888 45.375,17 z"
+ id="path3053"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="arrow_out"
+ style="display:none">
+ <path
+ style="fill:#6e6e6e;fill-opacity:1;stroke:none;display:inline"
+ d="m 63.983409,65.48134 0.267857,-9.514444 36.161424,-0.194173 -7.414458,-8.757971 3.798312,-7.572721 c 0,0 23.437946,20.796656 22.500436,21.185 -0.93751,0.388345 -23.170094,22.73838 -23.170094,22.73838 l -3.128654,-8.931927 7.548388,-8.5638 z"
+ id="path3844"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccscccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="arrow_in"
+ style="display:none">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4080"
+ d="m 99.28763,65.48134 -0.26786,-9.514444 -36.161422,-0.194173 7.768009,-6.283097 -4.151865,-9.279828 c 0,0 -23.43795,20.028889 -22.500436,20.417233 0.937514,0.388345 23.170094,20.970613 23.170094,20.970613 l 3.482207,-9.639034 -7.901936,-6.088926 z"
+ style="fill:#6e6e6e;fill-opacity:1;stroke:none;display:inline"
+ sodipodi:nodetypes="cccccscccc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer7"
+ inkscape:label="mined"
+ style="display:inline">
+ <path
+ style="fill:#a9a9a9;fill-opacity:1;stroke:none;display:inline"
+ d="M 9.4375,99.758169 78.14665,33.110294 73.680556,28.300653 67.153187,8.375 l 18.55147,6.527369 4.80964,3.779003 4.809641,-4.80964 11.680552,12.367647 -6.18382,4.80964 13.74183,14.085377 -12.71119,14.42892 -14.77247,-16.14665 -65.273693,70.770424 z"
+ id="path4103"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4619"
+ d="M 114.5625,99.758169 45.85335,33.110294 50.319444,28.300653 56.846813,8.375 l -18.55147,6.527369 -4.80964,3.779003 -4.809641,-4.80964 -11.680556,12.367647 6.183825,4.80964 L 9.4375,45.134396 22.148693,59.563316 36.92116,43.416666 102.19485,114.18709 z"
+ style="fill:#a9a9a9;fill-opacity:1;stroke:none;display:inline" />
+ <path
+ style="fill:#6e6e6e;fill-opacity:1;stroke:none"
+ d="M 10.960155,44.693128 38.53732,16.408856 54.093669,10.752002 48.436815,28.076118 22.273864,56.713943 z"
+ id="path5256"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:#6e6e6e;fill-opacity:1;stroke:none"
+ d="M 69.296465,10.398449 85.559921,17.115963 111.72287,45.046681 102.17693,56.713943 74.953319,27.722565 z"
+ id="path5258"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+</svg>
diff --git a/src/qt/res/src/questionmark.svg b/src/qt/res/src/questionmark.svg
new file mode 100644
index 0000000000..c03c159a5f
--- /dev/null
+++ b/src/qt/res/src/questionmark.svg
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16px"
+ height="16px"
+ id="svg2993"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="questionmark.svg"
+ inkscape:export-filename="/store/orion/projects/bitcoin/questionmark.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs2995">
+ <linearGradient
+ id="linearGradient3808">
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1;"
+ offset="0"
+ id="stop3810" />
+ <stop
+ style="stop-color:#959595;stop-opacity:1"
+ offset="1"
+ id="stop3812" />
+ </linearGradient>
+ <filter
+ inkscape:collect="always"
+ id="filter3804"
+ x="-0.2510722"
+ width="1.5021444"
+ y="-0.13164773"
+ height="1.2632955">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.73280473"
+ id="feGaussianBlur3806" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3808"
+ id="linearGradient3844"
+ x1="8.4916801"
+ y1="1.4395804"
+ x2="8.6022711"
+ y2="14.211697"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ id="filter3889"
+ x="-0.13954329"
+ width="1.2790866"
+ y="-0.073168421"
+ height="1.1463368">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.40728516"
+ id="feGaussianBlur3891" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter3897"
+ x="-0.17178624"
+ width="1.3435725"
+ y="-0.090074761"
+ height="1.1801495">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.50139271"
+ id="feGaussianBlur3899" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="10.789648"
+ inkscape:cy="7.6382159"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1127"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata2998">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Below"
+ style="display:inline">
+ <text
+ sodipodi:linespacing="125%"
+ id="text3006"
+ y="14.748394"
+ x="4.1060953"
+ style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;filter:url(#filter3897)"
+ xml:space="preserve"><tspan
+ y="14.748394"
+ x="4.1060953"
+ id="tspan3008"
+ sodipodi:role="line">?</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;filter:url(#filter3889)"
+ x="4.1060953"
+ y="14.748394"
+ id="text3824"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3826"
+ x="4.1060953"
+ y="14.748394">?</tspan></text>
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="QuestionMark"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3844);fill-opacity:1;stroke:none;font-family:Sans"
+ x="4.1060953"
+ y="14.748394"
+ id="text3001"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3003"
+ x="4.1060953"
+ y="14.748394"
+ style="fill:url(#linearGradient3844);fill-opacity:1">?</tspan></text>
+ </g>
+</svg>
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
new file mode 100644
index 0000000000..2a2c6062fa
--- /dev/null
+++ b/src/qt/sendcoinsdialog.cpp
@@ -0,0 +1,298 @@
+#include "sendcoinsdialog.h"
+#include "ui_sendcoinsdialog.h"
+#include "walletmodel.h"
+#include "bitcoinunits.h"
+#include "addressbookpage.h"
+#include "optionsmodel.h"
+#include "sendcoinsentry.h"
+#include "guiutil.h"
+#include "askpassphrasedialog.h"
+
+#include <QMessageBox>
+#include <QLocale>
+#include <QTextDocument>
+#include <QScrollBar>
+
+SendCoinsDialog::SendCoinsDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::SendCoinsDialog),
+ model(0)
+{
+ ui->setupUi(this);
+
+#ifdef Q_WS_MAC // Icons on push buttons are very uncommon on Mac
+ ui->addButton->setIcon(QIcon());
+ ui->clearButton->setIcon(QIcon());
+ ui->sendButton->setIcon(QIcon());
+#endif
+
+ addEntry();
+
+ connect(ui->addButton, SIGNAL(clicked()), this, SLOT(addEntry()));
+ connect(ui->clearButton, SIGNAL(clicked()), this, SLOT(clear()));
+}
+
+void SendCoinsDialog::setModel(WalletModel *model)
+{
+ this->model = model;
+
+ for(int i = 0; i < ui->entries->count(); ++i)
+ {
+ SendCoinsEntry *entry = qobject_cast<SendCoinsEntry*>(ui->entries->itemAt(i)->widget());
+ if(entry)
+ {
+ entry->setModel(model);
+ }
+ }
+ if(model && model->getOptionsModel())
+ {
+ setBalance(model->getBalance(), model->getUnconfirmedBalance());
+ connect(model, SIGNAL(balanceChanged(qint64, qint64)), this, SLOT(setBalance(qint64, qint64)));
+ connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+ }
+}
+
+SendCoinsDialog::~SendCoinsDialog()
+{
+ delete ui;
+}
+
+void SendCoinsDialog::on_sendButton_clicked()
+{
+ QList<SendCoinsRecipient> recipients;
+ bool valid = true;
+
+ if(!model)
+ return;
+
+ for(int i = 0; i < ui->entries->count(); ++i)
+ {
+ SendCoinsEntry *entry = qobject_cast<SendCoinsEntry*>(ui->entries->itemAt(i)->widget());
+ if(entry)
+ {
+ if(entry->validate())
+ {
+ recipients.append(entry->getValue());
+ }
+ else
+ {
+ valid = false;
+ }
+ }
+ }
+
+ if(!valid || recipients.isEmpty())
+ {
+ return;
+ }
+
+ // Format confirmation message
+ QStringList formatted;
+ foreach(const SendCoinsRecipient &rcp, recipients)
+ {
+ formatted.append(tr("<b>%1</b> to %2 (%3)").arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, rcp.amount), Qt::escape(rcp.label), rcp.address));
+ }
+
+ QMessageBox::StandardButton retval = QMessageBox::question(this, tr("Confirm send coins"),
+ tr("Are you sure you want to send %1?").arg(formatted.join(tr(" and "))),
+ QMessageBox::Yes|QMessageBox::Cancel,
+ QMessageBox::Cancel);
+
+ if(retval != QMessageBox::Yes)
+ {
+ return;
+ }
+
+ WalletModel::UnlockContext ctx(model->requestUnlock());
+ if(!ctx.isValid())
+ {
+ // Unlock wallet was cancelled
+ return;
+ }
+
+ WalletModel::SendCoinsReturn sendstatus = model->sendCoins(recipients);
+ switch(sendstatus.status)
+ {
+ case WalletModel::InvalidAddress:
+ QMessageBox::warning(this, tr("Send Coins"),
+ tr("The recipient address is not valid, please recheck."),
+ QMessageBox::Ok, QMessageBox::Ok);
+ break;
+ case WalletModel::InvalidAmount:
+ QMessageBox::warning(this, tr("Send Coins"),
+ tr("The amount to pay must be larger than 0."),
+ QMessageBox::Ok, QMessageBox::Ok);
+ break;
+ case WalletModel::AmountExceedsBalance:
+ QMessageBox::warning(this, tr("Send Coins"),
+ tr("The amount exceeds your balance."),
+ QMessageBox::Ok, QMessageBox::Ok);
+ break;
+ case WalletModel::AmountWithFeeExceedsBalance:
+ QMessageBox::warning(this, tr("Send Coins"),
+ tr("The total exceeds your balance when the %1 transaction fee is included.").
+ arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, sendstatus.fee)),
+ QMessageBox::Ok, QMessageBox::Ok);
+ break;
+ case WalletModel::DuplicateAddress:
+ QMessageBox::warning(this, tr("Send Coins"),
+ tr("Duplicate address found, can only send to each address once per send operation."),
+ QMessageBox::Ok, QMessageBox::Ok);
+ break;
+ case WalletModel::TransactionCreationFailed:
+ QMessageBox::warning(this, tr("Send Coins"),
+ tr("Error: Transaction creation failed."),
+ QMessageBox::Ok, QMessageBox::Ok);
+ break;
+ case WalletModel::TransactionCommitFailed:
+ QMessageBox::warning(this, tr("Send Coins"),
+ 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;
+ }
+}
+
+void SendCoinsDialog::clear()
+{
+ // Remove entries until only one left
+ while(ui->entries->count())
+ {
+ delete ui->entries->takeAt(0)->widget();
+ }
+ addEntry();
+
+ updateRemoveEnabled();
+
+ ui->sendButton->setDefault(true);
+}
+
+void SendCoinsDialog::reject()
+{
+ clear();
+}
+
+void SendCoinsDialog::accept()
+{
+ clear();
+}
+
+SendCoinsEntry *SendCoinsDialog::addEntry()
+{
+ SendCoinsEntry *entry = new SendCoinsEntry(this);
+ entry->setModel(model);
+ ui->entries->addWidget(entry);
+ connect(entry, SIGNAL(removeEntry(SendCoinsEntry*)), this, SLOT(removeEntry(SendCoinsEntry*)));
+
+ updateRemoveEnabled();
+
+ // Focus the field, so that entry can start immediately
+ entry->clear();
+ entry->setFocus();
+ ui->scrollAreaWidgetContents->resize(ui->scrollAreaWidgetContents->sizeHint());
+ QCoreApplication::instance()->processEvents();
+ QScrollBar* bar = ui->scrollArea->verticalScrollBar();
+ if(bar)
+ bar->setSliderPosition(bar->maximum());
+ return entry;
+}
+
+void SendCoinsDialog::updateRemoveEnabled()
+{
+ // Remove buttons are enabled as soon as there is more than one send-entry
+ bool enabled = (ui->entries->count() > 1);
+ for(int i = 0; i < ui->entries->count(); ++i)
+ {
+ SendCoinsEntry *entry = qobject_cast<SendCoinsEntry*>(ui->entries->itemAt(i)->widget());
+ if(entry)
+ {
+ entry->setRemoveEnabled(enabled);
+ }
+ }
+ setupTabChain(0);
+}
+
+void SendCoinsDialog::removeEntry(SendCoinsEntry* entry)
+{
+ delete entry;
+ updateRemoveEnabled();
+}
+
+QWidget *SendCoinsDialog::setupTabChain(QWidget *prev)
+{
+ for(int i = 0; i < ui->entries->count(); ++i)
+ {
+ SendCoinsEntry *entry = qobject_cast<SendCoinsEntry*>(ui->entries->itemAt(i)->widget());
+ if(entry)
+ {
+ prev = entry->setupTabChain(prev);
+ }
+ }
+ QWidget::setTabOrder(prev, ui->addButton);
+ QWidget::setTabOrder(ui->addButton, ui->sendButton);
+ return ui->sendButton;
+}
+
+void SendCoinsDialog::pasteEntry(const SendCoinsRecipient &rv)
+{
+ SendCoinsEntry *entry = 0;
+ // Replace the first entry if it is still unused
+ if(ui->entries->count() == 1)
+ {
+ SendCoinsEntry *first = qobject_cast<SendCoinsEntry*>(ui->entries->itemAt(0)->widget());
+ if(first->isClear())
+ {
+ entry = first;
+ }
+ }
+ if(!entry)
+ {
+ entry = addEntry();
+ }
+
+ entry->setValue(rv);
+}
+
+
+void SendCoinsDialog::handleURI(const QUrl *uri)
+{
+ SendCoinsRecipient rv;
+ if(!GUIUtil::parseBitcoinURI(uri, &rv))
+ {
+ return;
+ }
+ pasteEntry(rv);
+}
+
+void SendCoinsDialog::handleURI(const QString &uri)
+{
+ SendCoinsRecipient rv;
+ if(!GUIUtil::parseBitcoinURI(uri, &rv))
+ {
+ return;
+ }
+ pasteEntry(rv);
+}
+
+void SendCoinsDialog::setBalance(qint64 balance, qint64 unconfirmedBalance)
+{
+ Q_UNUSED(unconfirmedBalance);
+ if(!model || !model->getOptionsModel())
+ return;
+
+ int unit = model->getOptionsModel()->getDisplayUnit();
+ ui->labelBalance->setText(BitcoinUnits::formatWithUnit(unit, balance));
+}
+
+void SendCoinsDialog::updateDisplayUnit()
+{
+ if(model && model->getOptionsModel())
+ {
+ // Update labelBalance with the current balance and the current unit
+ ui->labelBalance->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), model->getBalance()));
+ }
+}
diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h
new file mode 100644
index 0000000000..d26491c517
--- /dev/null
+++ b/src/qt/sendcoinsdialog.h
@@ -0,0 +1,54 @@
+#ifndef SENDCOINSDIALOG_H
+#define SENDCOINSDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+ class SendCoinsDialog;
+}
+class WalletModel;
+class SendCoinsEntry;
+class SendCoinsRecipient;
+
+QT_BEGIN_NAMESPACE
+class QUrl;
+QT_END_NAMESPACE
+
+/** Dialog for sending bitcoins */
+class SendCoinsDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit SendCoinsDialog(QWidget *parent = 0);
+ ~SendCoinsDialog();
+
+ void setModel(WalletModel *model);
+
+ /** Set up the tab chain manually, as Qt messes up the tab chain by default in some cases (issue https://bugreports.qt-project.org/browse/QTBUG-10907).
+ */
+ QWidget *setupTabChain(QWidget *prev);
+
+ void pasteEntry(const SendCoinsRecipient &rv);
+ void handleURI(const QUrl *uri);
+ void handleURI(const QString &uri);
+
+public slots:
+ void clear();
+ void reject();
+ void accept();
+ SendCoinsEntry *addEntry();
+ void updateRemoveEnabled();
+ void setBalance(qint64 balance, qint64 unconfirmedBalance);
+
+private:
+ Ui::SendCoinsDialog *ui;
+ WalletModel *model;
+
+private slots:
+ void on_sendButton_clicked();
+ void removeEntry(SendCoinsEntry* entry);
+ void updateDisplayUnit();
+};
+
+#endif // SENDCOINSDIALOG_H
diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp
new file mode 100644
index 0000000000..599a804c46
--- /dev/null
+++ b/src/qt/sendcoinsentry.cpp
@@ -0,0 +1,172 @@
+#include "sendcoinsentry.h"
+#include "ui_sendcoinsentry.h"
+#include "guiutil.h"
+#include "bitcoinunits.h"
+#include "addressbookpage.h"
+#include "walletmodel.h"
+#include "optionsmodel.h"
+#include "addresstablemodel.h"
+
+#include <QApplication>
+#include <QClipboard>
+
+SendCoinsEntry::SendCoinsEntry(QWidget *parent) :
+ QFrame(parent),
+ ui(new Ui::SendCoinsEntry),
+ model(0)
+{
+ ui->setupUi(this);
+
+#ifdef Q_WS_MAC
+ ui->payToLayout->setSpacing(4);
+#endif
+
+#if QT_VERSION >= 0x040700
+ ui->payTo->setPlaceholderText(tr("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"));
+ ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book"));
+#endif
+ setFocusPolicy(Qt::TabFocus);
+ setFocusProxy(ui->payTo);
+
+ GUIUtil::setupAddressWidget(ui->payTo, this);
+}
+
+SendCoinsEntry::~SendCoinsEntry()
+{
+ delete ui;
+}
+
+void SendCoinsEntry::on_pasteButton_clicked()
+{
+ // Paste text from clipboard into recipient field
+ ui->payTo->setText(QApplication::clipboard()->text());
+}
+
+void SendCoinsEntry::on_addressBookButton_clicked()
+{
+ if(!model)
+ return;
+ AddressBookPage dlg(AddressBookPage::ForSending, AddressBookPage::SendingTab, this);
+ dlg.setModel(model->getAddressTableModel());
+ if(dlg.exec())
+ {
+ ui->payTo->setText(dlg.getReturnValue());
+ ui->payAmount->setFocus();
+ }
+}
+
+void SendCoinsEntry::on_payTo_textChanged(const QString &address)
+{
+ if(!model)
+ return;
+ // 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;
+
+ if(model && model->getOptionsModel())
+ connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+
+ clear();
+}
+
+void SendCoinsEntry::setRemoveEnabled(bool enabled)
+{
+ ui->deleteButton->setEnabled(enabled);
+}
+
+void SendCoinsEntry::clear()
+{
+ ui->payTo->clear();
+ ui->addAsLabel->clear();
+ ui->payAmount->clear();
+ ui->payTo->setFocus();
+ // update the display unit, to not use the default ("BTC")
+ updateDisplayUnit();
+}
+
+void SendCoinsEntry::on_deleteButton_clicked()
+{
+ emit removeEntry(this);
+}
+
+bool SendCoinsEntry::validate()
+{
+ // Check input validity
+ bool retval = true;
+
+ if(!ui->payAmount->validate())
+ {
+ retval = false;
+ }
+ else
+ {
+ if(ui->payAmount->value() <= 0)
+ {
+ // Cannot send 0 coins or less
+ ui->payAmount->setValid(false);
+ retval = false;
+ }
+ }
+
+ if(!ui->payTo->hasAcceptableInput() ||
+ (model && !model->validateAddress(ui->payTo->text())))
+ {
+ ui->payTo->setValid(false);
+ retval = false;
+ }
+
+ return retval;
+}
+
+SendCoinsRecipient SendCoinsEntry::getValue()
+{
+ SendCoinsRecipient rv;
+
+ rv.address = ui->payTo->text();
+ rv.label = ui->addAsLabel->text();
+ rv.amount = ui->payAmount->value();
+
+ return rv;
+}
+
+QWidget *SendCoinsEntry::setupTabChain(QWidget *prev)
+{
+ QWidget::setTabOrder(prev, ui->payTo);
+ QWidget::setTabOrder(ui->payTo, ui->addressBookButton);
+ QWidget::setTabOrder(ui->addressBookButton, ui->pasteButton);
+ QWidget::setTabOrder(ui->pasteButton, ui->deleteButton);
+ QWidget::setTabOrder(ui->deleteButton, ui->addAsLabel);
+ return ui->payAmount->setupTabChain(ui->addAsLabel);
+}
+
+void SendCoinsEntry::setValue(const SendCoinsRecipient &value)
+{
+ ui->payTo->setText(value.address);
+ ui->addAsLabel->setText(value.label);
+ ui->payAmount->setValue(value.amount);
+}
+
+bool SendCoinsEntry::isClear()
+{
+ return ui->payTo->text().isEmpty();
+}
+
+void SendCoinsEntry::setFocus()
+{
+ ui->payTo->setFocus();
+}
+
+void SendCoinsEntry::updateDisplayUnit()
+{
+ if(model && model->getOptionsModel())
+ {
+ // Update payAmount with the current unit
+ ui->payAmount->setDisplayUnit(model->getOptionsModel()->getDisplayUnit());
+ }
+}
diff --git a/src/qt/sendcoinsentry.h b/src/qt/sendcoinsentry.h
new file mode 100644
index 0000000000..0ac14c1472
--- /dev/null
+++ b/src/qt/sendcoinsentry.h
@@ -0,0 +1,55 @@
+#ifndef SENDCOINSENTRY_H
+#define SENDCOINSENTRY_H
+
+#include <QFrame>
+
+namespace Ui {
+ class SendCoinsEntry;
+}
+class WalletModel;
+class SendCoinsRecipient;
+
+/** A single entry in the dialog for sending bitcoins. */
+class SendCoinsEntry : public QFrame
+{
+ Q_OBJECT
+
+public:
+ explicit SendCoinsEntry(QWidget *parent = 0);
+ ~SendCoinsEntry();
+
+ void setModel(WalletModel *model);
+ bool validate();
+ SendCoinsRecipient getValue();
+
+ /** Return whether the entry is still empty and unedited */
+ bool isClear();
+
+ void setValue(const SendCoinsRecipient &value);
+
+ /** Set up the tab chain manually, as Qt messes up the tab chain by default in some cases (issue https://bugreports.qt-project.org/browse/QTBUG-10907).
+ */
+ QWidget *setupTabChain(QWidget *prev);
+
+ void setFocus();
+
+public slots:
+ void setRemoveEnabled(bool enabled);
+ void clear();
+
+signals:
+ void removeEntry(SendCoinsEntry *entry);
+
+private slots:
+ void on_deleteButton_clicked();
+ void on_payTo_textChanged(const QString &address);
+ void on_addressBookButton_clicked();
+ void on_pasteButton_clicked();
+ void updateDisplayUnit();
+
+private:
+ Ui::SendCoinsEntry *ui;
+ WalletModel *model;
+};
+
+#endif // SENDCOINSENTRY_H
diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp
new file mode 100644
index 0000000000..529a9d6ca1
--- /dev/null
+++ b/src/qt/transactiondesc.cpp
@@ -0,0 +1,291 @@
+#include <transactiondesc.h>
+
+#include "guiutil.h"
+#include "bitcoinunits.h"
+
+#include "headers.h"
+#include "qtui.h"
+
+#include <QString>
+#include <QTextDocument> // For Qt::escape
+
+using namespace std;
+
+QString TransactionDesc::HtmlEscape(const QString& str, bool fMultiLine)
+{
+ QString escaped = Qt::escape(str);
+ if(fMultiLine)
+ {
+ escaped = escaped.replace("\n", "<br>\n");
+ }
+ return escaped;
+}
+
+QString TransactionDesc::HtmlEscape(const std::string& str, bool fMultiLine)
+{
+ return HtmlEscape(QString::fromStdString(str), fMultiLine);
+}
+
+QString TransactionDesc::FormatTxStatus(const CWalletTx& wtx)
+{
+ if (!wtx.IsFinal())
+ {
+ if (wtx.nLockTime < LOCKTIME_THRESHOLD)
+ return tr("Open for %1 blocks").arg(nBestHeight - wtx.nLockTime);
+ else
+ return tr("Open until %1").arg(GUIUtil::dateTimeStr(wtx.nLockTime));
+ }
+ else
+ {
+ int nDepth = wtx.GetDepthInMainChain();
+ if (GetAdjustedTime() - wtx.nTimeReceived > 2 * 60 && wtx.GetRequestCount() == 0)
+ return tr("%1/offline?").arg(nDepth);
+ else if (nDepth < 6)
+ return tr("%1/unconfirmed").arg(nDepth);
+ else
+ return tr("%1 confirmations").arg(nDepth);
+ }
+}
+
+QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx)
+{
+ QString strHTML;
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ strHTML.reserve(4000);
+ strHTML += "<html><font face='verdana, arial, helvetica, sans-serif'>";
+
+ int64 nTime = wtx.GetTxTime();
+ int64 nCredit = wtx.GetCredit();
+ int64 nDebit = wtx.GetDebit();
+ int64 nNet = nCredit - nDebit;
+
+ strHTML += tr("<b>Status:</b> ") + FormatTxStatus(wtx);
+ int nRequests = wtx.GetRequestCount();
+ if (nRequests != -1)
+ {
+ if (nRequests == 0)
+ strHTML += tr(", has not been successfully broadcast yet");
+ else if (nRequests == 1)
+ strHTML += tr(", broadcast through %1 node").arg(nRequests);
+ else
+ strHTML += tr(", broadcast through %1 nodes").arg(nRequests);
+ }
+ strHTML += "<br>";
+
+ strHTML += tr("<b>Date:</b> ") + (nTime ? GUIUtil::dateTimeStr(nTime) : QString("")) + "<br>";
+
+ //
+ // From
+ //
+ if (wtx.IsCoinBase())
+ {
+ strHTML += tr("<b>Source:</b> Generated<br>");
+ }
+ else if (wtx.mapValue.count("from") && !wtx.mapValue["from"].empty())
+ {
+ // Online transaction
+ strHTML += tr("<b>From:</b> ") + HtmlEscape(wtx.mapValue["from"]) + "<br>";
+ }
+ else
+ {
+ // Offline transaction
+ if (nNet > 0)
+ {
+ // Credit
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ {
+ if (wallet->IsMine(txout))
+ {
+ CBitcoinAddress address;
+ if (ExtractAddress(txout.scriptPubKey, wallet, address))
+ {
+ if (wallet->mapAddressBook.count(address))
+ {
+ strHTML += tr("<b>From:</b> ") + tr("unknown") + "<br>";
+ strHTML += tr("<b>To:</b> ");
+ strHTML += HtmlEscape(address.ToString());
+ if (!wallet->mapAddressBook[address].empty())
+ strHTML += tr(" (yours, label: ") + HtmlEscape(wallet->mapAddressBook[address]) + ")";
+ else
+ strHTML += tr(" (yours)");
+ strHTML += "<br>";
+ }
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ //
+ // To
+ //
+ string strAddress;
+ if (wtx.mapValue.count("to") && !wtx.mapValue["to"].empty())
+ {
+ // Online transaction
+ strAddress = wtx.mapValue["to"];
+ strHTML += tr("<b>To:</b> ");
+ if (wallet->mapAddressBook.count(strAddress) && !wallet->mapAddressBook[strAddress].empty())
+ strHTML += HtmlEscape(wallet->mapAddressBook[strAddress]) + " ";
+ strHTML += HtmlEscape(strAddress) + "<br>";
+ }
+
+ //
+ // Amount
+ //
+ if (wtx.IsCoinBase() && nCredit == 0)
+ {
+ //
+ // Coinbase
+ //
+ int64 nUnmatured = 0;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ nUnmatured += wallet->GetCredit(txout);
+ strHTML += tr("<b>Credit:</b> ");
+ if (wtx.IsInMainChain())
+ strHTML += tr("(%1 matures in %2 more blocks)")
+ .arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, nUnmatured))
+ .arg(wtx.GetBlocksToMaturity());
+ else
+ strHTML += tr("(not accepted)");
+ strHTML += "<br>";
+ }
+ else if (nNet > 0)
+ {
+ //
+ // Credit
+ //
+ strHTML += tr("<b>Credit:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, nNet) + "<br>";
+ }
+ else
+ {
+ bool fAllFromMe = true;
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ fAllFromMe = fAllFromMe && wallet->IsMine(txin);
+
+ bool fAllToMe = true;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ fAllToMe = fAllToMe && wallet->IsMine(txout);
+
+ if (fAllFromMe)
+ {
+ //
+ // Debit
+ //
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ {
+ if (wallet->IsMine(txout))
+ continue;
+
+ if (!wtx.mapValue.count("to") || wtx.mapValue["to"].empty())
+ {
+ // Offline transaction
+ CBitcoinAddress address;
+ if (ExtractAddress(txout.scriptPubKey, 0, address))
+ {
+ strHTML += tr("<b>To:</b> ");
+ if (wallet->mapAddressBook.count(address) && !wallet->mapAddressBook[address].empty())
+ strHTML += HtmlEscape(wallet->mapAddressBook[address]) + " ";
+ strHTML += HtmlEscape(address.ToString());
+ strHTML += "<br>";
+ }
+ }
+
+ strHTML += tr("<b>Debit:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, -txout.nValue) + "<br>";
+ }
+
+ if (fAllToMe)
+ {
+ // Payment to self
+ int64 nChange = wtx.GetChange();
+ int64 nValue = nCredit - nChange;
+ strHTML += tr("<b>Debit:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, -nValue) + "<br>";
+ strHTML += tr("<b>Credit:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, nValue) + "<br>";
+ }
+
+ int64 nTxFee = nDebit - wtx.GetValueOut();
+ if (nTxFee > 0)
+ strHTML += tr("<b>Transaction fee:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC,-nTxFee) + "<br>";
+ }
+ else
+ {
+ //
+ // Mixed debit transaction
+ //
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ if (wallet->IsMine(txin))
+ strHTML += tr("<b>Debit:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC,-wallet->GetDebit(txin)) + "<br>";
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ if (wallet->IsMine(txout))
+ strHTML += tr("<b>Credit:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC,wallet->GetCredit(txout)) + "<br>";
+ }
+ }
+
+ strHTML += tr("<b>Net amount:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC,nNet, true) + "<br>";
+
+ //
+ // Message
+ //
+ if (wtx.mapValue.count("message") && !wtx.mapValue["message"].empty())
+ strHTML += QString("<br><b>") + tr("Message:") + "</b><br>" + HtmlEscape(wtx.mapValue["message"], true) + "<br>";
+ if (wtx.mapValue.count("comment") && !wtx.mapValue["comment"].empty())
+ strHTML += QString("<br><b>") + tr("Comment:") + "</b><br>" + HtmlEscape(wtx.mapValue["comment"], true) + "<br>";
+
+ if (wtx.IsCoinBase())
+ strHTML += QString("<br>") + tr("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 \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.") + "<br>";
+
+ //
+ // Debug view
+ //
+ if (fDebug)
+ {
+ strHTML += "<hr><br>Debug information<br><br>";
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ if(wallet->IsMine(txin))
+ strHTML += "<b>Debit:</b> " + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC,-wallet->GetDebit(txin)) + "<br>";
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ if(wallet->IsMine(txout))
+ strHTML += "<b>Credit:</b> " + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC,wallet->GetCredit(txout)) + "<br>";
+
+ strHTML += "<br><b>Transaction:</b><br>";
+ strHTML += HtmlEscape(wtx.ToString(), true);
+
+ CTxDB txdb("r"); // To fetch source txouts
+
+ strHTML += "<br><b>Inputs:</b>";
+ strHTML += "<ul>";
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ {
+ COutPoint prevout = txin.prevout;
+
+ CTransaction prev;
+ if(txdb.ReadDiskTx(prevout.hash, prev))
+ {
+ if (prevout.n < prev.vout.size())
+ {
+ strHTML += "<li>";
+ const CTxOut &vout = prev.vout[prevout.n];
+ CBitcoinAddress address;
+ if (ExtractAddress(vout.scriptPubKey, 0, address))
+ {
+ if (wallet->mapAddressBook.count(address) && !wallet->mapAddressBook[address].empty())
+ strHTML += HtmlEscape(wallet->mapAddressBook[address]) + " ";
+ strHTML += QString::fromStdString(address.ToString());
+ }
+ strHTML = strHTML + " Amount=" + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC,vout.nValue);
+ strHTML = strHTML + " IsMine=" + (wallet->IsMine(vout) ? "true" : "false") + "</li>";
+ }
+ }
+ }
+ }
+ strHTML += "</ul>";
+ }
+
+ strHTML += "</font></html>";
+ }
+ return strHTML;
+}
diff --git a/src/qt/transactiondesc.h b/src/qt/transactiondesc.h
new file mode 100644
index 0000000000..55b9eaf489
--- /dev/null
+++ b/src/qt/transactiondesc.h
@@ -0,0 +1,26 @@
+#ifndef TRANSACTIONDESC_H
+#define TRANSACTIONDESC_H
+
+#include <QString>
+#include <QObject>
+#include <string>
+
+class CWallet;
+class CWalletTx;
+
+/** Provide a human-readable extended HTML description of a transaction.
+ */
+class TransactionDesc: public QObject
+{
+ Q_OBJECT
+public:
+ static QString toHTML(CWallet *wallet, CWalletTx &wtx);
+private:
+ TransactionDesc() {}
+
+ static QString HtmlEscape(const QString& str, bool fMultiLine=false);
+ static QString HtmlEscape(const std::string &str, bool fMultiLine=false);
+ static QString FormatTxStatus(const CWalletTx& wtx);
+};
+
+#endif // TRANSACTIONDESC_H
diff --git a/src/qt/transactiondescdialog.cpp b/src/qt/transactiondescdialog.cpp
new file mode 100644
index 0000000000..3bd4808cb6
--- /dev/null
+++ b/src/qt/transactiondescdialog.cpp
@@ -0,0 +1,20 @@
+#include "transactiondescdialog.h"
+#include "ui_transactiondescdialog.h"
+
+#include "transactiontablemodel.h"
+
+#include <QModelIndex>
+
+TransactionDescDialog::TransactionDescDialog(const QModelIndex &idx, QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::TransactionDescDialog)
+{
+ ui->setupUi(this);
+ QString desc = idx.data(TransactionTableModel::LongDescriptionRole).toString();
+ ui->detailText->setHtml(desc);
+}
+
+TransactionDescDialog::~TransactionDescDialog()
+{
+ delete ui;
+}
diff --git a/src/qt/transactiondescdialog.h b/src/qt/transactiondescdialog.h
new file mode 100644
index 0000000000..e86fb58a64
--- /dev/null
+++ b/src/qt/transactiondescdialog.h
@@ -0,0 +1,26 @@
+#ifndef TRANSACTIONDESCDIALOG_H
+#define TRANSACTIONDESCDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+ class TransactionDescDialog;
+}
+QT_BEGIN_NAMESPACE
+class QModelIndex;
+QT_END_NAMESPACE
+
+/** Dialog showing transaction details. */
+class TransactionDescDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit TransactionDescDialog(const QModelIndex &idx, QWidget *parent = 0);
+ ~TransactionDescDialog();
+
+private:
+ Ui::TransactionDescDialog *ui;
+};
+
+#endif // TRANSACTIONDESCDIALOG_H
diff --git a/src/qt/transactionfilterproxy.cpp b/src/qt/transactionfilterproxy.cpp
new file mode 100644
index 0000000000..16fb4dab92
--- /dev/null
+++ b/src/qt/transactionfilterproxy.cpp
@@ -0,0 +1,86 @@
+#include "transactionfilterproxy.h"
+#include "transactiontablemodel.h"
+
+#include <QDateTime>
+
+#include <cstdlib>
+
+// Earliest date that can be represented (far in the past)
+const QDateTime TransactionFilterProxy::MIN_DATE = QDateTime::fromTime_t(0);
+// Last date that can be represented (far in the future)
+const QDateTime TransactionFilterProxy::MAX_DATE = QDateTime::fromTime_t(0xFFFFFFFF);
+
+TransactionFilterProxy::TransactionFilterProxy(QObject *parent) :
+ QSortFilterProxyModel(parent),
+ dateFrom(MIN_DATE),
+ dateTo(MAX_DATE),
+ addrPrefix(),
+ typeFilter(ALL_TYPES),
+ minAmount(0),
+ limitRows(-1)
+{
+}
+
+bool TransactionFilterProxy::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
+{
+ QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
+
+ int type = index.data(TransactionTableModel::TypeRole).toInt();
+ QDateTime datetime = index.data(TransactionTableModel::DateRole).toDateTime();
+ QString address = index.data(TransactionTableModel::AddressRole).toString();
+ QString label = index.data(TransactionTableModel::LabelRole).toString();
+ qint64 amount = llabs(index.data(TransactionTableModel::AmountRole).toLongLong());
+
+ if(!(TYPE(type) & typeFilter))
+ return false;
+ if(datetime < dateFrom || datetime > dateTo)
+ return false;
+ if (!address.contains(addrPrefix, Qt::CaseInsensitive) && !label.contains(addrPrefix, Qt::CaseInsensitive))
+ return false;
+ if(amount < minAmount)
+ return false;
+
+ return true;
+}
+
+void TransactionFilterProxy::setDateRange(const QDateTime &from, const QDateTime &to)
+{
+ this->dateFrom = from;
+ this->dateTo = to;
+ invalidateFilter();
+}
+
+void TransactionFilterProxy::setAddressPrefix(const QString &addrPrefix)
+{
+ this->addrPrefix = addrPrefix;
+ invalidateFilter();
+}
+
+void TransactionFilterProxy::setTypeFilter(quint32 modes)
+{
+ this->typeFilter = modes;
+ invalidateFilter();
+}
+
+void TransactionFilterProxy::setMinAmount(qint64 minimum)
+{
+ this->minAmount = minimum;
+ invalidateFilter();
+}
+
+void TransactionFilterProxy::setLimit(int limit)
+{
+ this->limitRows = limit;
+}
+
+int TransactionFilterProxy::rowCount(const QModelIndex &parent) const
+{
+ if(limitRows != -1)
+ {
+ return std::min(QSortFilterProxyModel::rowCount(parent), limitRows);
+ }
+ else
+ {
+ return QSortFilterProxyModel::rowCount(parent);
+ }
+}
diff --git a/src/qt/transactionfilterproxy.h b/src/qt/transactionfilterproxy.h
new file mode 100644
index 0000000000..30b98588f0
--- /dev/null
+++ b/src/qt/transactionfilterproxy.h
@@ -0,0 +1,52 @@
+#ifndef TRANSACTIONFILTERPROXY_H
+#define TRANSACTIONFILTERPROXY_H
+
+#include <QSortFilterProxyModel>
+#include <QDateTime>
+
+/** Filter the transaction list according to pre-specified rules. */
+class TransactionFilterProxy : public QSortFilterProxyModel
+{
+ Q_OBJECT
+public:
+ explicit TransactionFilterProxy(QObject *parent = 0);
+
+ /** Earliest date that can be represented (far in the past) */
+ static const QDateTime MIN_DATE;
+ /** Last date that can be represented (far in the future) */
+ static const QDateTime MAX_DATE;
+ /** Type filter bit field (all types) */
+ static const quint32 ALL_TYPES = 0xFFFFFFFF;
+
+ static quint32 TYPE(int type) { return 1<<type; }
+
+ void setDateRange(const QDateTime &from, const QDateTime &to);
+ void setAddressPrefix(const QString &addrPrefix);
+ /**
+ @note Type filter takes a bit field created with TYPE() or ALL_TYPES
+ */
+ void setTypeFilter(quint32 modes);
+ void setMinAmount(qint64 minimum);
+
+ /** Set maximum number of rows returned, -1 if unlimited. */
+ void setLimit(int limit);
+
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+protected:
+ bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const;
+
+private:
+ QDateTime dateFrom;
+ QDateTime dateTo;
+ QString addrPrefix;
+ quint32 typeFilter;
+ qint64 minAmount;
+ int limitRows;
+
+signals:
+
+public slots:
+
+};
+
+#endif // TRANSACTIONFILTERPROXY_H
diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp
new file mode 100644
index 0000000000..5ec463b207
--- /dev/null
+++ b/src/qt/transactionrecord.cpp
@@ -0,0 +1,249 @@
+#include "transactionrecord.h"
+
+#include "headers.h"
+
+/* Return positive answer if transaction should be shown in list.
+ */
+bool TransactionRecord::showTransaction(const CWalletTx &wtx)
+{
+ if (wtx.IsCoinBase())
+ {
+ // Don't show generated coin until confirmed by at least one block after it
+ // so we don't get the user's hopes up until it looks like it's probably accepted.
+ //
+ // It is not an error when generated blocks are not accepted. By design,
+ // some percentage of blocks, like 10% or more, will end up not accepted.
+ // This is the normal mechanism by which the network copes with latency.
+ //
+ // We display regular transactions right away before any confirmation
+ // because they can always get into some block eventually. Generated coins
+ // are special because if their block is not accepted, they are not valid.
+ //
+ if (wtx.GetDepthInMainChain() < 2)
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
+/*
+ * Decompose CWallet transaction to model transaction records.
+ */
+QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *wallet, const CWalletTx &wtx)
+{
+ QList<TransactionRecord> parts;
+ int64 nTime = wtx.nTimeDisplayed = wtx.GetTxTime();
+ int64 nCredit = wtx.GetCredit(true);
+ int64 nDebit = wtx.GetDebit();
+ int64 nNet = nCredit - nDebit;
+ uint256 hash = wtx.GetHash();
+ std::map<std::string, std::string> mapValue = wtx.mapValue;
+
+ if (showTransaction(wtx))
+ {
+ if (nNet > 0 || wtx.IsCoinBase())
+ {
+ //
+ // Credit
+ //
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ {
+ if(wallet->IsMine(txout))
+ {
+ TransactionRecord sub(hash, nTime);
+ CBitcoinAddress address;
+ sub.idx = parts.size(); // sequence number
+ sub.credit = txout.nValue;
+ if (wtx.IsCoinBase())
+ {
+ // Generated
+ sub.type = TransactionRecord::Generated;
+ }
+ else if (ExtractAddress(txout.scriptPubKey, wallet, 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);
+ }
+ }
+ }
+ else
+ {
+ bool fAllFromMe = true;
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ fAllFromMe = fAllFromMe && wallet->IsMine(txin);
+
+ bool fAllToMe = true;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ fAllToMe = fAllToMe && wallet->IsMine(txout);
+
+ if (fAllFromMe && fAllToMe)
+ {
+ // Payment to self
+ int64 nChange = wtx.GetChange();
+
+ parts.append(TransactionRecord(hash, nTime, TransactionRecord::SendToSelf, "",
+ -(nDebit - nChange), nCredit - nChange));
+ }
+ else if (fAllFromMe)
+ {
+ //
+ // Debit
+ //
+ int64 nTxFee = nDebit - wtx.GetValueOut();
+
+ for (int nOut = 0; nOut < wtx.vout.size(); nOut++)
+ {
+ const CTxOut& txout = wtx.vout[nOut];
+ TransactionRecord sub(hash, nTime);
+ sub.idx = parts.size();
+
+ if(wallet->IsMine(txout))
+ {
+ // Ignore parts sent to self, as this is usually the change
+ // from a transaction sent back to our own address.
+ continue;
+ }
+
+ CBitcoinAddress address;
+ if (ExtractAddress(txout.scriptPubKey, 0, address))
+ {
+ // Sent to Bitcoin Address
+ sub.type = TransactionRecord::SendToAddress;
+ sub.address = address.ToString();
+ }
+ else
+ {
+ // Sent to IP, or other non-address transaction like OP_EVAL
+ sub.type = TransactionRecord::SendToOther;
+ sub.address = mapValue["to"];
+ }
+
+ int64 nValue = txout.nValue;
+ /* Add fee to first output */
+ if (nTxFee > 0)
+ {
+ nValue += nTxFee;
+ nTxFee = 0;
+ }
+ sub.debit = -nValue;
+
+ parts.append(sub);
+ }
+ }
+ else
+ {
+ //
+ // 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));
+ }
+ }
+ }
+
+ return parts;
+}
+
+void TransactionRecord::updateStatus(const CWalletTx &wtx)
+{
+ // Determine transaction status
+
+ // Find the block the tx is in
+ CBlockIndex* pindex = NULL;
+ std::map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.find(wtx.hashBlock);
+ if (mi != mapBlockIndex.end())
+ pindex = (*mi).second;
+
+ // Sort order, unrecorded transactions sort to the top
+ status.sortKey = strprintf("%010d-%01d-%010u-%03d",
+ (pindex ? pindex->nHeight : std::numeric_limits<int>::max()),
+ (wtx.IsCoinBase() ? 1 : 0),
+ wtx.nTimeReceived,
+ idx);
+ status.confirmed = wtx.IsConfirmed();
+ status.depth = wtx.GetDepthInMainChain();
+ status.cur_num_blocks = nBestHeight;
+
+ if (!wtx.IsFinal())
+ {
+ if (wtx.nLockTime < LOCKTIME_THRESHOLD)
+ {
+ status.status = TransactionStatus::OpenUntilBlock;
+ status.open_for = nBestHeight - wtx.nLockTime;
+ }
+ else
+ {
+ status.status = TransactionStatus::OpenUntilDate;
+ status.open_for = wtx.nLockTime;
+ }
+ }
+ else
+ {
+ if (GetAdjustedTime() - wtx.nTimeReceived > 2 * 60 && wtx.GetRequestCount() == 0)
+ {
+ status.status = TransactionStatus::Offline;
+ }
+ else if (status.depth < NumConfirmations)
+ {
+ status.status = TransactionStatus::Unconfirmed;
+ }
+ else
+ {
+ status.status = TransactionStatus::HaveConfirmations;
+ }
+ }
+
+ // For generated transactions, determine maturity
+ if(type == TransactionRecord::Generated)
+ {
+ int64 nCredit = wtx.GetCredit(true);
+ if (nCredit == 0)
+ {
+ status.maturity = TransactionStatus::Immature;
+
+ if (wtx.IsInMainChain())
+ {
+ status.matures_in = wtx.GetBlocksToMaturity();
+
+ // Check if the block was requested by anyone
+ if (GetAdjustedTime() - wtx.nTimeReceived > 2 * 60 && wtx.GetRequestCount() == 0)
+ status.maturity = TransactionStatus::MaturesWarning;
+ }
+ else
+ {
+ status.maturity = TransactionStatus::NotAccepted;
+ }
+ }
+ else
+ {
+ status.maturity = TransactionStatus::Mature;
+ }
+ }
+}
+
+bool TransactionRecord::statusUpdateNeeded()
+{
+ return status.cur_num_blocks != nBestHeight;
+}
+
+std::string TransactionRecord::getTxID()
+{
+ return hash.ToString() + strprintf("-%03d", idx);
+}
+
diff --git a/src/qt/transactionrecord.h b/src/qt/transactionrecord.h
new file mode 100644
index 0000000000..db06374c44
--- /dev/null
+++ b/src/qt/transactionrecord.h
@@ -0,0 +1,129 @@
+#ifndef TRANSACTIONRECORD_H
+#define TRANSACTIONRECORD_H
+
+#include "uint256.h"
+
+#include <QList>
+
+class CWallet;
+class CWalletTx;
+
+/** UI model for transaction status. The transaction status is the part of a transaction that will change over time.
+ */
+class TransactionStatus
+{
+public:
+ TransactionStatus():
+ confirmed(false), sortKey(""), maturity(Mature),
+ matures_in(0), status(Offline), depth(0), open_for(0), cur_num_blocks(-1)
+ { }
+
+ enum Maturity
+ {
+ Immature,
+ Mature,
+ MaturesWarning, /**< Transaction will likely not mature because no nodes have confirmed */
+ NotAccepted
+ };
+
+ enum Status {
+ OpenUntilDate,
+ OpenUntilBlock,
+ Offline,
+ Unconfirmed,
+ HaveConfirmations
+ };
+
+ bool confirmed;
+ std::string sortKey;
+
+ /** @name Generated (mined) transactions
+ @{*/
+ Maturity maturity;
+ int matures_in;
+ /**@}*/
+
+ /** @name Reported status
+ @{*/
+ Status status;
+ int64 depth;
+ int64 open_for; /**< Timestamp if status==OpenUntilDate, otherwise number of blocks */
+ /**@}*/
+
+ /** Current number of blocks (to know whether cached status is still valid) */
+ int cur_num_blocks;
+};
+
+/** UI model for a transaction. A core transaction can be represented by multiple UI transactions if it has
+ multiple outputs.
+ */
+class TransactionRecord
+{
+public:
+ enum Type
+ {
+ Other,
+ Generated,
+ SendToAddress,
+ SendToOther,
+ RecvWithAddress,
+ RecvFromOther,
+ SendToSelf
+ };
+
+ /** Number of confirmation needed for transaction */
+ static const int NumConfirmations = 6;
+
+ TransactionRecord():
+ hash(), time(0), type(Other), address(""), debit(0), credit(0), idx(0)
+ {
+ }
+
+ TransactionRecord(uint256 hash, int64 time):
+ hash(hash), time(time), type(Other), address(""), debit(0),
+ credit(0), idx(0)
+ {
+ }
+
+ TransactionRecord(uint256 hash, int64 time,
+ Type type, const std::string &address,
+ int64 debit, int64 credit):
+ hash(hash), time(time), type(type), address(address), debit(debit), credit(credit),
+ idx(0)
+ {
+ }
+
+ /** Decompose CWallet transaction to model transaction records.
+ */
+ static bool showTransaction(const CWalletTx &wtx);
+ static QList<TransactionRecord> decomposeTransaction(const CWallet *wallet, const CWalletTx &wtx);
+
+ /** @name Immutable transaction attributes
+ @{*/
+ uint256 hash;
+ int64 time;
+ Type type;
+ std::string address;
+ int64 debit;
+ int64 credit;
+ /**@}*/
+
+ /** Subtransaction index, for sort key */
+ int idx;
+
+ /** Status: can change with block chain update */
+ TransactionStatus status;
+
+ /** Return the unique identifier for this transaction (part) */
+ std::string getTxID();
+
+ /** Update status from core wallet tx.
+ */
+ void updateStatus(const CWalletTx &wtx);
+
+ /** Return whether a status update is needed.
+ */
+ bool statusUpdateNeeded();
+};
+
+#endif // TRANSACTIONRECORD_H
diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp
new file mode 100644
index 0000000000..a8ffe62ed9
--- /dev/null
+++ b/src/qt/transactiontablemodel.cpp
@@ -0,0 +1,628 @@
+#include "transactiontablemodel.h"
+#include "guiutil.h"
+#include "transactionrecord.h"
+#include "guiconstants.h"
+#include "transactiondesc.h"
+#include "walletmodel.h"
+#include "optionsmodel.h"
+#include "addresstablemodel.h"
+#include "bitcoinunits.h"
+
+#include "headers.h"
+
+#include <QLocale>
+#include <QList>
+#include <QColor>
+#include <QTimer>
+#include <QIcon>
+#include <QDateTime>
+#include <QtAlgorithms>
+
+// Amount column is right-aligned it contains numbers
+static int column_alignments[] = {
+ Qt::AlignLeft|Qt::AlignVCenter,
+ Qt::AlignLeft|Qt::AlignVCenter,
+ Qt::AlignLeft|Qt::AlignVCenter,
+ Qt::AlignLeft|Qt::AlignVCenter,
+ Qt::AlignRight|Qt::AlignVCenter
+ };
+
+// Comparison operator for sort/binary search of model tx list
+struct TxLessThan
+{
+ bool operator()(const TransactionRecord &a, const TransactionRecord &b) const
+ {
+ return a.hash < b.hash;
+ }
+ bool operator()(const TransactionRecord &a, const uint256 &b) const
+ {
+ return a.hash < b;
+ }
+ bool operator()(const uint256 &a, const TransactionRecord &b) const
+ {
+ return a < b.hash;
+ }
+};
+
+// Private implementation
+class TransactionTablePriv
+{
+public:
+ TransactionTablePriv(CWallet *wallet, TransactionTableModel *parent):
+ wallet(wallet),
+ parent(parent)
+ {
+ }
+ CWallet *wallet;
+ TransactionTableModel *parent;
+
+ /* Local cache of wallet.
+ * As it is in the same order as the CWallet, by definition
+ * this is sorted by sha256.
+ */
+ QList<TransactionRecord> cachedWallet;
+
+ /* Query entire wallet anew from core.
+ */
+ void refreshWallet()
+ {
+#ifdef WALLET_UPDATE_DEBUG
+ qDebug() << "refreshWallet";
+#endif
+ cachedWallet.clear();
+ CRITICAL_BLOCK(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));
+ }
+ }
+ }
+
+ /* Update our model of the wallet incrementally, to synchronize our model of the wallet
+ with that of the core.
+
+ Call with list of hashes of transactions that were added, removed or changed.
+ */
+ void updateWallet(const QList<uint256> &updated)
+ {
+ // Walk through updated transactions, update model as needed.
+#ifdef WALLET_UPDATE_DEBUG
+ qDebug() << "updateWallet";
+#endif
+ // Sort update list, and iterate through it in reverse, so that model updates
+ // can be emitted from end to beginning (so that earlier updates will not influence
+ // the indices of latter ones).
+ QList<uint256> updated_sorted = updated;
+ qSort(updated_sorted);
+
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ for(int update_idx = updated_sorted.size()-1; update_idx >= 0; --update_idx)
+ {
+ const uint256 &hash = updated_sorted.at(update_idx);
+ // Find transaction in wallet
+ std::map<uint256, CWalletTx>::iterator mi = wallet->mapWallet.find(hash);
+ bool inWallet = mi != wallet->mapWallet.end();
+ // Find bounds of this transaction in model
+ QList<TransactionRecord>::iterator lower = qLowerBound(
+ cachedWallet.begin(), cachedWallet.end(), hash, TxLessThan());
+ QList<TransactionRecord>::iterator upper = qUpperBound(
+ cachedWallet.begin(), cachedWallet.end(), hash, TxLessThan());
+ int lowerIndex = (lower - cachedWallet.begin());
+ int upperIndex = (upper - cachedWallet.begin());
+
+ // Determine if transaction is in model already
+ bool inModel = false;
+ if(lower != upper)
+ {
+ inModel = true;
+ }
+
+#ifdef WALLET_UPDATE_DEBUG
+ qDebug() << " " << QString::fromStdString(hash.ToString()) << inWallet << " " << inModel
+ << lowerIndex << "-" << upperIndex;
+#endif
+
+ if(inWallet && !inModel)
+ {
+ // Added -- insert at the right position
+ QList<TransactionRecord> toInsert =
+ TransactionRecord::decomposeTransaction(wallet, mi->second);
+ if(!toInsert.isEmpty()) /* only if something to insert */
+ {
+ parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex+toInsert.size()-1);
+ int insert_idx = lowerIndex;
+ foreach(const TransactionRecord &rec, toInsert)
+ {
+ cachedWallet.insert(insert_idx, rec);
+ insert_idx += 1;
+ }
+ parent->endInsertRows();
+ }
+ }
+ else if(!inWallet && inModel)
+ {
+ // Removed -- remove entire transaction from table
+ parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
+ cachedWallet.erase(lower, upper);
+ parent->endRemoveRows();
+ }
+ else if(inWallet && inModel)
+ {
+ // Updated -- nothing to do, status update will take care of this
+ }
+ }
+ }
+ }
+
+ int size()
+ {
+ return cachedWallet.size();
+ }
+
+ TransactionRecord *index(int idx)
+ {
+ if(idx >= 0 && idx < cachedWallet.size())
+ {
+ TransactionRecord *rec = &cachedWallet[idx];
+
+ // If a status update is needed (blocks came in since last check),
+ // update the status of this transaction from the wallet. Otherwise,
+ // simply re-use the cached status.
+ if(rec->statusUpdateNeeded())
+ {
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ std::map<uint256, CWalletTx>::iterator mi = wallet->mapWallet.find(rec->hash);
+
+ if(mi != wallet->mapWallet.end())
+ {
+ rec->updateStatus(mi->second);
+ }
+ }
+ }
+ return rec;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ QString describe(TransactionRecord *rec)
+ {
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ std::map<uint256, CWalletTx>::iterator mi = wallet->mapWallet.find(rec->hash);
+ if(mi != wallet->mapWallet.end())
+ {
+ return TransactionDesc::toHTML(wallet, mi->second);
+ }
+ }
+ return QString("");
+ }
+
+};
+
+TransactionTableModel::TransactionTableModel(CWallet* wallet, WalletModel *parent):
+ QAbstractTableModel(parent),
+ wallet(wallet),
+ walletModel(parent),
+ priv(new TransactionTablePriv(wallet, this))
+{
+ columns << QString() << tr("Date") << tr("Type") << tr("Address") << tr("Amount");
+
+ priv->refreshWallet();
+
+ QTimer *timer = new QTimer(this);
+ connect(timer, SIGNAL(timeout()), this, SLOT(update()));
+ timer->start(MODEL_UPDATE_DELAY);
+
+ connect(walletModel->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
+}
+
+TransactionTableModel::~TransactionTableModel()
+{
+ delete priv;
+}
+
+void TransactionTableModel::update()
+{
+ QList<uint256> updated;
+
+ // Check if there are changes to wallet map
+ TRY_CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ if(!wallet->vWalletUpdated.empty())
+ {
+ BOOST_FOREACH(uint256 hash, wallet->vWalletUpdated)
+ {
+ updated.append(hash);
+ }
+ wallet->vWalletUpdated.clear();
+ }
+ }
+
+ if(!updated.empty())
+ {
+ priv->updateWallet(updated);
+
+ // Status (number of confirmations) and (possibly) description
+ // columns changed for all rows.
+ emit dataChanged(index(0, Status), index(priv->size()-1, Status));
+ emit dataChanged(index(0, ToAddress), index(priv->size()-1, ToAddress));
+ }
+}
+
+int TransactionTableModel::rowCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return priv->size();
+}
+
+int TransactionTableModel::columnCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return columns.length();
+}
+
+QString TransactionTableModel::formatTxStatus(const TransactionRecord *wtx) const
+{
+ QString status;
+
+ switch(wtx->status.status)
+ {
+ case TransactionStatus::OpenUntilBlock:
+ status = tr("Open for %n block(s)","",wtx->status.open_for);
+ break;
+ case TransactionStatus::OpenUntilDate:
+ status = tr("Open until %1").arg(GUIUtil::dateTimeStr(wtx->status.open_for));
+ break;
+ case TransactionStatus::Offline:
+ status = tr("Offline (%1 confirmations)").arg(wtx->status.depth);
+ break;
+ case TransactionStatus::Unconfirmed:
+ status = tr("Unconfirmed (%1 of %2 confirmations)").arg(wtx->status.depth).arg(TransactionRecord::NumConfirmations);
+ break;
+ case TransactionStatus::HaveConfirmations:
+ status = tr("Confirmed (%1 confirmations)").arg(wtx->status.depth);
+ break;
+ }
+ if(wtx->type == TransactionRecord::Generated)
+ {
+ switch(wtx->status.maturity)
+ {
+ case TransactionStatus::Immature:
+ 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 += "\n" + tr("This block was not received by any other nodes and will probably not be accepted!");
+ break;
+ case TransactionStatus::NotAccepted:
+ status += "\n" + tr("Generated but not accepted");
+ break;
+ }
+ }
+
+ return status;
+}
+
+QString TransactionTableModel::formatTxDate(const TransactionRecord *wtx) const
+{
+ if(wtx->time)
+ {
+ return GUIUtil::dateTimeStr(wtx->time);
+ }
+ else
+ {
+ return QString();
+ }
+}
+
+/* Look up address in address book, if found return label (address)
+ otherwise just return (address)
+ */
+QString TransactionTableModel::lookupAddress(const std::string &address, bool tooltip) const
+{
+ QString label = walletModel->getAddressTableModel()->labelForAddress(QString::fromStdString(address));
+ QString description;
+ if(!label.isEmpty())
+ {
+ description += label + QString(" ");
+ }
+ if(label.isEmpty() || walletModel->getOptionsModel()->getDisplayAddresses() || tooltip)
+ {
+ description += QString("(") + QString::fromStdString(address) + QString(")");
+ }
+ return description;
+}
+
+QString TransactionTableModel::formatTxType(const TransactionRecord *wtx) const
+{
+ switch(wtx->type)
+ {
+ case TransactionRecord::RecvWithAddress:
+ return tr("Received with");
+ case TransactionRecord::RecvFromOther:
+ return tr("Received from");
+ case TransactionRecord::SendToAddress:
+ case TransactionRecord::SendToOther:
+ return tr("Sent to");
+ case TransactionRecord::SendToSelf:
+ return tr("Payment to yourself");
+ case TransactionRecord::Generated:
+ return tr("Mined");
+ default:
+ return QString();
+ }
+}
+
+QVariant TransactionTableModel::txAddressDecoration(const TransactionRecord *wtx) const
+{
+ switch(wtx->type)
+ {
+ case TransactionRecord::Generated:
+ return QIcon(":/icons/tx_mined");
+ case TransactionRecord::RecvWithAddress:
+ case TransactionRecord::RecvFromOther:
+ return QIcon(":/icons/tx_input");
+ case TransactionRecord::SendToAddress:
+ case TransactionRecord::SendToOther:
+ return QIcon(":/icons/tx_output");
+ default:
+ return QIcon(":/icons/tx_inout");
+ }
+ return QVariant();
+}
+
+QString TransactionTableModel::formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const
+{
+ switch(wtx->type)
+ {
+ case TransactionRecord::RecvFromOther:
+ return QString::fromStdString(wtx->address);
+ case TransactionRecord::RecvWithAddress:
+ case TransactionRecord::SendToAddress:
+ return lookupAddress(wtx->address, tooltip);
+ case TransactionRecord::SendToOther:
+ return QString::fromStdString(wtx->address);
+ case TransactionRecord::SendToSelf:
+ case TransactionRecord::Generated:
+ default:
+ return tr("(n/a)");
+ }
+}
+
+QVariant TransactionTableModel::addressColor(const TransactionRecord *wtx) const
+{
+ // Show addresses without label in a less visible color
+ switch(wtx->type)
+ {
+ case TransactionRecord::RecvWithAddress:
+ case TransactionRecord::SendToAddress:
+ {
+ QString label = walletModel->getAddressTableModel()->labelForAddress(QString::fromStdString(wtx->address));
+ if(label.isEmpty())
+ return COLOR_BAREADDRESS;
+ } break;
+ case TransactionRecord::SendToSelf:
+ case TransactionRecord::Generated:
+ return COLOR_BAREADDRESS;
+ default:
+ break;
+ }
+ return QVariant();
+}
+
+QString TransactionTableModel::formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed) const
+{
+ QString str = BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), wtx->credit + wtx->debit);
+ if(showUnconfirmed)
+ {
+ if(!wtx->status.confirmed || wtx->status.maturity != TransactionStatus::Mature)
+ {
+ str = QString("[") + str + QString("]");
+ }
+ }
+ return QString(str);
+}
+
+QVariant TransactionTableModel::txStatusDecoration(const TransactionRecord *wtx) const
+{
+ if(wtx->type == TransactionRecord::Generated)
+ {
+ switch(wtx->status.maturity)
+ {
+ case TransactionStatus::Immature: {
+ int total = wtx->status.depth + wtx->status.matures_in;
+ int part = (wtx->status.depth * 4 / total) + 1;
+ return QIcon(QString(":/icons/transaction_%1").arg(part));
+ }
+ case TransactionStatus::Mature:
+ return QIcon(":/icons/transaction_confirmed");
+ case TransactionStatus::MaturesWarning:
+ case TransactionStatus::NotAccepted:
+ return QIcon(":/icons/transaction_0");
+ }
+ }
+ else
+ {
+ switch(wtx->status.status)
+ {
+ case TransactionStatus::OpenUntilBlock:
+ case TransactionStatus::OpenUntilDate:
+ return QColor(64,64,255);
+ break;
+ case TransactionStatus::Offline:
+ return QColor(192,192,192);
+ case TransactionStatus::Unconfirmed:
+ switch(wtx->status.depth)
+ {
+ case 0: return QIcon(":/icons/transaction_0");
+ case 1: return QIcon(":/icons/transaction_1");
+ case 2: return QIcon(":/icons/transaction_2");
+ case 3: return QIcon(":/icons/transaction_3");
+ case 4: return QIcon(":/icons/transaction_4");
+ default: return QIcon(":/icons/transaction_5");
+ };
+ case TransactionStatus::HaveConfirmations:
+ return QIcon(":/icons/transaction_confirmed");
+ }
+ }
+ return QColor(0,0,0);
+}
+
+QString TransactionTableModel::formatTooltip(const TransactionRecord *rec) const
+{
+ QString tooltip = formatTxStatus(rec) + QString("\n") + formatTxType(rec);
+ if(rec->type==TransactionRecord::RecvFromOther || rec->type==TransactionRecord::SendToOther ||
+ rec->type==TransactionRecord::SendToAddress || rec->type==TransactionRecord::RecvWithAddress)
+ {
+ tooltip += QString(" ") + formatTxToAddress(rec, true);
+ }
+ return tooltip;
+}
+
+QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
+{
+ if(!index.isValid())
+ return QVariant();
+ TransactionRecord *rec = static_cast<TransactionRecord*>(index.internalPointer());
+
+ switch(role)
+ {
+ case Qt::DecorationRole:
+ switch(index.column())
+ {
+ case Status:
+ return txStatusDecoration(rec);
+ case ToAddress:
+ return txAddressDecoration(rec);
+ }
+ break;
+ case Qt::DisplayRole:
+ switch(index.column())
+ {
+ case Date:
+ return formatTxDate(rec);
+ case Type:
+ return formatTxType(rec);
+ case ToAddress:
+ return formatTxToAddress(rec, false);
+ case Amount:
+ return formatTxAmount(rec);
+ }
+ break;
+ case Qt::EditRole:
+ // Edit role is used for sorting, so return the unformatted values
+ switch(index.column())
+ {
+ case Status:
+ return QString::fromStdString(rec->status.sortKey);
+ case Date:
+ return rec->time;
+ case Type:
+ return formatTxType(rec);
+ case ToAddress:
+ return formatTxToAddress(rec, true);
+ case Amount:
+ return rec->credit + rec->debit;
+ }
+ break;
+ case Qt::ToolTipRole:
+ return formatTooltip(rec);
+ case Qt::TextAlignmentRole:
+ return column_alignments[index.column()];
+ case Qt::ForegroundRole:
+ // Non-confirmed transactions are grey
+ if(!rec->status.confirmed)
+ {
+ return COLOR_UNCONFIRMED;
+ }
+ if(index.column() == Amount && (rec->credit+rec->debit) < 0)
+ {
+ return COLOR_NEGATIVE;
+ }
+ if(index.column() == ToAddress)
+ {
+ return addressColor(rec);
+ }
+ break;
+ case TypeRole:
+ return rec->type;
+ case DateRole:
+ return QDateTime::fromTime_t(static_cast<uint>(rec->time));
+ case LongDescriptionRole:
+ return priv->describe(rec);
+ case AddressRole:
+ return QString::fromStdString(rec->address);
+ case LabelRole:
+ return walletModel->getAddressTableModel()->labelForAddress(QString::fromStdString(rec->address));
+ case AmountRole:
+ return rec->credit + rec->debit;
+ case TxIDRole:
+ return QString::fromStdString(rec->getTxID());
+ case ConfirmedRole:
+ // Return True if transaction counts for balance
+ return rec->status.confirmed && !(rec->type == TransactionRecord::Generated &&
+ rec->status.maturity != TransactionStatus::Mature);
+ case FormattedAmountRole:
+ return formatTxAmount(rec, false);
+ }
+ return QVariant();
+}
+
+QVariant TransactionTableModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if(orientation == Qt::Horizontal)
+ {
+ if(role == Qt::DisplayRole)
+ {
+ return columns[section];
+ }
+ else if (role == Qt::TextAlignmentRole)
+ {
+ return column_alignments[section];
+ } else if (role == Qt::ToolTipRole)
+ {
+ switch(section)
+ {
+ case Status:
+ return tr("Transaction status. Hover over this field to show number of confirmations.");
+ case Date:
+ return tr("Date and time that the transaction was received.");
+ case Type:
+ return tr("Type of transaction.");
+ case ToAddress:
+ return tr("Destination address of transaction.");
+ case Amount:
+ return tr("Amount removed from or added to balance.");
+ }
+ }
+ }
+ return QVariant();
+}
+
+QModelIndex TransactionTableModel::index(int row, int column, const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ TransactionRecord *data = priv->index(row);
+ if(data)
+ {
+ return createIndex(row, column, priv->index(row));
+ }
+ else
+ {
+ return QModelIndex();
+ }
+}
+
+void TransactionTableModel::updateDisplayUnit()
+{
+ // emit dataChanged to update Amount column with the current unit
+ emit dataChanged(index(0, Amount), index(priv->size()-1, Amount));
+}
diff --git a/src/qt/transactiontablemodel.h b/src/qt/transactiontablemodel.h
new file mode 100644
index 0000000000..bcd35b80e6
--- /dev/null
+++ b/src/qt/transactiontablemodel.h
@@ -0,0 +1,83 @@
+#ifndef TRANSACTIONTABLEMODEL_H
+#define TRANSACTIONTABLEMODEL_H
+
+#include <QAbstractTableModel>
+#include <QStringList>
+
+class CWallet;
+class TransactionTablePriv;
+class TransactionRecord;
+class WalletModel;
+
+/** UI model for the transaction table of a wallet.
+ */
+class TransactionTableModel : public QAbstractTableModel
+{
+ Q_OBJECT
+public:
+ explicit TransactionTableModel(CWallet* wallet, WalletModel *parent = 0);
+ ~TransactionTableModel();
+
+ enum ColumnIndex {
+ Status = 0,
+ Date = 1,
+ Type = 2,
+ ToAddress = 3,
+ Amount = 4
+ };
+
+ /** Roles to get specific information from a transaction row.
+ These are independent of column.
+ */
+ enum RoleIndex {
+ /** Type of transaction */
+ TypeRole = Qt::UserRole,
+ /** Date and time this transaction was created */
+ DateRole,
+ /** Long description (HTML format) */
+ LongDescriptionRole,
+ /** Address of transaction */
+ AddressRole,
+ /** Label of address related to transaction */
+ LabelRole,
+ /** Net amount of transaction */
+ AmountRole,
+ /** Unique identifier */
+ TxIDRole,
+ /** Is transaction confirmed? */
+ ConfirmedRole,
+ /** Formatted amount, without brackets when unconfirmed */
+ FormattedAmountRole
+ };
+
+ int rowCount(const QModelIndex &parent) const;
+ int columnCount(const QModelIndex &parent) const;
+ QVariant data(const QModelIndex &index, int role) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const;
+private:
+ CWallet* wallet;
+ WalletModel *walletModel;
+ QStringList columns;
+ TransactionTablePriv *priv;
+
+ QString lookupAddress(const std::string &address, bool tooltip) const;
+ QVariant addressColor(const TransactionRecord *wtx) const;
+ QString formatTxStatus(const TransactionRecord *wtx) const;
+ QString formatTxDate(const TransactionRecord *wtx) const;
+ QString formatTxType(const TransactionRecord *wtx) const;
+ QString formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const;
+ QString formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true) const;
+ QString formatTooltip(const TransactionRecord *rec) const;
+ QVariant txStatusDecoration(const TransactionRecord *wtx) const;
+ QVariant txAddressDecoration(const TransactionRecord *wtx) const;
+
+private slots:
+ void update();
+public slots:
+ void updateDisplayUnit();
+
+ friend class TransactionTablePriv;
+};
+
+#endif // TRANSACTIONTABLEMODEL_H
diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp
new file mode 100644
index 0000000000..5f53241662
--- /dev/null
+++ b/src/qt/transactionview.cpp
@@ -0,0 +1,428 @@
+#include "transactionview.h"
+
+#include "transactionfilterproxy.h"
+#include "transactionrecord.h"
+#include "walletmodel.h"
+#include "addresstablemodel.h"
+#include "transactiontablemodel.h"
+#include "bitcoinunits.h"
+#include "csvmodelwriter.h"
+#include "transactiondescdialog.h"
+#include "editaddressdialog.h"
+#include "optionsmodel.h"
+#include "guiutil.h"
+
+#include <QScrollBar>
+#include <QComboBox>
+#include <QDoubleValidator>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QLineEdit>
+#include <QTableView>
+#include <QHeaderView>
+#include <QPushButton>
+#include <QMessageBox>
+#include <QPoint>
+#include <QMenu>
+#include <QApplication>
+#include <QClipboard>
+#include <QLabel>
+#include <QDateTimeEdit>
+
+TransactionView::TransactionView(QWidget *parent) :
+ QWidget(parent), model(0), transactionProxyModel(0),
+ transactionView(0)
+{
+ // Build filter row
+ setContentsMargins(0,0,0,0);
+
+ QHBoxLayout *hlayout = new QHBoxLayout();
+ hlayout->setContentsMargins(0,0,0,0);
+#ifdef Q_WS_MAC
+ hlayout->setSpacing(5);
+ hlayout->addSpacing(26);
+#else
+ hlayout->setSpacing(0);
+ hlayout->addSpacing(23);
+#endif
+
+ dateWidget = new QComboBox(this);
+#ifdef Q_WS_MAC
+ dateWidget->setFixedWidth(121);
+#else
+ dateWidget->setFixedWidth(120);
+#endif
+ dateWidget->addItem(tr("All"), All);
+ dateWidget->addItem(tr("Today"), Today);
+ dateWidget->addItem(tr("This week"), ThisWeek);
+ dateWidget->addItem(tr("This month"), ThisMonth);
+ dateWidget->addItem(tr("Last month"), LastMonth);
+ dateWidget->addItem(tr("This year"), ThisYear);
+ dateWidget->addItem(tr("Range..."), Range);
+ hlayout->addWidget(dateWidget);
+
+ typeWidget = new QComboBox(this);
+#ifdef Q_WS_MAC
+ typeWidget->setFixedWidth(121);
+#else
+ typeWidget->setFixedWidth(120);
+#endif
+
+ typeWidget->addItem(tr("All"), TransactionFilterProxy::ALL_TYPES);
+ typeWidget->addItem(tr("Received with"), TransactionFilterProxy::TYPE(TransactionRecord::RecvWithAddress) |
+ TransactionFilterProxy::TYPE(TransactionRecord::RecvFromOther));
+ typeWidget->addItem(tr("Sent to"), TransactionFilterProxy::TYPE(TransactionRecord::SendToAddress) |
+ TransactionFilterProxy::TYPE(TransactionRecord::SendToOther));
+ typeWidget->addItem(tr("To yourself"), TransactionFilterProxy::TYPE(TransactionRecord::SendToSelf));
+ typeWidget->addItem(tr("Mined"), TransactionFilterProxy::TYPE(TransactionRecord::Generated));
+ typeWidget->addItem(tr("Other"), TransactionFilterProxy::TYPE(TransactionRecord::Other));
+
+ hlayout->addWidget(typeWidget);
+
+ addressWidget = new QLineEdit(this);
+#if QT_VERSION >= 0x040700
+ addressWidget->setPlaceholderText(tr("Enter address or label to search"));
+#endif
+ hlayout->addWidget(addressWidget);
+
+ amountWidget = new QLineEdit(this);
+#if QT_VERSION >= 0x040700
+ amountWidget->setPlaceholderText(tr("Min amount"));
+#endif
+#ifdef Q_WS_MAC
+ amountWidget->setFixedWidth(97);
+#else
+ amountWidget->setFixedWidth(100);
+#endif
+ amountWidget->setValidator(new QDoubleValidator(0, 1e20, 8, this));
+ hlayout->addWidget(amountWidget);
+
+ QVBoxLayout *vlayout = new QVBoxLayout(this);
+ vlayout->setContentsMargins(0,0,0,0);
+ vlayout->setSpacing(0);
+ //vlayout->addLayout(hlayout2);
+
+ QTableView *view = new QTableView(this);
+ vlayout->addLayout(hlayout);
+ vlayout->addWidget(createDateRangeWidget());
+ vlayout->addWidget(view);
+ vlayout->setSpacing(0);
+ int width = view->verticalScrollBar()->sizeHint().width();
+ // Cover scroll bar width with spacing
+#ifdef Q_WS_MAC
+ hlayout->addSpacing(width+2);
+#else
+ hlayout->addSpacing(width);
+#endif
+ // Always show scroll bar
+ view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+ view->setTabKeyNavigation(false);
+ view->setContextMenuPolicy(Qt::CustomContextMenu);
+
+ transactionView = view;
+
+ // Actions
+ QAction *copyAddressAction = new QAction(tr("Copy address"), this);
+ QAction *copyLabelAction = new QAction(tr("Copy label"), this);
+ QAction *editLabelAction = new QAction(tr("Edit label"), this);
+ QAction *showDetailsAction = new QAction(tr("Show details..."), this);
+
+ contextMenu = new QMenu();
+ contextMenu->addAction(copyAddressAction);
+ contextMenu->addAction(copyLabelAction);
+ contextMenu->addAction(editLabelAction);
+ contextMenu->addAction(showDetailsAction);
+
+ // Connect actions
+ connect(dateWidget, SIGNAL(activated(int)), this, SLOT(chooseDate(int)));
+ connect(typeWidget, SIGNAL(activated(int)), this, SLOT(chooseType(int)));
+ connect(addressWidget, SIGNAL(textChanged(QString)), this, SLOT(changedPrefix(QString)));
+ connect(amountWidget, SIGNAL(textChanged(QString)), this, SLOT(changedAmount(QString)));
+
+ connect(view, SIGNAL(doubleClicked(QModelIndex)), this, SIGNAL(doubleClicked(QModelIndex)));
+
+ connect(view,
+ SIGNAL(customContextMenuRequested(QPoint)),
+ this,
+ SLOT(contextualMenu(QPoint)));
+
+ connect(copyAddressAction, SIGNAL(triggered()), this, SLOT(copyAddress()));
+ connect(copyLabelAction, SIGNAL(triggered()), this, SLOT(copyLabel()));
+ connect(editLabelAction, SIGNAL(triggered()), this, SLOT(editLabel()));
+ connect(showDetailsAction, SIGNAL(triggered()), this, SLOT(showDetails()));
+}
+
+void TransactionView::setModel(WalletModel *model)
+{
+ this->model = model;
+ if(model)
+ {
+ transactionProxyModel = new TransactionFilterProxy(this);
+ transactionProxyModel->setSourceModel(model->getTransactionTableModel());
+ transactionProxyModel->setDynamicSortFilter(true);
+ transactionProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
+ transactionProxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
+
+ transactionProxyModel->setSortRole(Qt::EditRole);
+
+ transactionView->setModel(transactionProxyModel);
+ transactionView->setAlternatingRowColors(true);
+ transactionView->setSelectionBehavior(QAbstractItemView::SelectRows);
+ transactionView->setSelectionMode(QAbstractItemView::ExtendedSelection);
+ transactionView->setSortingEnabled(true);
+ transactionView->sortByColumn(TransactionTableModel::Status, Qt::DescendingOrder);
+ transactionView->verticalHeader()->hide();
+
+ transactionView->horizontalHeader()->resizeSection(
+ TransactionTableModel::Status, 23);
+ transactionView->horizontalHeader()->resizeSection(
+ TransactionTableModel::Date, 120);
+ transactionView->horizontalHeader()->resizeSection(
+ TransactionTableModel::Type, 120);
+ transactionView->horizontalHeader()->setResizeMode(
+ TransactionTableModel::ToAddress, QHeaderView::Stretch);
+ transactionView->horizontalHeader()->resizeSection(
+ TransactionTableModel::Amount, 100);
+ }
+}
+
+void TransactionView::chooseDate(int idx)
+{
+ if(!transactionProxyModel)
+ return;
+ QDate current = QDate::currentDate();
+ dateRangeWidget->setVisible(false);
+ switch(dateWidget->itemData(idx).toInt())
+ {
+ case All:
+ transactionProxyModel->setDateRange(
+ TransactionFilterProxy::MIN_DATE,
+ TransactionFilterProxy::MAX_DATE);
+ break;
+ case Today:
+ transactionProxyModel->setDateRange(
+ QDateTime(current),
+ TransactionFilterProxy::MAX_DATE);
+ break;
+ case ThisWeek: {
+ // Find last Monday
+ QDate startOfWeek = current.addDays(-(current.dayOfWeek()-1));
+ transactionProxyModel->setDateRange(
+ QDateTime(startOfWeek),
+ TransactionFilterProxy::MAX_DATE);
+
+ } break;
+ case ThisMonth:
+ transactionProxyModel->setDateRange(
+ QDateTime(QDate(current.year(), current.month(), 1)),
+ TransactionFilterProxy::MAX_DATE);
+ break;
+ case LastMonth:
+ transactionProxyModel->setDateRange(
+ QDateTime(QDate(current.year(), current.month()-1, 1)),
+ QDateTime(QDate(current.year(), current.month(), 1)));
+ break;
+ case ThisYear:
+ transactionProxyModel->setDateRange(
+ QDateTime(QDate(current.year(), 1, 1)),
+ TransactionFilterProxy::MAX_DATE);
+ break;
+ case Range:
+ dateRangeWidget->setVisible(true);
+ dateRangeChanged();
+ break;
+ }
+}
+
+void TransactionView::chooseType(int idx)
+{
+ if(!transactionProxyModel)
+ return;
+ transactionProxyModel->setTypeFilter(
+ typeWidget->itemData(idx).toInt());
+}
+
+void TransactionView::changedPrefix(const QString &prefix)
+{
+ if(!transactionProxyModel)
+ return;
+ transactionProxyModel->setAddressPrefix(prefix);
+}
+
+void TransactionView::changedAmount(const QString &amount)
+{
+ if(!transactionProxyModel)
+ return;
+ qint64 amount_parsed = 0;
+ if(BitcoinUnits::parse(model->getOptionsModel()->getDisplayUnit(), amount, &amount_parsed))
+ {
+ transactionProxyModel->setMinAmount(amount_parsed);
+ }
+ else
+ {
+ transactionProxyModel->setMinAmount(0);
+ }
+}
+
+void TransactionView::exportClicked()
+{
+ // CSV is currently the only supported format
+ QString filename = GUIUtil::getSaveFileName(
+ this,
+ tr("Export Transaction Data"), QString(),
+ tr("Comma separated file (*.csv)"));
+
+ if (filename.isNull()) return;
+
+ CSVModelWriter writer(filename);
+
+ // name, column, role
+ writer.setModel(transactionProxyModel);
+ writer.addColumn(tr("Confirmed"), 0, TransactionTableModel::ConfirmedRole);
+ writer.addColumn(tr("Date"), 0, TransactionTableModel::DateRole);
+ writer.addColumn(tr("Type"), TransactionTableModel::Type, Qt::EditRole);
+ writer.addColumn(tr("Label"), 0, TransactionTableModel::LabelRole);
+ writer.addColumn(tr("Address"), 0, TransactionTableModel::AddressRole);
+ writer.addColumn(tr("Amount"), 0, TransactionTableModel::FormattedAmountRole);
+ writer.addColumn(tr("ID"), 0, TransactionTableModel::TxIDRole);
+
+ if(!writer.write())
+ {
+ QMessageBox::critical(this, tr("Error exporting"), tr("Could not write to file %1.").arg(filename),
+ QMessageBox::Abort, QMessageBox::Abort);
+ }
+}
+
+void TransactionView::contextualMenu(const QPoint &point)
+{
+ QModelIndex index = transactionView->indexAt(point);
+ if(index.isValid())
+ {
+ contextMenu->exec(QCursor::pos());
+ }
+}
+
+void TransactionView::copyAddress()
+{
+ if(!transactionView->selectionModel())
+ return;
+ QModelIndexList selection = transactionView->selectionModel()->selectedRows();
+ if(!selection.isEmpty())
+ {
+ QApplication::clipboard()->setText(selection.at(0).data(TransactionTableModel::AddressRole).toString());
+ }
+}
+
+void TransactionView::copyLabel()
+{
+ if(!transactionView->selectionModel())
+ return;
+ QModelIndexList selection = transactionView->selectionModel()->selectedRows();
+ if(!selection.isEmpty())
+ {
+ QApplication::clipboard()->setText(selection.at(0).data(TransactionTableModel::LabelRole).toString());
+ }
+}
+
+void TransactionView::editLabel()
+{
+ if(!transactionView->selectionModel() ||!model)
+ return;
+ QModelIndexList selection = transactionView->selectionModel()->selectedRows();
+ if(!selection.isEmpty())
+ {
+ AddressTableModel *addressBook = model->getAddressTableModel();
+ if(!addressBook)
+ return;
+ QString address = selection.at(0).data(TransactionTableModel::AddressRole).toString();
+ if(address.isEmpty())
+ {
+ // If this transaction has no associated address, exit
+ return;
+ }
+ // Is address in address book? Address book can miss address when a transaction is
+ // sent from outside the UI.
+ int idx = addressBook->lookupAddress(address);
+ if(idx != -1)
+ {
+ // Edit sending / receiving address
+ QModelIndex modelIdx = addressBook->index(idx, 0, QModelIndex());
+ // Determine type of address, launch appropriate editor dialog type
+ QString type = modelIdx.data(AddressTableModel::TypeRole).toString();
+
+ EditAddressDialog dlg(type==AddressTableModel::Receive
+ ? EditAddressDialog::EditReceivingAddress
+ : EditAddressDialog::EditSendingAddress,
+ this);
+ dlg.setModel(addressBook);
+ dlg.loadRow(idx);
+ dlg.exec();
+ }
+ else
+ {
+ // Add sending address
+ EditAddressDialog dlg(EditAddressDialog::NewSendingAddress,
+ this);
+ dlg.setModel(addressBook);
+ dlg.setAddress(address);
+ dlg.exec();
+ }
+ }
+}
+
+void TransactionView::showDetails()
+{
+ if(!transactionView->selectionModel())
+ return;
+ QModelIndexList selection = transactionView->selectionModel()->selectedRows();
+ if(!selection.isEmpty())
+ {
+ TransactionDescDialog dlg(selection.at(0));
+ dlg.exec();
+ }
+}
+
+QWidget *TransactionView::createDateRangeWidget()
+{
+ dateRangeWidget = new QFrame();
+ dateRangeWidget->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ dateRangeWidget->setContentsMargins(1,1,1,1);
+ QHBoxLayout *layout = new QHBoxLayout(dateRangeWidget);
+ layout->setContentsMargins(0,0,0,0);
+ layout->addSpacing(23);
+ layout->addWidget(new QLabel(tr("Range:")));
+
+ dateFrom = new QDateTimeEdit(this);
+ dateFrom->setDisplayFormat("dd/MM/yy");
+ dateFrom->setCalendarPopup(true);
+ dateFrom->setMinimumWidth(100);
+ dateFrom->setDate(QDate::currentDate().addDays(-7));
+ layout->addWidget(dateFrom);
+ layout->addWidget(new QLabel(tr("to")));
+
+ dateTo = new QDateTimeEdit(this);
+ dateTo->setDisplayFormat("dd/MM/yy");
+ dateTo->setCalendarPopup(true);
+ dateTo->setMinimumWidth(100);
+ dateTo->setDate(QDate::currentDate());
+ layout->addWidget(dateTo);
+ layout->addStretch();
+
+ // Hide by default
+ dateRangeWidget->setVisible(false);
+
+ // Notify on change
+ connect(dateFrom, SIGNAL(dateChanged(QDate)), this, SLOT(dateRangeChanged()));
+ connect(dateTo, SIGNAL(dateChanged(QDate)), this, SLOT(dateRangeChanged()));
+
+ return dateRangeWidget;
+}
+
+void TransactionView::dateRangeChanged()
+{
+ if(!transactionProxyModel)
+ return;
+ transactionProxyModel->setDateRange(
+ QDateTime(dateFrom->date()),
+ QDateTime(dateTo->date()).addDays(1));
+}
diff --git a/src/qt/transactionview.h b/src/qt/transactionview.h
new file mode 100644
index 0000000000..67d0b46f30
--- /dev/null
+++ b/src/qt/transactionview.h
@@ -0,0 +1,80 @@
+#ifndef TRANSACTIONVIEW_H
+#define TRANSACTIONVIEW_H
+
+#include <QWidget>
+
+class WalletModel;
+class TransactionFilterProxy;
+
+QT_BEGIN_NAMESPACE
+class QTableView;
+class QComboBox;
+class QLineEdit;
+class QModelIndex;
+class QMenu;
+class QFrame;
+class QDateTimeEdit;
+QT_END_NAMESPACE
+
+/** Widget showing the transaction list for a wallet, including a filter row.
+ Using the filter row, the user can view or export a subset of the transactions.
+ */
+class TransactionView : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit TransactionView(QWidget *parent = 0);
+
+ void setModel(WalletModel *model);
+
+ // Date ranges for filter
+ enum DateEnum
+ {
+ All,
+ Today,
+ ThisWeek,
+ ThisMonth,
+ LastMonth,
+ ThisYear,
+ Range
+ };
+
+private:
+ WalletModel *model;
+ TransactionFilterProxy *transactionProxyModel;
+ QTableView *transactionView;
+
+ QComboBox *dateWidget;
+ QComboBox *typeWidget;
+ QLineEdit *addressWidget;
+ QLineEdit *amountWidget;
+
+ QMenu *contextMenu;
+
+ QFrame *dateRangeWidget;
+ QDateTimeEdit *dateFrom;
+ QDateTimeEdit *dateTo;
+
+ QWidget *createDateRangeWidget();
+
+private slots:
+ void contextualMenu(const QPoint &);
+ void dateRangeChanged();
+
+signals:
+ void doubleClicked(const QModelIndex&);
+
+public slots:
+ void chooseDate(int idx);
+ void chooseType(int idx);
+ void changedPrefix(const QString &prefix);
+ void changedAmount(const QString &amount);
+ void exportClicked();
+ void showDetails();
+ void copyAddress();
+ void editLabel();
+ void copyLabel();
+
+};
+
+#endif // TRANSACTIONVIEW_H
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
new file mode 100644
index 0000000000..710d3aa0ad
--- /dev/null
+++ b/src/qt/walletmodel.cpp
@@ -0,0 +1,283 @@
+#include "walletmodel.h"
+#include "guiconstants.h"
+#include "optionsmodel.h"
+#include "addresstablemodel.h"
+#include "transactiontablemodel.h"
+
+#include "headers.h"
+
+#include <QTimer>
+#include <QSet>
+
+WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent) :
+ QObject(parent), wallet(wallet), optionsModel(optionsModel), addressTableModel(0),
+ transactionTableModel(0),
+ 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);
+}
+
+qint64 WalletModel::getBalance() const
+{
+ return wallet->GetBalance();
+}
+
+qint64 WalletModel::getUnconfirmedBalance() const
+{
+ return wallet->GetUnconfirmedBalance();
+}
+
+int WalletModel::getNumTransactions() const
+{
+ int numTransactions = 0;
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ numTransactions = wallet->mapWallet.size();
+ }
+ return numTransactions;
+}
+
+void WalletModel::update()
+{
+ qint64 newBalance = getBalance();
+ qint64 newUnconfirmedBalance = getUnconfirmedBalance();
+ int newNumTransactions = getNumTransactions();
+ EncryptionStatus newEncryptionStatus = getEncryptionStatus();
+
+ if(cachedBalance != newBalance || cachedUnconfirmedBalance != newUnconfirmedBalance)
+ emit balanceChanged(newBalance, newUnconfirmedBalance);
+
+ if(cachedNumTransactions != newNumTransactions)
+ emit numTransactionsChanged(newNumTransactions);
+
+ if(cachedEncryptionStatus != newEncryptionStatus)
+ emit encryptionStatusChanged(newEncryptionStatus);
+
+ cachedBalance = newBalance;
+ cachedUnconfirmedBalance = newUnconfirmedBalance;
+ cachedNumTransactions = newNumTransactions;
+
+ addressTableModel->update();
+}
+
+bool WalletModel::validateAddress(const QString &address)
+{
+ CBitcoinAddress addressParsed(address.toStdString());
+ return addressParsed.IsValid();
+}
+
+WalletModel::SendCoinsReturn WalletModel::sendCoins(const QList<SendCoinsRecipient> &recipients)
+{
+ qint64 total = 0;
+ QSet<QString> setAddress;
+ QString hex;
+
+ if(recipients.empty())
+ {
+ return OK;
+ }
+
+ // Pre-check input data for validity
+ foreach(const SendCoinsRecipient &rcp, recipients)
+ {
+ if(!validateAddress(rcp.address))
+ {
+ return InvalidAddress;
+ }
+ setAddress.insert(rcp.address);
+
+ if(rcp.amount <= 0)
+ {
+ return InvalidAmount;
+ }
+ total += rcp.amount;
+ }
+
+ if(recipients.size() > setAddress.size())
+ {
+ return DuplicateAddress;
+ }
+
+ if(total > getBalance())
+ {
+ return AmountExceedsBalance;
+ }
+
+ if((total + nTransactionFee) > getBalance())
+ {
+ return SendCoinsReturn(AmountWithFeeExceedsBalance, nTransactionFee);
+ }
+
+ CRITICAL_BLOCK(cs_main)
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ // Sendmany
+ std::vector<std::pair<CScript, int64> > vecSend;
+ foreach(const SendCoinsRecipient &rcp, recipients)
+ {
+ CScript scriptPubKey;
+ scriptPubKey.SetBitcoinAddress(rcp.address.toStdString());
+ vecSend.push_back(make_pair(scriptPubKey, rcp.amount));
+ }
+
+ CWalletTx wtx;
+ CReserveKey keyChange(wallet);
+ int64 nFeeRequired = 0;
+ bool fCreated = wallet->CreateTransaction(vecSend, wtx, keyChange, nFeeRequired);
+
+ if(!fCreated)
+ {
+ if((total + nFeeRequired) > wallet->GetBalance())
+ {
+ return SendCoinsReturn(AmountWithFeeExceedsBalance, nFeeRequired);
+ }
+ return TransactionCreationFailed;
+ }
+ if(!ThreadSafeAskFee(nFeeRequired, tr("Sending...").toStdString(), NULL))
+ {
+ return Aborted;
+ }
+ if(!wallet->CommitTransaction(wtx, keyChange))
+ {
+ return TransactionCommitFailed;
+ }
+ hex = QString::fromStdString(wtx.GetHash().GetHex());
+ }
+
+ // Add addresses / update labels that we've sent to to the address book
+ foreach(const SendCoinsRecipient &rcp, recipients)
+ {
+ std::string strAddress = rcp.address.toStdString();
+ std::string strLabel = rcp.label.toStdString();
+ CRITICAL_BLOCK(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);
+}
+
+OptionsModel *WalletModel::getOptionsModel()
+{
+ return optionsModel;
+}
+
+AddressTableModel *WalletModel::getAddressTableModel()
+{
+ return addressTableModel;
+}
+
+TransactionTableModel *WalletModel::getTransactionTableModel()
+{
+ return transactionTableModel;
+}
+
+WalletModel::EncryptionStatus WalletModel::getEncryptionStatus() const
+{
+ if(!wallet->IsCrypted())
+ {
+ return Unencrypted;
+ }
+ else if(wallet->IsLocked())
+ {
+ return Locked;
+ }
+ else
+ {
+ return Unlocked;
+ }
+}
+
+bool WalletModel::setWalletEncrypted(bool encrypted, const SecureString &passphrase)
+{
+ if(encrypted)
+ {
+ // Encrypt
+ return wallet->EncryptWallet(passphrase);
+ }
+ else
+ {
+ // Decrypt -- TODO; not supported yet
+ return false;
+ }
+}
+
+bool WalletModel::setWalletLocked(bool locked, const SecureString &passPhrase)
+{
+ if(locked)
+ {
+ // Lock
+ return wallet->Lock();
+ }
+ else
+ {
+ // Unlock
+ return wallet->Unlock(passPhrase);
+ }
+}
+
+bool WalletModel::changePassphrase(const SecureString &oldPass, const SecureString &newPass)
+{
+ bool retval;
+ CRITICAL_BLOCK(wallet->cs_wallet)
+ {
+ wallet->Lock(); // Make sure wallet is locked before attempting pass change
+ retval = wallet->ChangeWalletPassphrase(oldPass, newPass);
+ }
+ return retval;
+}
+
+// WalletModel::UnlockContext implementation
+WalletModel::UnlockContext WalletModel::requestUnlock()
+{
+ bool was_locked = getEncryptionStatus() == Locked;
+ if(was_locked)
+ {
+ // Request UI to unlock wallet
+ emit requireUnlock();
+ }
+ // If wallet is still locked, unlock was failed or cancelled, mark context as invalid
+ bool valid = getEncryptionStatus() != Locked;
+
+ return UnlockContext(this, valid, was_locked);
+}
+
+WalletModel::UnlockContext::UnlockContext(WalletModel *wallet, bool valid, bool relock):
+ wallet(wallet),
+ valid(valid),
+ relock(relock)
+{
+}
+
+WalletModel::UnlockContext::~UnlockContext()
+{
+ if(valid && relock)
+ {
+ wallet->setWalletLocked(true);
+ }
+}
+
+void WalletModel::UnlockContext::CopyFrom(const UnlockContext& rhs)
+{
+ // Transfer context; old object no longer relocks wallet
+ *this = rhs;
+ rhs.relock = false;
+}
diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h
new file mode 100644
index 0000000000..a129808f61
--- /dev/null
+++ b/src/qt/walletmodel.h
@@ -0,0 +1,143 @@
+#ifndef WALLETMODEL_H
+#define WALLETMODEL_H
+
+#include <QObject>
+
+#include "util.h"
+
+class OptionsModel;
+class AddressTableModel;
+class TransactionTableModel;
+class CWallet;
+
+struct SendCoinsRecipient
+{
+ QString address;
+ QString label;
+ qint64 amount;
+};
+
+/** Interface to Bitcoin wallet from Qt view code. */
+class WalletModel : public QObject
+{
+ Q_OBJECT
+public:
+ explicit WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent = 0);
+
+ enum StatusCode // Returned by sendCoins
+ {
+ OK,
+ InvalidAmount,
+ InvalidAddress,
+ AmountExceedsBalance,
+ AmountWithFeeExceedsBalance,
+ DuplicateAddress,
+ TransactionCreationFailed, // Error returned when wallet is still locked
+ TransactionCommitFailed,
+ Aborted
+ };
+
+ enum EncryptionStatus
+ {
+ Unencrypted, // !wallet->IsCrypted()
+ Locked, // wallet->IsCrypted() && wallet->IsLocked()
+ Unlocked // wallet->IsCrypted() && !wallet->IsLocked()
+ };
+
+ OptionsModel *getOptionsModel();
+ AddressTableModel *getAddressTableModel();
+ TransactionTableModel *getTransactionTableModel();
+
+ qint64 getBalance() const;
+ qint64 getUnconfirmedBalance() const;
+ int getNumTransactions() const;
+ EncryptionStatus getEncryptionStatus() const;
+
+ // Check address for validity
+ bool validateAddress(const QString &address);
+
+ // Return status record for SendCoins, contains error id + information
+ struct SendCoinsReturn
+ {
+ SendCoinsReturn(StatusCode status,
+ qint64 fee=0,
+ QString hex=QString()):
+ status(status), fee(fee), hex(hex) {}
+ StatusCode status;
+ qint64 fee; // is used in case status is "AmountWithFeeExceedsBalance"
+ QString hex; // is filled with the transaction hash if status is "OK"
+ };
+
+ // Send coins to a list of recipients
+ SendCoinsReturn sendCoins(const QList<SendCoinsRecipient> &recipients);
+
+ // Wallet encryption
+ bool setWalletEncrypted(bool encrypted, const SecureString &passphrase);
+ // Passphrase only needed when unlocking
+ bool setWalletLocked(bool locked, const SecureString &passPhrase=SecureString());
+ bool changePassphrase(const SecureString &oldPass, const SecureString &newPass);
+
+ // RAI object for unlocking wallet, returned by requestUnlock()
+ class UnlockContext
+ {
+ public:
+ UnlockContext(WalletModel *wallet, bool valid, bool relock);
+ ~UnlockContext();
+
+ bool isValid() const { return valid; }
+
+ // Copy operator and constructor transfer the context
+ UnlockContext(const UnlockContext& obj) { CopyFrom(obj); }
+ UnlockContext& operator=(const UnlockContext& rhs) { CopyFrom(rhs); return *this; }
+ private:
+ WalletModel *wallet;
+ bool valid;
+ mutable bool relock; // mutable, as it can be set to false by copying
+
+ void CopyFrom(const UnlockContext& rhs);
+ };
+
+ UnlockContext requestUnlock();
+
+private:
+ CWallet *wallet;
+
+ // Wallet has an options model for wallet-specific options
+ // (transaction fee, for example)
+ OptionsModel *optionsModel;
+
+ AddressTableModel *addressTableModel;
+ TransactionTableModel *transactionTableModel;
+
+ // Cache some values to be able to detect changes
+ qint64 cachedBalance;
+ qint64 cachedUnconfirmedBalance;
+ qint64 cachedNumTransactions;
+ EncryptionStatus cachedEncryptionStatus;
+
+signals:
+ // Signal that balance in wallet changed
+ void balanceChanged(qint64 balance, qint64 unconfirmedBalance);
+
+ // Number of transactions in wallet changed
+ void numTransactionsChanged(int count);
+
+ // Encryption status of wallet changed
+ void encryptionStatusChanged(int status);
+
+ // Signal emitted when wallet needs to be unlocked
+ // It is valid behaviour for listeners to keep the wallet locked after this signal;
+ // this means that the unlocking failed or was cancelled.
+ void requireUnlock();
+
+ // Asynchronous error notification
+ void error(const QString &title, const QString &message);
+
+public slots:
+
+private slots:
+ void update();
+};
+
+
+#endif // WALLETMODEL_H