aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
Diffstat (limited to 'src/qt')
-rw-r--r--src/qt/addressbookpage.cpp57
-rw-r--r--src/qt/addressbookpage.h5
-rw-r--r--src/qt/addresstablemodel.cpp85
-rw-r--r--src/qt/addresstablemodel.h9
-rw-r--r--src/qt/askpassphrasedialog.cpp3
-rw-r--r--src/qt/bitcoin.cpp149
-rw-r--r--src/qt/bitcoin.qrc11
-rw-r--r--src/qt/bitcoinaddressvalidator.cpp28
-rw-r--r--src/qt/bitcoingui.cpp94
-rw-r--r--src/qt/bitcoingui.h13
-rw-r--r--src/qt/bitcoinstrings.cpp39
-rw-r--r--src/qt/clientmodel.cpp111
-rw-r--r--src/qt/clientmodel.h19
-rw-r--r--src/qt/csvmodelwriter.cpp5
-rw-r--r--src/qt/editaddressdialog.cpp2
-rw-r--r--src/qt/forms/aboutdialog.ui12
-rw-r--r--src/qt/forms/addressbookpage.ui12
-rw-r--r--src/qt/forms/askpassphrasedialog.ui30
-rw-r--r--src/qt/forms/messagepage.ui21
-rw-r--r--src/qt/forms/overviewpage.ui238
-rw-r--r--src/qt/forms/qrcodedialog.ui6
-rw-r--r--src/qt/forms/rpcconsole.ui401
-rw-r--r--src/qt/forms/sendcoinsdialog.ui4
-rw-r--r--src/qt/forms/transactiondescdialog.ui4
-rw-r--r--src/qt/forms/verifymessagedialog.ui125
-rw-r--r--src/qt/guiconstants.h5
-rw-r--r--src/qt/guiutil.cpp199
-rw-r--r--src/qt/guiutil.h26
-rw-r--r--src/qt/locale/bitcoin_bg.ts2247
-rw-r--r--src/qt/locale/bitcoin_el_GR.ts2269
-rw-r--r--src/qt/locale/bitcoin_en.ts1283
-rw-r--r--src/qt/locale/bitcoin_fr.ts2267
-rw-r--r--src/qt/locale/bitcoin_pt_PT.ts2265
-rw-r--r--src/qt/messagepage.cpp30
-rw-r--r--src/qt/messagepage.h4
-rw-r--r--src/qt/optionsdialog.cpp302
-rw-r--r--src/qt/optionsdialog.h10
-rw-r--r--src/qt/optionsmodel.cpp16
-rw-r--r--src/qt/optionsmodel.h7
-rw-r--r--src/qt/overviewpage.cpp39
-rw-r--r--src/qt/overviewpage.h4
-rw-r--r--src/qt/qrcodedialog.cpp3
-rw-r--r--src/qt/qtipcserver.cpp5
-rw-r--r--src/qt/qvaluecombobox.cpp6
-rw-r--r--src/qt/qvaluecombobox.h9
-rw-r--r--src/qt/res/icons/debugwindow.pngbin0 -> 5402 bytes
-rw-r--r--src/qt/res/icons/qrcode.pngbin0 -> 237 bytes
-rw-r--r--src/qt/res/images/qrcode.pngbin5993 -> 0 bytes
-rw-r--r--src/qt/rpcconsole.cpp328
-rw-r--r--src/qt/rpcconsole.h64
-rw-r--r--src/qt/sendcoinsdialog.cpp10
-rw-r--r--src/qt/sendcoinsentry.cpp4
-rw-r--r--src/qt/transactionrecord.cpp181
-rw-r--r--src/qt/transactiontablemodel.cpp146
-rw-r--r--src/qt/transactiontablemodel.h6
-rw-r--r--src/qt/transactionview.cpp14
-rw-r--r--src/qt/transactionview.h1
-rw-r--r--src/qt/verifymessagedialog.cpp104
-rw-r--r--src/qt/verifymessagedialog.h37
-rw-r--r--src/qt/walletmodel.cpp87
-rw-r--r--src/qt/walletmodel.h11
61 files changed, 12415 insertions, 1057 deletions
diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp
index 3e55c39e04..c207987561 100644
--- a/src/qt/addressbookpage.cpp
+++ b/src/qt/addressbookpage.cpp
@@ -58,25 +58,34 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
ui->signMessage->setVisible(true);
break;
}
- ui->tableView->setTabKeyNavigation(false);
- ui->tableView->setContextMenuPolicy(Qt::CustomContextMenu);
// Context menu actions
- QAction *copyAddressAction = new QAction(tr("Copy address"), this);
- QAction *copyLabelAction = new QAction(tr("Copy label"), this);
- QAction *editAction = new QAction(tr("Edit"), this);
- deleteAction = new QAction(tr("Delete"), this);
-
+ QAction *copyLabelAction = new QAction(tr("Copy &Label"), this);
+ QAction *copyAddressAction = new QAction(ui->copyToClipboard->text(), this);
+ QAction *editAction = new QAction(tr("&Edit"), this);
+ QAction *showQRCodeAction = new QAction(ui->showQRCode->text(), this);
+ QAction *signMessageAction = new QAction(ui->signMessage->text(), this);
+ deleteAction = new QAction(ui->deleteButton->text(), this);
+
+ // Build context menu
contextMenu = new QMenu();
contextMenu->addAction(copyAddressAction);
contextMenu->addAction(copyLabelAction);
contextMenu->addAction(editAction);
- contextMenu->addAction(deleteAction);
-
+ if(tab == SendingTab)
+ contextMenu->addAction(deleteAction);
+ contextMenu->addSeparator();
+ contextMenu->addAction(showQRCodeAction);
+ if(tab == ReceivingTab)
+ contextMenu->addAction(signMessageAction);
+
+ // Connect signals for context menu actions
connect(copyAddressAction, SIGNAL(triggered()), this, SLOT(on_copyToClipboard_clicked()));
connect(copyLabelAction, SIGNAL(triggered()), this, SLOT(onCopyLabelAction()));
connect(editAction, SIGNAL(triggered()), this, SLOT(onEditAction()));
connect(deleteAction, SIGNAL(triggered()), this, SLOT(on_deleteButton_clicked()));
+ connect(showQRCodeAction, SIGNAL(triggered()), this, SLOT(on_showQRCode_clicked()));
+ connect(signMessageAction, SIGNAL(triggered()), this, SLOT(on_signMessage_clicked()));
connect(ui->tableView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextualMenu(QPoint)));
@@ -123,6 +132,10 @@ void AddressBookPage::setModel(AddressTableModel *model)
connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(selectionChanged()));
+ // Select row for newly created address
+ connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)),
+ this, SLOT(selectNewAddress(QModelIndex,int,int)));
+
if(mode == ForSending)
{
// Auto-select first row when in sending mode
@@ -184,20 +197,11 @@ void AddressBookPage::on_newAddressButton_clicked()
EditAddressDialog dlg(
tab == SendingTab ?
EditAddressDialog::NewSendingAddress :
- EditAddressDialog::NewReceivingAddress);
+ EditAddressDialog::NewReceivingAddress, this);
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());
- }
+ newAddressToSelect = dlg.getAddress();
}
}
@@ -315,6 +319,7 @@ void AddressBookPage::on_showQRCode_clicked()
QString address = index.data().toString(), label = index.sibling(index.row(), 0).data(Qt::EditRole).toString();
QRCodeDialog *dialog = new QRCodeDialog(address, label, tab == ReceivingTab, this);
+ dialog->setAttribute(Qt::WA_DeleteOnClose);
dialog->show();
}
#endif
@@ -328,3 +333,15 @@ void AddressBookPage::contextualMenu(const QPoint &point)
contextMenu->exec(QCursor::pos());
}
}
+
+void AddressBookPage::selectNewAddress(const QModelIndex &parent, int begin, int end)
+{
+ QModelIndex idx = proxyModel->mapFromSource(model->index(begin, AddressTableModel::Address, parent));
+ if(idx.isValid() && (idx.data(Qt::EditRole).toString() == newAddressToSelect))
+ {
+ // Select row of newly created address, once
+ ui->tableView->setFocus();
+ ui->tableView->selectRow(idx.row());
+ newAddressToSelect.clear();
+ }
+}
diff --git a/src/qt/addressbookpage.h b/src/qt/addressbookpage.h
index b2cf2db979..b2e91c7cb2 100644
--- a/src/qt/addressbookpage.h
+++ b/src/qt/addressbookpage.h
@@ -13,6 +13,7 @@ class QTableView;
class QItemSelection;
class QSortFilterProxyModel;
class QMenu;
+class QModelIndex;
QT_END_NAMESPACE
/** Widget that shows a list of sending or receiving addresses.
@@ -51,6 +52,7 @@ private:
QSortFilterProxyModel *proxyModel;
QMenu *contextMenu;
QAction *deleteAction;
+ QString newAddressToSelect;
private slots:
void on_deleteButton_clicked();
@@ -67,6 +69,9 @@ private slots:
void onCopyLabelAction();
/** Edit currently selected address entry */
void onEditAction();
+
+ /** New entry/entries were added to address table */
+ void selectNewAddress(const QModelIndex &parent, int begin, int end);
};
#endif // ADDRESSBOOKDIALOG_H
diff --git a/src/qt/addresstablemodel.cpp b/src/qt/addresstablemodel.cpp
index 7b95f51c04..75ea2c12c5 100644
--- a/src/qt/addresstablemodel.cpp
+++ b/src/qt/addresstablemodel.cpp
@@ -26,20 +26,36 @@ struct AddressTableEntry
type(type), label(label), address(address) {}
};
+struct AddressTableEntryLessThan
+{
+ bool operator()(const AddressTableEntry &a, const AddressTableEntry &b) const
+ {
+ return a.address < b.address;
+ }
+ bool operator()(const AddressTableEntry &a, const QString &b) const
+ {
+ return a.address < b;
+ }
+ bool operator()(const QString &a, const AddressTableEntry &b) const
+ {
+ return a < b.address;
+ }
+};
+
// Private implementation
class AddressTablePriv
{
public:
CWallet *wallet;
QList<AddressTableEntry> cachedAddressTable;
+ AddressTableModel *parent;
- AddressTablePriv(CWallet *wallet):
- wallet(wallet) {}
+ AddressTablePriv(CWallet *wallet, AddressTableModel *parent):
+ wallet(wallet), parent(parent) {}
void refreshAddressTable()
{
cachedAddressTable.clear();
-
{
LOCK(wallet->cs_wallet);
BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, std::string)& item, wallet->mapAddressBook)
@@ -54,6 +70,53 @@ public:
}
}
+ void updateEntry(const QString &address, const QString &label, bool isMine, int status)
+ {
+ // Find address / label in model
+ QList<AddressTableEntry>::iterator lower = qLowerBound(
+ cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
+ QList<AddressTableEntry>::iterator upper = qUpperBound(
+ cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
+ int lowerIndex = (lower - cachedAddressTable.begin());
+ int upperIndex = (upper - cachedAddressTable.begin());
+ bool inModel = (lower != upper);
+ AddressTableEntry::Type newEntryType = isMine ? AddressTableEntry::Receiving : AddressTableEntry::Sending;
+
+ switch(status)
+ {
+ case CT_NEW:
+ if(inModel)
+ {
+ OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_NOW, but entry is already in model\n");
+ break;
+ }
+ parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex);
+ cachedAddressTable.insert(lowerIndex, AddressTableEntry(newEntryType, label, address));
+ parent->endInsertRows();
+ break;
+ case CT_UPDATED:
+ if(!inModel)
+ {
+ OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_UPDATED, but entry is not in model\n");
+ break;
+ }
+ lower->type = newEntryType;
+ lower->label = label;
+ parent->emitDataChanged(lowerIndex);
+ break;
+ case CT_DELETED:
+ if(!inModel)
+ {
+ OutputDebugStringF("Warning: AddressTablePriv::updateEntry: Got CT_DELETED, but entry is not in model\n");
+ break;
+ }
+ parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
+ cachedAddressTable.erase(lower, upper);
+ parent->endRemoveRows();
+ break;
+ }
+ }
+
int size()
{
return cachedAddressTable.size();
@@ -76,7 +139,7 @@ AddressTableModel::AddressTableModel(CWallet *wallet, WalletModel *parent) :
QAbstractTableModel(parent),walletModel(parent),wallet(wallet),priv(0)
{
columns << tr("Label") << tr("Address");
- priv = new AddressTablePriv(wallet);
+ priv = new AddressTablePriv(wallet, this);
priv->refreshAddressTable();
}
@@ -158,7 +221,6 @@ bool AddressTableModel::setData(const QModelIndex & index, const QVariant & valu
{
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
@@ -177,12 +239,9 @@ bool AddressTableModel::setData(const QModelIndex & index, const QVariant & valu
// 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;
}
@@ -232,12 +291,10 @@ QModelIndex AddressTableModel::index(int row, int column, const QModelIndex & pa
}
}
-void AddressTableModel::update()
+void AddressTableModel::updateEntry(const QString &address, const QString &label, bool isMine, int status)
{
// Update address book model from Bitcoin core
- beginResetModel();
- priv->refreshAddressTable();
- endResetModel();
+ priv->updateEntry(address, label, isMine, status);
}
QString AddressTableModel::addRow(const QString &type, const QString &label, const QString &address)
@@ -341,3 +398,7 @@ int AddressTableModel::lookupAddress(const QString &address) const
}
}
+void AddressTableModel::emitDataChanged(int idx)
+{
+ emit dataChanged(index(idx, 0, QModelIndex()), index(idx, columns.length()-1, QModelIndex()));
+}
diff --git a/src/qt/addresstablemodel.h b/src/qt/addresstablemodel.h
index 7fd07cfb81..42974e3e1f 100644
--- a/src/qt/addresstablemodel.h
+++ b/src/qt/addresstablemodel.h
@@ -74,13 +74,18 @@ private:
QStringList columns;
EditStatus editStatus;
+ /** Notify listeners that data changed. */
+ void emitDataChanged(int index);
+
signals:
void defaultAddressChanged(const QString &address);
public slots:
- /* Update address list from core. Invalidates any indices.
+ /* Update address list from core.
*/
- void update();
+ void updateEntry(const QString &address, const QString &label, bool isMine, int status);
+
+ friend class AddressTablePriv;
};
#endif // ADDRESSTABLEMODEL_H
diff --git a/src/qt/askpassphrasedialog.cpp b/src/qt/askpassphrasedialog.cpp
index 31e4040d1d..0a8ace09df 100644
--- a/src/qt/askpassphrasedialog.cpp
+++ b/src/qt/askpassphrasedialog.cpp
@@ -24,7 +24,6 @@ AskPassphraseDialog::AskPassphraseDialog(Mode mode, QWidget *parent) :
ui->passEdit1->installEventFilter(this);
ui->passEdit2->installEventFilter(this);
ui->passEdit3->installEventFilter(this);
- ui->capsLabel->clear();
switch(mode)
{
@@ -215,7 +214,7 @@ bool AskPassphraseDialog::event(QEvent *event)
bool AskPassphraseDialog::eventFilter(QObject *, QEvent *event)
{
- /* Detect Caps Lock.
+ /* 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
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index 7c262e14cd..bdc6ea6ffd 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -6,6 +6,7 @@
#include "walletmodel.h"
#include "optionsmodel.h"
#include "guiutil.h"
+#include "guiconstants.h"
#include "init.h"
#include "ui_interface.h"
@@ -20,6 +21,7 @@
#include <QLibraryInfo>
#include <boost/interprocess/ipc/message_queue.hpp>
+#include <boost/algorithm/string/predicate.hpp>
#if defined(BITCOIN_NEED_QT_PLUGINS) && !defined(_BITCOIN_QT_PLUGINS_INCLUDED)
#define _BITCOIN_QT_PLUGINS_INCLUDED
@@ -35,15 +37,13 @@ Q_IMPORT_PLUGIN(qtaccessiblewidgets)
// Need a global reference for the notifications to find the GUI
static BitcoinGUI *guiref;
static QSplashScreen *splashref;
-static WalletModel *walletmodel;
-static ClientModel *clientmodel;
-int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style)
+static void ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style)
{
// Message from network thread
if(guiref)
{
- bool modal = (style & wxMODAL);
+ bool modal = (style & CClientUIInterface::MODAL);
// in case of modal message, use blocking connection to wait for user to click OK
QMetaObject::invokeMethod(guiref, "error",
modal ? GUIUtil::blockingGUIThreadConnection() : Qt::QueuedConnection,
@@ -56,10 +56,9 @@ int ThreadSafeMessageBox(const std::string& message, const std::string& caption,
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)
+static bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption)
{
if(!guiref)
return false;
@@ -74,7 +73,7 @@ bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption)
return payFee;
}
-void ThreadSafeHandleURI(const std::string& strURI)
+static void ThreadSafeHandleURI(const std::string& strURI)
{
if(!guiref)
return;
@@ -83,21 +82,7 @@ void ThreadSafeHandleURI(const std::string& strURI)
Q_ARG(QString, QString::fromStdString(strURI)));
}
-void MainFrameRepaint()
-{
- if(clientmodel)
- QMetaObject::invokeMethod(clientmodel, "update", Qt::QueuedConnection);
- if(walletmodel)
- QMetaObject::invokeMethod(walletmodel, "update", Qt::QueuedConnection);
-}
-
-void AddressBookRepaint()
-{
- if(walletmodel)
- QMetaObject::invokeMethod(walletmodel, "updateAddressList", Qt::QueuedConnection);
-}
-
-void InitMessage(const std::string &message)
+static void InitMessage(const std::string &message)
{
if(splashref)
{
@@ -106,7 +91,7 @@ void InitMessage(const std::string &message)
}
}
-void QueueShutdown()
+static void QueueShutdown()
{
QMetaObject::invokeMethod(QCoreApplication::instance(), "quit", Qt::QueuedConnection);
}
@@ -114,7 +99,7 @@ void QueueShutdown()
/*
Translate string to current locale using Qt.
*/
-std::string _(const char* psz)
+static std::string Translate(const char* psz)
{
return QCoreApplication::translate("bitcoin-core", psz).toStdString();
}
@@ -128,9 +113,54 @@ static void handleRunawayException(std::exception *e)
exit(1);
}
-#ifdef WIN32
-#define strncasecmp strnicmp
+/** Help message for Bitcoin-Qt, shown with --help. */
+class HelpMessageBox: public QMessageBox
+{
+ Q_OBJECT
+public:
+ HelpMessageBox(QWidget *parent = 0);
+
+ void exec();
+private:
+ QString header;
+ QString coreOptions;
+ QString uiOptions;
+};
+
+HelpMessageBox::HelpMessageBox(QWidget *parent):
+ QMessageBox(parent)
+{
+ header = tr("Bitcoin-Qt") + " " + tr("version") + " " +
+ QString::fromStdString(FormatFullVersion()) + "\n\n" +
+ tr("Usage:") + "\n" +
+ " bitcoin-qt [" + tr("options") + "] " + "\n";
+ coreOptions = QString::fromStdString(HelpMessage());
+ uiOptions = tr("UI options") + ":\n" +
+ " -lang=<lang> " + tr("Set language, for example \"de_DE\" (default: system locale)") + "\n" +
+ " -min " + tr("Start minimized") + "\n" +
+ " -splash " + tr("Show splash screen on startup (default: 1)") + "\n";
+
+ setWindowTitle(tr("Bitcoin-Qt"));
+ setTextFormat(Qt::PlainText);
+ // setMinimumWidth is ignored for QMessageBox so put in nonbreaking spaces to make it wider.
+ QChar em_space(0x2003);
+ setText(header + QString(em_space).repeated(40));
+ setDetailedText(coreOptions + "\n" + uiOptions);
+}
+#include "bitcoin.moc"
+
+void HelpMessageBox::exec()
+{
+#if defined(WIN32)
+ // On windows, show a message box, as there is no stderr in windowed applications
+ QMessageBox::exec();
+#else
+ // On other operating systems, the expected action is to print the message to the console.
+ QString strUsage = header + "\n" + coreOptions + "\n" + uiOptions;
+ fprintf(stderr, "%s", strUsage.toStdString().c_str());
#endif
+}
+
#ifndef BITCOIN_QT_TEST
int main(int argc, char *argv[])
{
@@ -140,7 +170,7 @@ int main(int argc, char *argv[])
// Do this early as we don't want to bother initializing if we are just calling IPC
for (int i = 1; i < argc; i++)
{
- if (strlen(argv[i]) > 7 && strncasecmp(argv[i], "bitcoin:", 8) == 0)
+ if (boost::algorithm::istarts_with(argv[i], "bitcoin:"))
{
const char *strURI = argv[i];
try {
@@ -164,6 +194,9 @@ int main(int argc, char *argv[])
Q_INIT_RESOURCE(bitcoin);
QApplication app(argc, argv);
+ // Install global event filter that makes sure that long tooltips can be word-wrapped
+ app.installEventFilter(new GUIUtil::ToolTipToRichTextFilter(TOOLTIP_WRAP_THRESHOLD, &app));
+
// Command-line options take precedence:
ParseParameters(argc, argv);
@@ -187,32 +220,50 @@ int main(int argc, char *argv[])
// ... then GUI settings:
OptionsModel optionsModel;
- // Get desired locale ("en_US") from command line or system locale
+ // Get desired locale (e.g. "de_DE") from command line or use system locale
QString lang_territory = QString::fromStdString(GetArg("-lang", QLocale::system().name().toStdString()));
- // Load language files for configured locale:
- // - First load the translator for the base language, without territory
- // - Then load the more specific locale translator
QString lang = lang_territory;
+ // Convert to "de" only by truncating "_DE"
+ lang.truncate(lang_territory.lastIndexOf('_'));
- lang.truncate(lang_territory.lastIndexOf('_')); // "en"
QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator;
+ // Load language files for configured locale:
+ // - First load the translator for the base language, without territory
+ // - Then load the more specific locale translator
- qtTranslatorBase.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang);
- if (!qtTranslatorBase.isEmpty())
+ // Load e.g. qt_de.qm
+ if (qtTranslatorBase.load("qt_" + lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
app.installTranslator(&qtTranslatorBase);
- qtTranslator.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang_territory);
- if (!qtTranslator.isEmpty())
+ // Load e.g. qt_de_DE.qm
+ if (qtTranslator.load("qt_" + lang_territory, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
app.installTranslator(&qtTranslator);
- translatorBase.load(":/translations/"+lang);
- if (!translatorBase.isEmpty())
+ // Load e.g. bitcoin_de.qm (shortcut "de" needs to be defined in bitcoin.qrc)
+ if (translatorBase.load(lang, ":/translations/"))
app.installTranslator(&translatorBase);
- translator.load(":/translations/"+lang_territory);
- if (!translator.isEmpty())
+ // Load e.g. bitcoin_de_DE.qm (shortcut "de_DE" needs to be defined in bitcoin.qrc)
+ if (translator.load(lang_territory, ":/translations/"))
app.installTranslator(&translator);
+ // Subscribe to global signals from core
+ uiInterface.ThreadSafeMessageBox.connect(ThreadSafeMessageBox);
+ uiInterface.ThreadSafeAskFee.connect(ThreadSafeAskFee);
+ uiInterface.ThreadSafeHandleURI.connect(ThreadSafeHandleURI);
+ uiInterface.InitMessage.connect(InitMessage);
+ uiInterface.QueueShutdown.connect(QueueShutdown);
+ uiInterface.Translate.connect(Translate);
+
+ // Show help message immediately after parsing command-line options (for "-lang") and setting locale,
+ // but before showing splash screen.
+ if (mapArgs.count("-?") || mapArgs.count("--help"))
+ {
+ HelpMessageBox help;
+ help.exec();
+ return 1;
+ }
+
QSplashScreen splash(QPixmap(":/images/splash"), 0);
if (GetBoolArg("-splash", true) && !GetBoolArg("-min"))
{
@@ -227,9 +278,13 @@ int main(int argc, char *argv[])
try
{
+ // Regenerate startup link, to fix links to old versions
+ if (GUIUtil::GetStartOnSystemStartup())
+ GUIUtil::SetStartOnSystemStartup(true);
+
BitcoinGUI window;
guiref = &window;
- if(AppInit2(argc, argv))
+ if(AppInit2())
{
{
// Put this in a block, so that the Model objects are cleaned up before
@@ -241,9 +296,7 @@ int main(int argc, char *argv[])
splash.finish(&window);
ClientModel clientModel(&optionsModel);
- clientmodel = &clientModel;
WalletModel walletModel(pwalletMain, &optionsModel);
- walletmodel = &walletModel;
window.setClientModel(&clientModel);
window.setWalletModel(&walletModel);
@@ -257,17 +310,16 @@ int main(int argc, char *argv[])
{
window.show();
}
+#if !defined(MAC_OSX) && !defined(WIN32)
+// TODO: implement qtipcserver.cpp for Mac and Windows
// Place this here as guiref has to be defined if we dont want to lose URIs
ipcInit();
-#if !defined(MAC_OSX) && !defined(WIN32)
-// TODO: implement qtipcserver.cpp for Mac and Windows
-
// Check for URI in argv
for (int i = 1; i < argc; i++)
{
- if (strlen(argv[i]) > 7 && strncasecmp(argv[i], "bitcoin:", 8) == 0)
+ if (boost::algorithm::istarts_with(argv[i], "bitcoin:"))
{
const char *strURI = argv[i];
try {
@@ -281,11 +333,10 @@ int main(int argc, char *argv[])
#endif
app.exec();
+ window.hide();
window.setClientModel(0);
window.setWalletModel(0);
guiref = 0;
- clientmodel = 0;
- walletmodel = 0;
}
Shutdown(NULL);
}
diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc
index e631a65155..a6a2112478 100644
--- a/src/qt/bitcoin.qrc
+++ b/src/qt/bitcoin.qrc
@@ -38,28 +38,32 @@
<file alias="lock_open">res/icons/lock_open.png</file>
<file alias="key">res/icons/key.png</file>
<file alias="filesave">res/icons/filesave.png</file>
+ <file alias="qrcode">res/icons/qrcode.png</file>
+ <file alias="debugwindow">res/icons/debugwindow.png</file>
</qresource>
<qresource prefix="/images">
<file alias="about">res/images/about.png</file>
<file alias="splash">res/images/splash2.jpg</file>
- <file alias="qrcode">res/images/qrcode.png</file>
</qresource>
<qresource prefix="/movies">
<file alias="update_spinner">res/movies/update_spinner.mng</file>
</qresource>
<qresource prefix="/translations">
+ <file alias="bg">locale/bitcoin_bg.qm</file>
<file alias="ca_ES">locale/bitcoin_ca_ES.qm</file>
<file alias="cs">locale/bitcoin_cs.qm</file>
<file alias="da">locale/bitcoin_da.qm</file>
<file alias="de">locale/bitcoin_de.qm</file>
+ <file alias="el_GR">locale/bitcoin_el_GR.qm</file>
<file alias="en">locale/bitcoin_en.qm</file>
- <file alias="es_CL">locale/bitcoin_es_CL.qm</file>
<file alias="es">locale/bitcoin_es.qm</file>
+ <file alias="es_CL">locale/bitcoin_es_CL.qm</file>
<file alias="et">locale/bitcoin_et.qm</file>
<file alias="eu_ES">locale/bitcoin_eu_ES.qm</file>
- <file alias="fa_IR">locale/bitcoin_fa_IR.qm</file>
<file alias="fa">locale/bitcoin_fa.qm</file>
+ <file alias="fa_IR">locale/bitcoin_fa_IR.qm</file>
<file alias="fi">locale/bitcoin_fi.qm</file>
+ <file alias="fr">locale/bitcoin_fr.qm</file>
<file alias="fr_CA">locale/bitcoin_fr_CA.qm</file>
<file alias="fr_FR">locale/bitcoin_fr_FR.qm</file>
<file alias="he">locale/bitcoin_he.qm</file>
@@ -71,6 +75,7 @@
<file alias="nl">locale/bitcoin_nl.qm</file>
<file alias="pl">locale/bitcoin_pl.qm</file>
<file alias="pt_BR">locale/bitcoin_pt_BR.qm</file>
+ <file alias="pt_PT">locale/bitcoin_pt_PT.qm</file>
<file alias="ro_RO">locale/bitcoin_ro_RO.qm</file>
<file alias="ru">locale/bitcoin_ru.qm</file>
<file alias="sk">locale/bitcoin_sk.qm</file>
diff --git a/src/qt/bitcoinaddressvalidator.cpp b/src/qt/bitcoinaddressvalidator.cpp
index 373877808f..d2b93e70f5 100644
--- a/src/qt/bitcoinaddressvalidator.cpp
+++ b/src/qt/bitcoinaddressvalidator.cpp
@@ -21,21 +21,31 @@ BitcoinAddressValidator::BitcoinAddressValidator(QObject *parent) :
QValidator::State BitcoinAddressValidator::validate(QString &input, int &pos) const
{
// Correction
- for(int idx=0; idx<input.size(); ++idx)
+ for(int idx=0; idx<input.size();)
{
- switch(input.at(idx).unicode())
+ bool removeChar = false;
+ QChar ch = input.at(idx);
+ // Corrections made are very conservative on purpose, to avoid
+ // users unexpectedly getting away with typos that would normally
+ // be detected, and thus sending to the wrong address.
+ switch(ch.unicode())
{
- case 'l':
- case 'I':
- input[idx] = QChar('1');
- break;
- case '0':
- case 'O':
- input[idx] = QChar('o');
+ // 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
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index bcf90917ed..9deaa4b6d3 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -1,14 +1,15 @@
/*
* Qt4 bitcoin GUI.
*
- * W.J. van der Laan 20011-2012
- * The Bitcoin Developers 20011-2012
+ * W.J. van der Laan 2011-2012
+ * The Bitcoin Developers 2011-2012
*/
#include "bitcoingui.h"
#include "transactiontablemodel.h"
#include "addressbookpage.h"
#include "sendcoinsdialog.h"
#include "messagepage.h"
+#include "verifymessagedialog.h"
#include "optionsdialog.h"
#include "aboutdialog.h"
#include "clientmodel.h"
@@ -24,6 +25,7 @@
#include "askpassphrasedialog.h"
#include "notificator.h"
#include "guiutil.h"
+#include "rpcconsole.h"
#ifdef Q_WS_MAC
#include "macdockiconhandler.h"
@@ -64,11 +66,13 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
changePassphraseAction(0),
aboutQtAction(0),
trayIcon(0),
- notificator(0)
+ notificator(0),
+ rpcConsole(0)
{
resize(850, 550);
setWindowTitle(tr("Bitcoin Wallet"));
#ifndef Q_WS_MAC
+ qApp->setWindowIcon(QIcon(":icons/bitcoin"));
setWindowIcon(QIcon(":icons/bitcoin"));
#else
setUnifiedTitleAndToolBarOnMac(true);
@@ -154,10 +158,14 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
// Clicking on a transaction on the overview page simply sends you to transaction history page
connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage()));
+ connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), transactionView, SLOT(focusTransaction(QModelIndex)));
// Doubleclicking on a transaction on the transaction history page shows details
connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails()));
+ rpcConsole = new RPCConsole(this);
+ connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show()));
+
gotoOverviewPage();
}
@@ -199,12 +207,12 @@ void BitcoinGUI::createActions()
tabGroup->addAction(receiveCoinsAction);
sendCoinsAction = new QAction(QIcon(":/icons/send"), tr("&Send coins"), this);
- sendCoinsAction->setToolTip(tr("Send coins to a bitcoin address"));
+ sendCoinsAction->setToolTip(tr("Send coins to a Bitcoin address"));
sendCoinsAction->setCheckable(true);
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
tabGroup->addAction(sendCoinsAction);
- messageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message"), this);
+ messageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message..."), this);
messageAction->setToolTip(tr("Prove you control an address"));
#ifdef FIRST_CLASS_MESSAGING
messageAction->setCheckable(true);
@@ -235,19 +243,23 @@ void BitcoinGUI::createActions()
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->setToolTip(tr("Modify configuration options for Bitcoin"));
optionsAction->setMenuRole(QAction::PreferencesRole);
toggleHideAction = new QAction(QIcon(":/icons/bitcoin"), tr("Show/Hide &Bitcoin"), this);
toggleHideAction->setToolTip(tr("Show or hide the Bitcoin window"));
exportAction = new QAction(QIcon(":/icons/export"), tr("&Export..."), this);
exportAction->setToolTip(tr("Export the data in the current tab to a file"));
- encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet"), this);
+ encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet..."), this);
encryptWalletAction->setToolTip(tr("Encrypt or decrypt wallet"));
encryptWalletAction->setCheckable(true);
- backupWalletAction = new QAction(QIcon(":/icons/filesave"), tr("&Backup Wallet"), this);
+ backupWalletAction = new QAction(QIcon(":/icons/filesave"), tr("&Backup Wallet..."), this);
backupWalletAction->setToolTip(tr("Backup wallet to another location"));
- changePassphraseAction = new QAction(QIcon(":/icons/key"), tr("&Change Passphrase"), this);
+ changePassphraseAction = new QAction(QIcon(":/icons/key"), tr("&Change Passphrase..."), this);
changePassphraseAction->setToolTip(tr("Change the passphrase used for wallet encryption"));
+ openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this);
+ openRPCConsoleAction->setToolTip(tr("Open debugging and diagnostic console"));
+ verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this);
+ verifyMessageAction->setToolTip(tr("Verify a message signature"));
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
@@ -257,6 +269,7 @@ void BitcoinGUI::createActions()
connect(encryptWalletAction, SIGNAL(triggered(bool)), this, SLOT(encryptWallet(bool)));
connect(backupWalletAction, SIGNAL(triggered()), this, SLOT(backupWallet()));
connect(changePassphraseAction, SIGNAL(triggered()), this, SLOT(changePassphrase()));
+ connect(verifyMessageAction, SIGNAL(triggered()), this, SLOT(verifyMessage()));
}
void BitcoinGUI::createMenuBar()
@@ -276,6 +289,7 @@ void BitcoinGUI::createMenuBar()
#ifndef FIRST_CLASS_MESSAGING
file->addAction(messageAction);
#endif
+ file->addAction(verifyMessageAction);
file->addSeparator();
file->addAction(quitAction);
@@ -286,6 +300,8 @@ void BitcoinGUI::createMenuBar()
settings->addAction(optionsAction);
QMenu *help = appMenuBar->addMenu(tr("&Help"));
+ help->addAction(openRPCConsoleAction);
+ help->addSeparator();
help->addAction(aboutAction);
help->addAction(aboutQtAction);
}
@@ -315,17 +331,18 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
{
if(clientModel->isTestNet())
{
- QString title_testnet = windowTitle() + QString(" ") + tr("[testnet]");
- setWindowTitle(title_testnet);
+ setWindowTitle(windowTitle() + QString(" ") + tr("[testnet]"));
#ifndef Q_WS_MAC
+ qApp->setWindowIcon(QIcon(":icons/bitcoin_testnet"));
setWindowIcon(QIcon(":icons/bitcoin_testnet"));
#else
MacDockIconHandler::instance()->setIcon(QIcon(":icons/bitcoin_testnet"));
#endif
if(trayIcon)
{
- trayIcon->setToolTip(title_testnet);
+ trayIcon->setToolTip(tr("Bitcoin client") + QString(" ") + tr("[testnet]"));
trayIcon->setIcon(QIcon(":/icons/toolbar_testnet"));
+ toggleHideAction->setIcon(QIcon(":/icons/toolbar_testnet"));
}
}
@@ -333,11 +350,13 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
setNumConnections(clientModel->getNumConnections());
connect(clientModel, SIGNAL(numConnectionsChanged(int)), this, SLOT(setNumConnections(int)));
- setNumBlocks(clientModel->getNumBlocks());
- connect(clientModel, SIGNAL(numBlocksChanged(int)), this, SLOT(setNumBlocks(int)));
+ setNumBlocks(clientModel->getNumBlocks(), clientModel->getNumBlocksOfPeers());
+ connect(clientModel, SIGNAL(numBlocksChanged(int,int)), this, SLOT(setNumBlocks(int,int)));
// Report errors from network/worker thread
- connect(clientModel, SIGNAL(error(QString,QString, bool)), this, SLOT(error(QString,QString,bool)));
+ connect(clientModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool)));
+
+ rpcConsole->setClientModel(clientModel);
}
}
@@ -391,13 +410,15 @@ void BitcoinGUI::createTrayIcon()
// Configuration of the tray icon (or dock icon) icon menu
trayIconMenu->addAction(toggleHideAction);
+ trayIconMenu->addAction(openRPCConsoleAction);
trayIconMenu->addSeparator();
trayIconMenu->addAction(messageAction);
+ trayIconMenu->addAction(verifyMessageAction);
#ifndef FIRST_CLASS_MESSAGING
trayIconMenu->addSeparator();
#endif
- trayIconMenu->addAction(receiveCoinsAction);
trayIconMenu->addAction(sendCoinsAction);
+ trayIconMenu->addAction(receiveCoinsAction);
trayIconMenu->addSeparator();
trayIconMenu->addAction(optionsAction);
#ifndef Q_WS_MAC // This is built-in on Mac
@@ -405,7 +426,7 @@ void BitcoinGUI::createTrayIcon()
trayIconMenu->addAction(quitAction);
#endif
- notificator = new Notificator(tr("bitcoin-qt"), trayIcon);
+ notificator = new Notificator(qApp->applicationName(), trayIcon);
}
#ifndef Q_WS_MAC
@@ -413,7 +434,7 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
{
if(reason == QSystemTrayIcon::Trigger)
{
- // Click on system tray icon triggers "show/hide bitcoin"
+ // Click on system tray icon triggers "show/hide Bitcoin"
toggleHideAction->trigger();
}
}
@@ -472,7 +493,7 @@ void BitcoinGUI::setNumConnections(int count)
labelConnectionsIcon->setToolTip(tr("%n active connection(s) to Bitcoin network", "", count));
}
-void BitcoinGUI::setNumBlocks(int count)
+void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
{
// don't show / hide progressBar and it's label if we have no connection(s) to the network
if (!clientModel || clientModel->getNumConnections() == 0)
@@ -483,7 +504,6 @@ void BitcoinGUI::setNumBlocks(int count)
return;
}
- int nTotalBlocks = clientModel->getNumBlocksOfPeers();
QString tooltip;
if(count < nTotalBlocks)
@@ -551,22 +571,29 @@ void BitcoinGUI::setNumBlocks(int count)
// Set icon state: spinning if catching up, tick otherwise
if(secs < 90*60 && count >= nTotalBlocks)
{
- tooltip = tr("Up to date") + QString(".\n") + tooltip;
+ tooltip = tr("Up to date") + QString(".<br>") + tooltip;
labelBlocksIcon->setPixmap(QIcon(":/icons/synced").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
+
+ overviewPage->showOutOfSyncWarning(false);
}
else
{
- tooltip = tr("Catching up...") + QString("\n") + tooltip;
+ tooltip = tr("Catching up...") + QString("<br>") + tooltip;
labelBlocksIcon->setMovie(syncIconMovie);
syncIconMovie->start();
+
+ overviewPage->showOutOfSyncWarning(true);
}
if(!text.isEmpty())
{
- tooltip += QString("\n");
+ tooltip += QString("<br>");
tooltip += tr("Last received block was generated %1.").arg(text);
}
+ // Don't word-wrap this (fixed-width) tooltip
+ tooltip = QString("<nobr>") + tooltip + QString("</nobr>");
+
labelBlocksIcon->setToolTip(tooltip);
progressBarLabel->setToolTip(tooltip);
progressBar->setToolTip(tooltip);
@@ -625,7 +652,7 @@ void BitcoinGUI::askFee(qint64 nFeeRequired, bool *payFee)
"Do you want to pay the fee?").arg(
BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, nFeeRequired));
QMessageBox::StandardButton retval = QMessageBox::question(
- this, tr("Sending..."), strMessage,
+ this, tr("Confirm transaction fee"), strMessage,
QMessageBox::Yes|QMessageBox::Cancel, QMessageBox::Yes);
*payFee = (retval == QMessageBox::Yes);
}
@@ -713,8 +740,11 @@ void BitcoinGUI::gotoSendCoinsPage()
disconnect(exportAction, SIGNAL(triggered()), 0, 0);
}
-void BitcoinGUI::gotoMessagePage()
+void BitcoinGUI::gotoMessagePage(QString addr)
{
+ if(!addr.isEmpty())
+ messagePage->setAddress(addr);
+
#ifdef FIRST_CLASS_MESSAGING
messageAction->setChecked(true);
centralWidget->setCurrentWidget(messagePage);
@@ -723,16 +753,9 @@ void BitcoinGUI::gotoMessagePage()
disconnect(exportAction, SIGNAL(triggered()), 0, 0);
#else
messagePage->show();
- messagePage->setFocus();
#endif
}
-void BitcoinGUI::gotoMessagePage(QString addr)
-{
- gotoMessagePage();
- messagePage->setAddress(addr);
-}
-
void BitcoinGUI::dragEnterEvent(QDragEnterEvent *event)
{
// Accept only URIs
@@ -825,6 +848,13 @@ void BitcoinGUI::changePassphrase()
dlg.exec();
}
+void BitcoinGUI::verifyMessage()
+{
+ VerifyMessageDialog *dlg = new VerifyMessageDialog(walletModel->getAddressTableModel(), this);
+ dlg->setAttribute(Qt::WA_DeleteOnClose);
+ dlg->show();
+}
+
void BitcoinGUI::unlockWallet()
{
if(!walletModel)
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index 2cce8d3459..8a7f6e541b 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -13,6 +13,7 @@ class AddressBookPage;
class SendCoinsDialog;
class MessagePage;
class Notificator;
+class RPCConsole;
QT_BEGIN_NAMESPACE
class QLabel;
@@ -45,7 +46,7 @@ public:
functionality.
*/
void setWalletModel(WalletModel *walletModel);
-
+
protected:
void changeEvent(QEvent *e);
void closeEvent(QCloseEvent *event);
@@ -78,6 +79,7 @@ private:
QAction *sendCoinsAction;
QAction *addressBookAction;
QAction *messageAction;
+ QAction *verifyMessageAction;
QAction *aboutAction;
QAction *receiveCoinsAction;
QAction *optionsAction;
@@ -87,10 +89,12 @@ private:
QAction *backupWalletAction;
QAction *changePassphraseAction;
QAction *aboutQtAction;
+ QAction *openRPCConsoleAction;
QSystemTrayIcon *trayIcon;
Notificator *notificator;
TransactionView *transactionView;
+ RPCConsole *rpcConsole;
QMovie *syncIconMovie;
@@ -107,7 +111,7 @@ 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);
+ void setNumBlocks(int count, int countOfPeers);
/** Set the encryption status as shown in the UI.
@param[in] status current encryption status
@see WalletModel::EncryptionStatus
@@ -127,8 +131,7 @@ public slots:
void askFee(qint64 nFeeRequired, bool *payFee);
void handleURI(QString strURI);
- void gotoMessagePage();
- void gotoMessagePage(QString);
+ void gotoMessagePage(QString addr = "");
private slots:
/** Switch to overview (home) page */
@@ -161,6 +164,8 @@ private slots:
void backupWallet();
/** Change encrypted wallet passphrase */
void changePassphrase();
+ /** Verify a message signature */
+ void verifyMessage();
/** Ask for pass phrase to unlock wallet temporarily */
void unlockWallet();
diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp
index b25af1a210..ad17475816 100644
--- a/src/qt/bitcoinstrings.cpp
+++ b/src/qt/bitcoinstrings.cpp
@@ -6,34 +6,40 @@
#define UNUSED
#endif
static const char UNUSED *bitcoin_strings[] = {QT_TRANSLATE_NOOP("bitcoin-core", ""
-"Unable to bind to port %d on this computer. Bitcoin is probably already "
-"running."),
+"Unable to bind to %s on this computer. Bitcoin is probably already running."),
+QT_TRANSLATE_NOOP("bitcoin-core", "Unable to bind to %s on this computer (bind returned error %d, %s)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Disk space is low "),
QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin version"),
QT_TRANSLATE_NOOP("bitcoin-core", "Usage:"),
QT_TRANSLATE_NOOP("bitcoin-core", "Send command to -server or bitcoind"),
QT_TRANSLATE_NOOP("bitcoin-core", "List commands"),
QT_TRANSLATE_NOOP("bitcoin-core", "Get help for a command"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin"),
QT_TRANSLATE_NOOP("bitcoin-core", "Options:"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specify configuration file (default: bitcoin.conf)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specify pid file (default: bitcoind.pid)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Generate coins"),
QT_TRANSLATE_NOOP("bitcoin-core", "Don't generate coins"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Start minimized"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Show splash screen on startup (default: 1)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specify data directory"),
QT_TRANSLATE_NOOP("bitcoin-core", "Set database cache size in megabytes (default: 25)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Set database disk log size in megabytes (default: 100)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specify connection timeout (in milliseconds)"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Connect through socks4 proxy"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Allow DNS lookups for addnode and connect"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Connect through socks proxy"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Select the version of socks proxy to use (4 or 5, 5 is default)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Do not use proxy for connections to network <net> (IPv4 or IPv6)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Allow DNS lookups for -addnode, -seednode and -connect"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Pass DNS requests to (SOCKS5) proxy"),
QT_TRANSLATE_NOOP("bitcoin-core", "Listen for connections on <port> (default: 8333 or testnet: 18333)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Maintain at most <n> connections to peers (default: 125)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Add a node to connect to and attempt to keep the connection open"),
QT_TRANSLATE_NOOP("bitcoin-core", "Connect only to the specified node"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Connect to a node to retrieve peer addresses, and disconnect"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Specify your own public address"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Only connect to nodes in network <net> (IPv4 or IPv6)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Try to discover public IP address (default: 1)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Find peers using internet relay chat (default: 0)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Accept connections from outside (default: 1)"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Set language, for example \"de_DE\" (default: system locale)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Bind to given address. Use [host]:port notation for IPv6"),
QT_TRANSLATE_NOOP("bitcoin-core", "Find peers using DNS lookup (default: 1)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Threshold for disconnecting misbehaving peers (default: 100)"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
@@ -43,6 +49,8 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Maximum per-connection receive buffer, <n>*10
QT_TRANSLATE_NOOP("bitcoin-core", "Maximum per-connection send buffer, <n>*1000 bytes (default: 10000)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Use Universal Plug and Play to map the listening port (default: 1)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Use Universal Plug and Play to map the listening port (default: 0)"),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Detach block and address databases. Increases shutdown time (default: 0)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Fee per KB to add to transactions you send"),
QT_TRANSLATE_NOOP("bitcoin-core", "Accept command line and JSON-RPC commands"),
QT_TRANSLATE_NOOP("bitcoin-core", "Run in the background as a daemon and accept commands"),
@@ -64,6 +72,8 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Set key pool size to <n> (default: 100)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Rescan the block chain for missing wallet transactions"),
QT_TRANSLATE_NOOP("bitcoin-core", "How many blocks to check at startup (default: 2500, 0 = all)"),
QT_TRANSLATE_NOOP("bitcoin-core", "How thorough the block verification is (0-6, default: 1)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Imports blocks from external blk000?.dat file"),
+QT_TRANSLATE_NOOP("bitcoin-core", "This help message"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"\n"
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)"),
@@ -73,12 +83,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Server private key (default: server.pem)"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:"
"@STRENGTH)"),
-QT_TRANSLATE_NOOP("bitcoin-core", "This help message"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Usage"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Cannot obtain a lock on data directory %s. Bitcoin is probably already "
"running."),
-QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin"),
QT_TRANSLATE_NOOP("bitcoin-core", "Loading addresses..."),
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading addr.dat"),
QT_TRANSLATE_NOOP("bitcoin-core", "Loading block index..."),
@@ -93,12 +100,18 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Cannot initialize keypool"),
QT_TRANSLATE_NOOP("bitcoin-core", "Cannot write default address"),
QT_TRANSLATE_NOOP("bitcoin-core", "Rescanning..."),
QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee=<amount>"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address: '%s'"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Unknown network specified in -noproxy: '%s'"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Unknown network specified in -onlynet: '%s'"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Unknown -socks proxy version requested: %i"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Cannot resolve -bind address: '%s'"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Not listening on any port"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Cannot resolve -externalip address: '%s'"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee=<amount>: '%s'"),
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", "Error: could not start node"),
QT_TRANSLATE_NOOP("bitcoin-core", "To use the %s option"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"%s, you must set a rpcpassword in the configuration file:\n"
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
index cb602ce327..64fd2a9450 100644
--- a/src/qt/clientmodel.cpp
+++ b/src/qt/clientmodel.cpp
@@ -5,14 +5,30 @@
#include "transactiontablemodel.h"
#include "main.h"
+#include "ui_interface.h"
#include <QDateTime>
+#include <QTimer>
+
+static const int64 nClientStartupTime = GetTime();
ClientModel::ClientModel(OptionsModel *optionsModel, QObject *parent) :
QObject(parent), optionsModel(optionsModel),
- cachedNumConnections(0), cachedNumBlocks(0)
+ cachedNumBlocks(0), cachedNumBlocksOfPeers(0), pollTimer(0)
{
numBlocksAtStartup = -1;
+
+ pollTimer = new QTimer();
+ pollTimer->setInterval(MODEL_UPDATE_DELAY);
+ pollTimer->start();
+ connect(pollTimer, SIGNAL(timeout()), this, SLOT(updateTimer()));
+
+ subscribeToCoreSignals();
+}
+
+ClientModel::~ClientModel()
+{
+ unsubscribeFromCoreSignals();
}
int ClientModel::getNumConnections() const
@@ -36,27 +52,42 @@ QDateTime ClientModel::getLastBlockDate() const
return QDateTime::fromTime_t(pindexBest->GetBlockTime());
}
-void ClientModel::update()
+void ClientModel::updateTimer()
{
- int newNumConnections = getNumConnections();
+ // Some quantities (such as number of blocks) change so fast that we don't want to be notified for each change.
+ // Periodically check and update with a timer.
int newNumBlocks = getNumBlocks();
- QString newStatusBar = getStatusBarWarnings();
+ int newNumBlocksOfPeers = getNumBlocksOfPeers();
+
+ if(cachedNumBlocks != newNumBlocks || cachedNumBlocksOfPeers != newNumBlocksOfPeers)
+ emit numBlocksChanged(newNumBlocks, newNumBlocksOfPeers);
+
+ cachedNumBlocks = newNumBlocks;
+ cachedNumBlocksOfPeers = newNumBlocksOfPeers;
+}
- if(cachedNumConnections != newNumConnections)
- emit numConnectionsChanged(newNumConnections);
- if(cachedNumBlocks != newNumBlocks || cachedStatusBar != newStatusBar)
+void ClientModel::updateNumConnections(int numConnections)
+{
+ emit numConnectionsChanged(numConnections);
+}
+
+void ClientModel::updateAlert(const QString &hash, int status)
+{
+ // Show error message notification for new alert
+ if(status == CT_NEW)
{
- // Simply emit a numBlocksChanged for now in case the status message changes,
- // so that the view updates the status bar.
- // TODO: It should send a notification.
- // (However, this might generate looped notifications and needs to be thought through and tested carefully)
- // error(tr("Network Alert"), newStatusBar);
- emit numBlocksChanged(newNumBlocks);
+ uint256 hash_256;
+ hash_256.SetHex(hash.toStdString());
+ CAlert alert = CAlert::getAlertByHash(hash_256);
+ if(!alert.IsNull())
+ {
+ emit error(tr("Network Alert"), QString::fromStdString(alert.strStatusBar), false);
+ }
}
- cachedNumConnections = newNumConnections;
- cachedNumBlocks = newNumBlocks;
- cachedStatusBar = newStatusBar;
+ // Emit a numBlocksChanged when the status message changes,
+ // so that the view recomputes and updates the status bar.
+ emit numBlocksChanged(getNumBlocks(), getNumBlocksOfPeers());
}
bool ClientModel::isTestNet() const
@@ -93,3 +124,51 @@ QString ClientModel::formatBuildDate() const
{
return QString::fromStdString(CLIENT_DATE);
}
+
+QString ClientModel::clientName() const
+{
+ return QString::fromStdString(CLIENT_NAME);
+}
+
+QDateTime ClientModel::formatClientStartupTime() const
+{
+ return QDateTime::fromTime_t(nClientStartupTime);
+}
+
+// Handlers for core signals
+static void NotifyBlocksChanged(ClientModel *clientmodel)
+{
+ // This notification is too frequent. Don't trigger a signal.
+ // Don't remove it, though, as it might be useful later.
+}
+
+static void NotifyNumConnectionsChanged(ClientModel *clientmodel, int newNumConnections)
+{
+ // Too noisy: OutputDebugStringF("NotifyNumConnectionsChanged %i\n", newNumConnections);
+ QMetaObject::invokeMethod(clientmodel, "updateNumConnections", Qt::QueuedConnection,
+ Q_ARG(int, newNumConnections));
+}
+
+static void NotifyAlertChanged(ClientModel *clientmodel, const uint256 &hash, ChangeType status)
+{
+ OutputDebugStringF("NotifyAlertChanged %s status=%i\n", hash.GetHex().c_str(), status);
+ QMetaObject::invokeMethod(clientmodel, "updateAlert", Qt::QueuedConnection,
+ Q_ARG(QString, QString::fromStdString(hash.GetHex())),
+ Q_ARG(int, status));
+}
+
+void ClientModel::subscribeToCoreSignals()
+{
+ // Connect signals to client
+ uiInterface.NotifyBlocksChanged.connect(boost::bind(NotifyBlocksChanged, this));
+ uiInterface.NotifyNumConnectionsChanged.connect(boost::bind(NotifyNumConnectionsChanged, this, _1));
+ uiInterface.NotifyAlertChanged.connect(boost::bind(NotifyAlertChanged, this, _1, _2));
+}
+
+void ClientModel::unsubscribeFromCoreSignals()
+{
+ // Disconnect signals from client
+ uiInterface.NotifyBlocksChanged.disconnect(boost::bind(NotifyBlocksChanged, this));
+ uiInterface.NotifyNumConnectionsChanged.disconnect(boost::bind(NotifyNumConnectionsChanged, this, _1));
+ uiInterface.NotifyAlertChanged.disconnect(boost::bind(NotifyAlertChanged, this, _1, _2));
+}
diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h
index 8e7431a2f3..0349c389c5 100644
--- a/src/qt/clientmodel.h
+++ b/src/qt/clientmodel.h
@@ -10,6 +10,7 @@ class CWallet;
QT_BEGIN_NAMESPACE
class QDateTime;
+class QTimer;
QT_END_NAMESPACE
/** Model for Bitcoin network client. */
@@ -18,6 +19,7 @@ class ClientModel : public QObject
Q_OBJECT
public:
explicit ClientModel(OptionsModel *optionsModel, QObject *parent = 0);
+ ~ClientModel();
OptionsModel *getOptionsModel();
@@ -38,27 +40,32 @@ public:
QString formatFullVersion() const;
QString formatBuildDate() const;
+ QString clientName() const;
+ QDateTime formatClientStartupTime() const;
private:
OptionsModel *optionsModel;
- int cachedNumConnections;
int cachedNumBlocks;
- QString cachedStatusBar;
+ int cachedNumBlocksOfPeers;
int numBlocksAtStartup;
+ QTimer *pollTimer;
+
+ void subscribeToCoreSignals();
+ void unsubscribeFromCoreSignals();
signals:
void numConnectionsChanged(int count);
- void numBlocksChanged(int count);
+ void numBlocksChanged(int count, int countOfPeers);
//! Asynchronous error notification
void error(const QString &title, const QString &message, bool modal);
public slots:
-
-private slots:
- void update();
+ void updateTimer();
+ void updateNumConnections(int numConnections);
+ void updateAlert(const QString &hash, int status);
};
#endif // CLIENTMODEL_H
diff --git a/src/qt/csvmodelwriter.cpp b/src/qt/csvmodelwriter.cpp
index 84578b3322..8a50bbab3f 100644
--- a/src/qt/csvmodelwriter.cpp
+++ b/src/qt/csvmodelwriter.cpp
@@ -27,8 +27,9 @@ void CSVModelWriter::addColumn(const QString &title, int column, int role)
static void writeValue(QTextStream &f, const QString &value)
{
- // TODO: quoting if " or \n in string
- f << "\"" << value << "\"";
+ QString escaped = value;
+ escaped.replace('"', "\"\"");
+ f << "\"" << escaped << "\"";
}
static void writeSep(QTextStream &f)
diff --git a/src/qt/editaddressdialog.cpp b/src/qt/editaddressdialog.cpp
index cecb8aecd7..0d88aa47cb 100644
--- a/src/qt/editaddressdialog.cpp
+++ b/src/qt/editaddressdialog.cpp
@@ -93,7 +93,7 @@ void EditAddressDialog::accept()
break;
case AddressTableModel::INVALID_ADDRESS:
QMessageBox::warning(this, windowTitle(),
- tr("The entered address \"%1\" is not a valid bitcoin address.").arg(ui->addressEdit->text()),
+ 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:
diff --git a/src/qt/forms/aboutdialog.ui b/src/qt/forms/aboutdialog.ui
index 6e342e5e8a..21fc7b2019 100644
--- a/src/qt/forms/aboutdialog.ui
+++ b/src/qt/forms/aboutdialog.ui
@@ -22,9 +22,6 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="text">
- <string/>
- </property>
<property name="pixmap">
<pixmap resource="../bitcoin.qrc">:/images/about</pixmap>
</property>
@@ -49,6 +46,9 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
<property name="text">
<string>&lt;b&gt;Bitcoin&lt;/b&gt; version</string>
</property>
@@ -59,6 +59,9 @@
</item>
<item>
<widget class="QLabel" name="versionLabel">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
<property name="text">
<string notr="true">0.3.666-beta</string>
</property>
@@ -87,6 +90,9 @@
</item>
<item>
<widget class="QLabel" name="label_2">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
<property name="text">
<string>Copyright © 2009-2012 Bitcoin Developers
diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui
index b31a9ce997..bca0a8dcdb 100644
--- a/src/qt/forms/addressbookpage.ui
+++ b/src/qt/forms/addressbookpage.ui
@@ -29,9 +29,15 @@
</item>
<item>
<widget class="QTableView" name="tableView">
+ <property name="contextMenuPolicy">
+ <enum>Qt::CustomContextMenu</enum>
+ </property>
<property name="toolTip">
<string>Double-click to edit address or label</string>
</property>
+ <property name="tabKeyNavigation">
+ <bool>false</bool>
+ </property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
@@ -57,7 +63,7 @@
<string>Create a new address</string>
</property>
<property name="text">
- <string>&amp;New Address...</string>
+ <string>&amp;New Address</string>
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
@@ -71,7 +77,7 @@
<string>Copy the currently selected address to the system clipboard</string>
</property>
<property name="text">
- <string>&amp;Copy to Clipboard</string>
+ <string>&amp;Copy Address</string>
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
@@ -86,7 +92,7 @@
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
- <normaloff>:/images/qrcode</normaloff>:/images/qrcode</iconset>
+ <normaloff>:/icons/qrcode</normaloff>:/icons/qrcode</iconset>
</property>
</widget>
</item>
diff --git a/src/qt/forms/askpassphrasedialog.ui b/src/qt/forms/askpassphrasedialog.ui
index 3f6b668e06..25169042a1 100644
--- a/src/qt/forms/askpassphrasedialog.ui
+++ b/src/qt/forms/askpassphrasedialog.ui
@@ -23,14 +23,11 @@
</size>
</property>
<property name="windowTitle">
- <string>Dialog</string>
+ <string>Passphrase Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="warningLabel">
- <property name="text">
- <string>TextLabel</string>
- </property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
@@ -44,57 +41,58 @@
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
- <item row="1" column="0">
+ <item row="0" column="0">
<widget class="QLabel" name="passLabel1">
<property name="text">
<string>Enter passphrase</string>
</property>
</widget>
</item>
- <item row="1" column="1">
+ <item row="0" column="1">
<widget class="QLineEdit" name="passEdit1">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
- <item row="2" column="0">
+ <item row="1" column="0">
<widget class="QLabel" name="passLabel2">
<property name="text">
<string>New passphrase</string>
</property>
</widget>
</item>
- <item row="2" column="1">
+ <item row="1" column="1">
<widget class="QLineEdit" name="passEdit2">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
- <item row="3" column="0">
+ <item row="2" column="0">
<widget class="QLabel" name="passLabel3">
<property name="text">
<string>Repeat new passphrase</string>
</property>
</widget>
</item>
- <item row="3" column="1">
+ <item row="2" column="1">
<widget class="QLineEdit" name="passEdit3">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
- <item row="4" column="1">
+ <item row="3" column="1">
<widget class="QLabel" name="capsLabel">
- <property name="styleSheet">
- <string notr="true">#capsLabel {
- font: bold;
-}</string>
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
</property>
<property name="text">
- <string>TextLabel</string>
+ <string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
diff --git a/src/qt/forms/messagepage.ui b/src/qt/forms/messagepage.ui
index ae1e062fca..0b685aae1d 100644
--- a/src/qt/forms/messagepage.ui
+++ b/src/qt/forms/messagepage.ui
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
- <string>Message</string>
+ <string>Sign Message</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -101,9 +101,6 @@
<italic>true</italic>
</font>
</property>
- <property name="text">
- <string>Click &quot;Sign Message&quot; to get signature</string>
- </property>
<property name="readOnly">
<bool>true</bool>
</property>
@@ -131,7 +128,7 @@
<string>Copy the current signature to the system clipboard</string>
</property>
<property name="text">
- <string>&amp;Copy to Clipboard</string>
+ <string>&amp;Copy Signature</string>
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
@@ -140,6 +137,20 @@
</widget>
</item>
<item>
+ <widget class="QPushButton" name="clearButton">
+ <property name="toolTip">
+ <string>Reset all sign message fields</string>
+ </property>
+ <property name="text">
+ <string>Clear &amp;All</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui
index cc67fae533..6573517b24 100644
--- a/src/qt/forms/overviewpage.ui
+++ b/src/qt/forms/overviewpage.ui
@@ -24,68 +24,141 @@
<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>123.456 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>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="font">
+ <font>
+ <pointsize>11</pointsize>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Wallet</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="labelWalletStatus">
+ <property name="toolTip">
+ <string>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">QLabel { color: red; }</string>
+ </property>
+ <property name="text">
+ <string notr="true">(out of sync)</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <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 row="3" column="0">
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Unconfirmed:</string>
+ <item>
+ <layout class="QFormLayout" name="formLayout_2">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
- </widget>
- </item>
- <item row="3" column="1">
- <widget class="QLabel" name="labelUnconfirmed">
- <property name="text">
- <string>0 BTC</string>
+ <property name="horizontalSpacing">
+ <number>12</number>
</property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_5">
- <property name="text">
- <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ <property name="verticalSpacing">
+ <number>12</number>
</property>
- </widget>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Balance:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="labelBalance">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="toolTip">
+ <string>Your current balance</string>
+ </property>
+ <property name="text">
+ <string notr="true">123.456 BTC</string>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Unconfirmed:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLabel" name="labelUnconfirmed">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="toolTip">
+ <string>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</string>
+ </property>
+ <property name="text">
+ <string notr="true">0 BTC</string>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Number of transactions:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLabel" name="labelNumTransactions">
+ <property name="toolTip">
+ <string>Total number of transactions in wallet</string>
+ </property>
+ <property name="text">
+ <string notr="true">0</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
</layout>
</widget>
@@ -117,14 +190,50 @@ p, li { white-space: pre-wrap; }
</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>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <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="QLabel" name="labelTransactionsStatus">
+ <property name="toolTip">
+ <string>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">QLabel { color: red; }</string>
+ </property>
+ <property name="text">
+ <string notr="true">(out of sync)</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </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="QListView" name="listTransactions">
+ <property name="styleSheet">
+ <string notr="true">QListView { background: transparent; }</string>
+ </property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
@@ -134,6 +243,9 @@ p, li { white-space: pre-wrap; }
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::NoSelection</enum>
+ </property>
</widget>
</item>
</layout>
diff --git a/src/qt/forms/qrcodedialog.ui b/src/qt/forms/qrcodedialog.ui
index 714b1d6cd8..6199b68749 100644
--- a/src/qt/forms/qrcodedialog.ui
+++ b/src/qt/forms/qrcodedialog.ui
@@ -6,12 +6,12 @@
<rect>
<x>0</x>
<y>0</y>
- <width>320</width>
- <height>404</height>
+ <width>334</width>
+ <height>425</height>
</rect>
</property>
<property name="windowTitle">
- <string>Dialog</string>
+ <string>QR Code Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
diff --git a/src/qt/forms/rpcconsole.ui b/src/qt/forms/rpcconsole.ui
new file mode 100644
index 0000000000..cded274792
--- /dev/null
+++ b/src/qt/forms/rpcconsole.ui
@@ -0,0 +1,401 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>RPCConsole</class>
+ <widget class="QDialog" name="RPCConsole">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>706</width>
+ <height>446</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Bitcoin debug window</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab_info">
+ <attribute name="title">
+ <string>&amp;Information</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout" columnstretch="0,1">
+ <property name="horizontalSpacing">
+ <number>12</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_9">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Client</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Client name</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLabel" name="clientName">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="text">
+ <string>N/A</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Client version</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLabel" name="clientVersion">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="text">
+ <string>N/A</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_12">
+ <property name="text">
+ <string>Build date</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLabel" name="buildDate">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="text">
+ <string>N/A</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_13">
+ <property name="text">
+ <string>Startup time</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QLabel" name="startupTime">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="text">
+ <string>N/A</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_11">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Network</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Number of connections</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1">
+ <widget class="QLabel" name="numberOfConnections">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="text">
+ <string>N/A</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>On testnet</string>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="1">
+ <widget class="QCheckBox" name="isTestNet">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="0">
+ <widget class="QLabel" name="label_10">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Block chain</string>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Current number of blocks</string>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="1">
+ <widget class="QLabel" name="numberOfBlocks">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="text">
+ <string>N/A</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="10" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Estimated total blocks</string>
+ </property>
+ </widget>
+ </item>
+ <item row="10" column="1">
+ <widget class="QLabel" name="totalBlocks">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="text">
+ <string>N/A</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="11" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Last block time</string>
+ </property>
+ </widget>
+ </item>
+ <item row="11" column="1">
+ <widget class="QLabel" name="lastBlockTime">
+ <property name="cursor">
+ <cursorShape>IBeamCursor</cursorShape>
+ </property>
+ <property name="text">
+ <string>N/A</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item row="12" column="0">
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="13" column="0">
+ <widget class="QLabel" name="labelDebugLogfile">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Debug logfile</string>
+ </property>
+ </widget>
+ </item>
+ <item row="14" column="0">
+ <widget class="QPushButton" name="openDebugLogfileButton">
+ <property name="toolTip">
+ <string>Open the Bitcoin debug logfile from the current data directory. This can take a few seconds for large logfiles.</string>
+ </property>
+ <property name="text">
+ <string>&amp;Open</string>
+ </property>
+ </widget>
+ </item>
+ <item row="15" column="0">
+ <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 class="QWidget" name="tab_console">
+ <attribute name="title">
+ <string>&amp;Console</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QTextEdit" name="messagesWidget">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>100</height>
+ </size>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="tabKeyNavigation" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="columnCount" stdset="0">
+ <number>2</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string notr="true">&gt;</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEdit"/>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clearButton">
+ <property name="maximumSize">
+ <size>
+ <width>24</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Clear console</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
+ </property>
+ <property name="shortcut">
+ <string notr="true">Ctrl+L</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../bitcoin.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui
index 04cf404ae3..023a72ac2b 100644
--- a/src/qt/forms/sendcoinsdialog.ui
+++ b/src/qt/forms/sendcoinsdialog.ui
@@ -64,7 +64,7 @@
<string>Send to multiple recipients at once</string>
</property>
<property name="text">
- <string>&amp;Add recipient...</string>
+ <string>&amp;Add Recipient</string>
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
@@ -84,7 +84,7 @@
<string>Remove all transaction fields</string>
</property>
<property name="text">
- <string>Clear all</string>
+ <string>Clear &amp;All</string>
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
diff --git a/src/qt/forms/transactiondescdialog.ui b/src/qt/forms/transactiondescdialog.ui
index 9a9f6db158..039cb082cc 100644
--- a/src/qt/forms/transactiondescdialog.ui
+++ b/src/qt/forms/transactiondescdialog.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>400</width>
- <height>300</height>
+ <width>600</width>
+ <height>250</height>
</rect>
</property>
<property name="windowTitle">
diff --git a/src/qt/forms/verifymessagedialog.ui b/src/qt/forms/verifymessagedialog.ui
new file mode 100644
index 0000000000..a7c99716e4
--- /dev/null
+++ b/src/qt/forms/verifymessagedialog.ui
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>VerifyMessageDialog</class>
+ <widget class="QDialog" name="VerifyMessageDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>494</width>
+ <height>342</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Verify Signed Message</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Enter the message and signature below (be careful to correctly copy newlines, spaces, tabs and other invisible characters) to obtain the Bitcoin address used to sign the message.</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPlainTextEdit" name="edMessage"/>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lnSig">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lnAddress">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="lblStatus">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="verifyMessage">
+ <property name="toolTip">
+ <string>Verify a message and obtain the Bitcoin address used to sign the message</string>
+ </property>
+ <property name="text">
+ <string>&amp;Verify Message</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/transaction_0</normaloff>:/icons/transaction_0</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="copyToClipboard">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip">
+ <string>Copy the currently selected address to the system clipboard</string>
+ </property>
+ <property name="text">
+ <string>&amp;Copy Address</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/editcopy</normaloff>:/icons/editcopy</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clearButton">
+ <property name="toolTip">
+ <string>Reset all verify message fields</string>
+ </property>
+ <property name="text">
+ <string>Clear &amp;All</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../bitcoin.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h
index 0cb507501a..54e9d644fe 100644
--- a/src/qt/guiconstants.h
+++ b/src/qt/guiconstants.h
@@ -20,4 +20,9 @@ static const int STATUSBAR_ICONSIZE = 16;
/* Transaction list -- bare address (without label) */
#define COLOR_BAREADDRESS QColor(140, 140, 140)
+/* Tooltips longer than this (in characters) are converted into rich text,
+ so that they can be word-wrapped.
+ */
+static const int TOOLTIP_WRAP_THRESHOLD = 80;
+
#endif // GUICONSTANTS_H
diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp
index f1e8a5f1bc..22c0bfeebe 100644
--- a/src/qt/guiutil.cpp
+++ b/src/qt/guiutil.cpp
@@ -2,6 +2,7 @@
#include "bitcoinaddressvalidator.h"
#include "walletmodel.h"
#include "bitcoinunits.h"
+#include "util.h"
#include <QString>
#include <QDateTime>
@@ -17,6 +18,25 @@
#include <QDesktopServices>
#include <QThread>
+#include <boost/filesystem.hpp>
+#include <boost/filesystem/fstream.hpp>
+
+#ifdef WIN32
+#ifdef _WIN32_WINNT
+#undef _WIN32_WINNT
+#endif
+#define _WIN32_WINNT 0x0501
+#ifdef _WIN32_IE
+#undef _WIN32_IE
+#endif
+#define _WIN32_IE 0x0501
+#define WIN32_LEAN_AND_MEAN 1
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#include "shlwapi.h"
+#endif
+
namespace GUIUtil {
QString dateTimeStr(const QDateTime &date)
@@ -214,5 +234,184 @@ bool isObscured(QWidget *w)
&& checkPoint(QPoint(w->width()/2, w->height()/2), w));
}
+void openDebugLogfile()
+{
+ boost::filesystem::path pathDebug = GetDataDir() / "debug.log";
+
+#ifdef WIN32
+ if (boost::filesystem::exists(pathDebug))
+ /* Open debug.log with the associated application */
+ ShellExecuteA((HWND)0, (LPCSTR)"open", (LPCSTR)pathDebug.string().c_str(), NULL, NULL, SW_SHOWNORMAL);
+#endif
+}
+
+ToolTipToRichTextFilter::ToolTipToRichTextFilter(int size_threshold, QObject *parent) :
+ QObject(parent), size_threshold(size_threshold)
+{
+
+}
+
+bool ToolTipToRichTextFilter::eventFilter(QObject *obj, QEvent *evt)
+{
+ if(evt->type() == QEvent::ToolTipChange)
+ {
+ QWidget *widget = static_cast<QWidget*>(obj);
+ QString tooltip = widget->toolTip();
+ if(tooltip.size() > size_threshold && !tooltip.startsWith("<qt/>") && !Qt::mightBeRichText(tooltip))
+ {
+ // Prefix <qt/> to make sure Qt detects this as rich text
+ // Escape the current message as HTML and replace \n by <br>
+ tooltip = "<qt/>" + HtmlEscape(tooltip, true);
+ widget->setToolTip(tooltip);
+ return true;
+ }
+ }
+ return QObject::eventFilter(obj, evt);
+}
+
+#ifdef WIN32
+boost::filesystem::path static StartupShortcutPath()
+{
+ return GetSpecialFolderPath(CSIDL_STARTUP) / "Bitcoin.lnk";
+}
+
+bool GetStartOnSystemStartup()
+{
+ // check for Bitcoin.lnk
+ return boost::filesystem::exists(StartupShortcutPath());
+}
+
+bool SetStartOnSystemStartup(bool fAutoStart)
+{
+ // If the shortcut exists already, remove it for updating
+ boost::filesystem::remove(StartupShortcutPath());
+
+ if (fAutoStart)
+ {
+ CoInitialize(NULL);
+
+ // Get a pointer to the IShellLink interface.
+ IShellLink* psl = NULL;
+ HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL,
+ CLSCTX_INPROC_SERVER, IID_IShellLink,
+ reinterpret_cast<void**>(&psl));
+
+ if (SUCCEEDED(hres))
+ {
+ // Get the current executable path
+ TCHAR pszExePath[MAX_PATH];
+ GetModuleFileName(NULL, pszExePath, sizeof(pszExePath));
+
+ TCHAR pszArgs[5] = TEXT("-min");
+
+ // Set the path to the shortcut target
+ psl->SetPath(pszExePath);
+ PathRemoveFileSpec(pszExePath);
+ psl->SetWorkingDirectory(pszExePath);
+ psl->SetShowCmd(SW_SHOWMINNOACTIVE);
+ psl->SetArguments(pszArgs);
+
+ // Query IShellLink for the IPersistFile interface for
+ // saving the shortcut in persistent storage.
+ IPersistFile* ppf = NULL;
+ hres = psl->QueryInterface(IID_IPersistFile,
+ reinterpret_cast<void**>(&ppf));
+ if (SUCCEEDED(hres))
+ {
+ WCHAR pwsz[MAX_PATH];
+ // Ensure that the string is ANSI.
+ MultiByteToWideChar(CP_ACP, 0, StartupShortcutPath().string().c_str(), -1, pwsz, MAX_PATH);
+ // Save the link by calling IPersistFile::Save.
+ hres = ppf->Save(pwsz, TRUE);
+ ppf->Release();
+ psl->Release();
+ CoUninitialize();
+ return true;
+ }
+ psl->Release();
+ }
+ CoUninitialize();
+ return false;
+ }
+ return true;
+}
+
+#elif defined(LINUX)
+
+// Follow the Desktop Application Autostart Spec:
+// http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html
+
+boost::filesystem::path static GetAutostartDir()
+{
+ namespace fs = boost::filesystem;
+
+ char* pszConfigHome = getenv("XDG_CONFIG_HOME");
+ if (pszConfigHome) return fs::path(pszConfigHome) / "autostart";
+ char* pszHome = getenv("HOME");
+ if (pszHome) return fs::path(pszHome) / ".config" / "autostart";
+ return fs::path();
+}
+
+boost::filesystem::path static GetAutostartFilePath()
+{
+ return GetAutostartDir() / "bitcoin.desktop";
+}
+
+bool GetStartOnSystemStartup()
+{
+ boost::filesystem::ifstream optionFile(GetAutostartFilePath());
+ if (!optionFile.good())
+ return false;
+ // Scan through file for "Hidden=true":
+ std::string line;
+ while (!optionFile.eof())
+ {
+ getline(optionFile, line);
+ if (line.find("Hidden") != std::string::npos &&
+ line.find("true") != std::string::npos)
+ return false;
+ }
+ optionFile.close();
+
+ return true;
+}
+
+bool SetStartOnSystemStartup(bool fAutoStart)
+{
+ if (!fAutoStart)
+ boost::filesystem::remove(GetAutostartFilePath());
+ else
+ {
+ char pszExePath[MAX_PATH+1];
+ memset(pszExePath, 0, sizeof(pszExePath));
+ if (readlink("/proc/self/exe", pszExePath, sizeof(pszExePath)-1) == -1)
+ return false;
+
+ boost::filesystem::create_directories(GetAutostartDir());
+
+ boost::filesystem::ofstream optionFile(GetAutostartFilePath(), std::ios_base::out|std::ios_base::trunc);
+ if (!optionFile.good())
+ return false;
+ // Write a bitcoin.desktop file to the autostart directory:
+ optionFile << "[Desktop Entry]\n";
+ optionFile << "Type=Application\n";
+ optionFile << "Name=Bitcoin\n";
+ optionFile << "Exec=" << pszExePath << " -min\n";
+ optionFile << "Terminal=false\n";
+ optionFile << "Hidden=false\n";
+ optionFile.close();
+ }
+ return true;
+}
+#else
+
+// TODO: OSX startup stuff; see:
+// http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/CustomLogin.html
+
+bool GetStartOnSystemStartup() { return false; }
+bool SetStartOnSystemStartup(bool fAutoStart) { return false; }
+
+#endif
+
} // namespace GUIUtil
diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h
index ea1a4795c0..c5f9aae511 100644
--- a/src/qt/guiutil.h
+++ b/src/qt/guiutil.h
@@ -2,6 +2,7 @@
#define GUIUTIL_H
#include <QString>
+#include <QObject>
QT_BEGIN_NAMESPACE
class QFont;
@@ -21,7 +22,7 @@ namespace GUIUtil
QString dateTimeStr(const QDateTime &datetime);
QString dateTimeStr(qint64 nTime);
- // Render bitcoin addresses in monospace font
+ // Render Bitcoin addresses in monospace font
QFont bitcoinAddressFont();
// Set up widgets for address and amounts
@@ -69,6 +70,29 @@ namespace GUIUtil
// Determine whether a widget is hidden behind other windows
bool isObscured(QWidget *w);
+ // Open debug.log
+ void openDebugLogfile();
+
+ /** Qt event filter that intercepts ToolTipChange events, and replaces the tooltip with a rich text
+ representation if needed. This assures that Qt can word-wrap long tooltip messages.
+ Tooltips longer than the provided size threshold (in characters) are wrapped.
+ */
+ class ToolTipToRichTextFilter : public QObject
+ {
+ Q_OBJECT
+ public:
+ explicit ToolTipToRichTextFilter(int size_threshold, QObject *parent = 0);
+
+ protected:
+ bool eventFilter(QObject *obj, QEvent *evt);
+
+ private:
+ int size_threshold;
+ };
+
+ bool GetStartOnSystemStartup();
+ bool SetStartOnSystemStartup(bool fAutoStart);
+
} // namespace GUIUtil
#endif // GUIUTIL_H
diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts
new file mode 100644
index 0000000000..7c8f606ef5
--- /dev/null
+++ b/src/qt/locale/bitcoin_bg.ts
@@ -0,0 +1,2247 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="bg" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>За Биткоин</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Биткоин&lt;/b&gt; версия</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="97"/>
+ <source>Copyright © 2009-2012 Bitcoin Developers
+
+This is experimental software.
+
+Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Адреси</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation>Това са входящите адреси (за получаване на плащания). За прегледност може да предоставяте различен адрес за всяко плащане.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="36"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Двоен клик за редакция на адрес или име</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="63"/>
+ <source>Create a new address</source>
+ <translation>Създава нов адрес</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="77"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Копира избрания адрес</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="66"/>
+ <source>&amp;New Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="80"/>
+ <source>&amp;Copy Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="91"/>
+ <source>Show &amp;QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="102"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="105"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="116"/>
+ <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="119"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Изтрий</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Copy &amp;Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="65"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="297"/>
+ <source>Export Address Book Data</source>
+ <translation>Запазване на адреси</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="298"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>CSV файл (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="311"/>
+ <source>Error exporting</source>
+ <translation>Грешка при записа</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="311"/>
+ <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="78"/>
+ <source>Address</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="26"/>
+ <source>Dialog</source>
+ <translation>Dialog</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation>TextLabel</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation>Парола</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation>Нова парола</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation>Още веднъж</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation>Въведете нова парола за портфейла.&lt;br/&gt;Моля използвайте &lt;b&gt;поне 10 случайни символа&lt;/b&gt;, или &lt;b&gt;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="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Тази операция изисква Вашата парола за отключване на портфейла.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Отключване на портфейла</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Тази операция изисква Вашата парола за декриптиране на портфейла.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Декриптиране на портфейла</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Промяна на парола</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Въведете текущата и новата парола за портфейла.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Потвърждаване на криптирането</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation>ВНИМАНИЕ: Ако криптирате портфейла и забравите паролата &lt;b&gt;ЩЕ ЗАГУБИТЕ ВСИЧКИ КОИНИ&lt;/b&gt;!
+Сигурни ли сте, че искате да криптирате портфейла?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation>Портфейлът е криптиран</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation>Криптирането беше неуспешно</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Криптирането на портфейла беше неуспешно поради неизвестен проблем. Портфейлът не е криптиран.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Паролите не съвпадат</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation>Отключването беше неуспешно</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Паролата въведена за декриптиране на портфейла е грешна.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation>Декриптирането беше неуспешно</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation>Паролата за портфейла беше променена успешно.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="72"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Биткоин портфейл</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="212"/>
+ <source>Sign &amp;message...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="245"/>
+ <source>Show/Hide &amp;Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="507"/>
+ <source>Synchronizing with network...</source>
+ <translation>Синхронизиране с мрежата...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Баланс</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Show general overview of wallet</source>
+ <translation>Обобщена информация за портфейла</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Плащания</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Browse transaction history</source>
+ <translation>История на входящи и изходящи плащания</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Адреси</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Редактиране на адреси</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Получаване</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Списък на адресите за получаване на плащания</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Изпращане</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Изпращане на коини</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="213"/>
+ <source>Prove you control an address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>Quit application</source>
+ <translation>Затваря приложението</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;About %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Показва информация за Биткоин</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>About &amp;Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show information about Qt</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Опции...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Конфигурационни опции</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>&amp;Encrypt Wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="252"/>
+ <source>&amp;Backup Wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="254"/>
+ <source>&amp;Change Passphrase...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="509"/>
+ <source>~%n block(s) remaining</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Downloaded %1 of %2 blocks of transaction history (%3% done).</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Запазване...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>Show or hide the Bitcoin window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="250"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Криптира или декриптира портфейла</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="253"/>
+ <source>Backup wallet to another location</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="255"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Променя паролата за портфейла</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="256"/>
+ <source>&amp;Debug window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="257"/>
+ <source>Open debugging and diagnostic console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="289"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Настройки</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="295"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Помощ</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="304"/>
+ <source>Tabs toolbar</source>
+ <translation>Раздели</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="315"/>
+ <source>Actions toolbar</source>
+ <translation>Функции</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="327"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="391"/>
+ <source>Bitcoin client</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="419"/>
+ <source>bitcoin-qt</source>
+ <translation>Биткоин</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation><numerusform>%n връзка към Биткоин мрежата</numerusform><numerusform>%n връзки към Биткоин мрежата</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="532"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>%1 блока.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="547"/>
+ <source>%n second(s) ago</source>
+ <translation><numerusform>%n секунда</numerusform><numerusform>%n секунди</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="551"/>
+ <source>%n minute(s) ago</source>
+ <translation><numerusform>%n минута</numerusform><numerusform>%n минути</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="555"/>
+ <source>%n hour(s) ago</source>
+ <translation><numerusform>%n час</numerusform><numerusform>%n часа</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="559"/>
+ <source>%n day(s) ago</source>
+ <translation><numerusform>%n ден</numerusform><numerusform>%n дни</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="565"/>
+ <source>Up to date</source>
+ <translation>Синхронизиран</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="570"/>
+ <source>Catching up...</source>
+ <translation>Зарежда блокове...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="578"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Последният блок е от %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="634"/>
+ <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="639"/>
+ <source>Confirm transaction fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="666"/>
+ <source>Sent transaction</source>
+ <translation>Изходящо плащане</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="667"/>
+ <source>Incoming transaction</source>
+ <translation>Входящо плащане</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="668"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="793"/>
+ <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="801"/>
+ <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="824"/>
+ <source>Backup Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="824"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="827"/>
+ <source>Backup Failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="827"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="127"/>
+ <source>A fatal error occured. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Показване на сумите в:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="277"/>
+ <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="284"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="285"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Редактиране на адрес</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Име</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>Името свързано с този запис в списъка с адреси</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Адрес</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation>Адресът свързан с този запис в списъка с адреси. Може да се променя само за изходящи адреси.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Нов адрес за получаване</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Нов адрес за изпращане</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Редактиране на входящ адрес</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Редактиране на изходящ адрес</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Вече има адрес &quot;%1&quot; в списъка с адреси.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>&quot;%1&quot; не е валиден биткоин адрес.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Отключването на портфейла беше неуспешно.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Генерирането на ключ беше неуспешно.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Автоматично стартиране на Биткоин</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="172"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Биткоин портфейлът ще е наличен веднага след пускане на системата</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Минимизиране в системния трей</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="177"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Остава видима само иконата долу вдясно</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Отваряне на входящия порт чрез &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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="180"/>
+ <source>M&amp;inimize on close</source>
+ <translation>М&amp;инимизирай вместо затваряне</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <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="189"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Използвай SOCKS4 прокси:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Свързване с Биткоин мрежата чрез SOCKS4 прокси сървър (например за да анонимизирате достъпа си чрез Тор)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="195"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>Прокси &amp;IP: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="201"/>
+ <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="204"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Порт: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="210"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Порт на прокси сървъра (например 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="232"/>
+ <source>Detach databases at shutdown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="233"/>
+ <source>Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="222"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>&amp;Такса за изходящо плащане</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="216"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation>Вмъкни от клипборда</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="128"/>
+ <source>Copy the current signature to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>&amp;Copy Signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="142"/>
+ <source>Reset all sign message fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="145"/>
+ <source>Clear &amp;All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="30"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="114"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>&amp;Sign Message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="79"/>
+ <location filename="../messagepage.cpp" line="94"/>
+ <location filename="../messagepage.cpp" line="106"/>
+ <source>Error signing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="79"/>
+ <source>%1 is not a valid address.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="94"/>
+ <source>Private key for %1 is not available.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="106"/>
+ <source>Sign failed</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="80"/>
+ <source>Main</source>
+ <translation>Общи</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="85"/>
+ <source>Display</source>
+ <translation>Показване</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="105"/>
+ <source>Options</source>
+ <translation>Опции</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Форма</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Баланс:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Брой плащания:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Непотвърдени:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation>0 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation type="unfinished"/>
+ </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="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Вашият текущ баланс</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation>Сборът на все още непотвърдените плащания, които не са част от текущия баланс</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Общ брой плащания в портфейла</translation>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>QR-Code Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="55"/>
+ <source>Request Payment</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="70"/>
+ <source>Amount:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="105"/>
+ <source>BTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="121"/>
+ <source>Label:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="144"/>
+ <source>Message:</source>
+ <translation>Съобщение:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="186"/>
+ <source>&amp;Save As...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="46"/>
+ <source>Error encoding URI into QR Code.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="64"/>
+ <source>Resulting URI too long, try to reduce the text for label / message.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="121"/>
+ <source>Save QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="121"/>
+ <source>PNG Images (*.png)</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>RPCConsole</name>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="14"/>
+ <source>Bitcoin debug window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="24"/>
+ <source>Information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="33"/>
+ <source>Client name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="40"/>
+ <location filename="../forms/rpcconsole.ui" line="60"/>
+ <location filename="../forms/rpcconsole.ui" line="106"/>
+ <location filename="../forms/rpcconsole.ui" line="156"/>
+ <location filename="../forms/rpcconsole.ui" line="176"/>
+ <location filename="../forms/rpcconsole.ui" line="196"/>
+ <location filename="../forms/rpcconsole.ui" line="229"/>
+ <source>N/A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="53"/>
+ <source>Client version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="79"/>
+ <source>Version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="92"/>
+ <source>Network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="99"/>
+ <source>Number of connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="119"/>
+ <source>On testnet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="142"/>
+ <source>Block chain</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="149"/>
+ <source>Current number of blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="169"/>
+ <source>Estimated total blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="189"/>
+ <source>Last block time</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="222"/>
+ <source>Build date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="237"/>
+ <source>Console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="278"/>
+ <source>&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="294"/>
+ <source>Clear console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="97"/>
+ <source>&amp;Copy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="195"/>
+ <source>Welcome to the bitcoin RPC console.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="196"/>
+ <source>Use up and down arrows to navigate history, and Ctrl-L to clear screen.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="197"/>
+ <source>Type &quot;help&quot; for an overview of available commands.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation>Изпращане</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 type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Изчисти всички</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>&amp;Send</source>
+ <translation>&amp;Изпращане</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; на %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation>Потвърждаване</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Сигурни ли сте, че искате да изпратите %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation> и </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation>Адресът на получателя не е валиден, моля проверете пак.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Сумата трябва да е по-голяма от 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation>Сумата надвишава текущият баланс</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation>Сумата надвишава текущият баланс след добавянето на такса от %1</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation>Открит е повторен адрес. Адрес може да се използва само веднъж при изпращане.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Грешка: създаването на плащане беше неуспешно </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation>Грешка: плащането беше отхвърлено. Това е възможно ако част от парите в портфейла са вече похарчени, например при паралелно използване на копие на wallet.dat</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Форма</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>С&amp;ума:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Плати &amp;На:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation>Въведете име за този адрес, за да го добавите в списъка с адреси</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Име:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Адресът, към който да се направи плащането (например 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation type="unfinished"/>
+ </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="26"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Въведете Биткоин адрес (например 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open for %1 blocks</source>
+ <translation>Подлежи на промяна за %1 блока</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="22"/>
+ <source>Open until %1</source>
+ <translation>Подлежи на промяна до %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/offline?</source>
+ <translation>%1/офлайн?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/непотвърдено</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="32"/>
+ <source>%1 confirmations</source>
+ <translation>включено в %1 блока</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="50"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Състояние:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="55"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, все още не е изпратено</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="57"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, изпратено през %1 участник в мрежата</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="59"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, изпратено през %1 участници в мрежата</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Дата:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <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="76"/>
+ <location filename="../transactiondesc.cpp" line="93"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;От:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="93"/>
+ <source>unknown</source>
+ <translation>неизвестен</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <location filename="../transactiondesc.cpp" line="117"/>
+ <location filename="../transactiondesc.cpp" line="176"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Към:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="97"/>
+ <source> (yours, label: </source>
+ <translation> (собствен, име: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="99"/>
+ <source> (yours)</source>
+ <translation> (собствен)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="134"/>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <location filename="../transactiondesc.cpp" line="193"/>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Кредит:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="136"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 достъпни след %2 блока)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="140"/>
+ <source>(not accepted)</source>
+ <translation>(отхвърлен от мрежата)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="184"/>
+ <location filename="../transactiondesc.cpp" line="192"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Дебит:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="198"/>
+ <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="214"/>
+ <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="220"/>
+ <source>Message:</source>
+ <translation>Съобщение:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>Comment:</source>
+ <translation>Коментар:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Transaction ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="227"/>
+ <source>Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to &quot;not accepted&quot; and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Подробности за плащане</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="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="275"/>
+ <source>Open for %n block(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="278"/>
+ <source>Open until %1</source>
+ <translation>Подлежи на промяна до %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="281"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="284"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="287"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation>Получаване</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation>Изпращане</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Състояние на плащането. Задръжте върху това поле за брой потвърждения.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Дата и час на получаване.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation>Тип плащане.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Сума извадена или добавена към баланса.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Днес</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Тази седмица</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Този месец</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Предния месец</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Тази година</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Интервал...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Получаване</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Изпращане</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Други</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>Търсене по адрес или име</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Минимална сума</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation>Копирай адрес</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation>Копирай име</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Редактирай име</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>CSV файл (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation>Дата</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Име</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Адрес</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation>Сума</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>Грешка при записа</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation>Неуспешен запис в %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="142"/>
+ <source>Sending...</source>
+ <translation>Изпращане...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Bitcoin version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Usage:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>List commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Get help for a command</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Options:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Don&apos;t generate coins</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Start minimized</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Show splash screen on startup (default: 1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Specify data directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Set database cache size in megabytes (default: 25)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Set database disk log size in megabytes (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Connect through socks4 proxy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Connect only to the specified node</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Use the test network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Output extra debugging information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="55"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Upgrade wallet to latest format</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>How many blocks to check at startup (default: 2500, 0 = all)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>How thorough the block verification is (0-6, default: 1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>This help message</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Usage</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="82"/>
+ <source>Loading addresses...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="83"/>
+ <source>Error loading addr.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Error loading blkindex.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="87"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="88"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="90"/>
+ <source>Error loading wallet.dat</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="122"/>
+ <source>Error: Wallet locked, unable to create transaction </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="123"/>
+ <source>Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="126"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Грешка: създаването на плащане беше неуспешно </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="127"/>
+ <source>Sending...</source>
+ <translation>Изпращане...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="128"/>
+ <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="../bitcoinstrings.cpp" line="132"/>
+ <source>Invalid amount</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="133"/>
+ <source>Insufficient funds</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Loading block index...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Add a node to connect to and attempt to keep the connection open</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Find peers using internet relay chat (default: 0)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Accept connections from outside (default: 1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Set language, for example &quot;de_DE&quot; (default: system locale)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Find peers using DNS lookup (default: 1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 1)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 0)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Fee per KB to add to transactions you send</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Loading wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="91"/>
+ <source>Cannot downgrade wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>Cannot initialize keypool</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="93"/>
+ <source>Cannot write default address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="94"/>
+ <source>Rescanning...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="95"/>
+ <source>Done loading</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="96"/>
+ <source>Invalid -proxy address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="97"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="98"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="101"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Warning: Disk space is low </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="102"/>
+ <source>To use the %s option</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="103"/>
+ <source>%s, you must set a rpcpassword in the configuration file:
+ %s
+It is recommended you use the following random password:
+rpcuser=bitcoinrpc
+rpcpassword=%s
+(you do not need to remember this password)
+If the file does not exist, create it with owner-readable-only file permissions.
+</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="112"/>
+ <source>Error</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="113"/>
+ <source>An error occured while setting up the RPC port %i for listening: %s</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="114"/>
+ <source>You must set rpcpassword=&lt;password&gt; in the configuration file:
+%s
+If the file does not exist, create it with owner-readable-only file permissions.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="119"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_el_GR.ts b/src/qt/locale/bitcoin_el_GR.ts
new file mode 100644
index 0000000000..1309a78d4d
--- /dev/null
+++ b/src/qt/locale/bitcoin_el_GR.ts
@@ -0,0 +1,2269 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="el_GR" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Σχετικα:Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt;έκδοση</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="97"/>
+ <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
+
+Αυτό ειναι πειραματικο λογισμικο.
+
+Διανέμεται κατω από άδεια MIT/X11 , δες το συνοδεύων αρχειο license.txt ή http://www.opensource.org/licenses/mit-license.php.
+
+Αυτό προϊόν περιλαμβάνει λογισμικο ανεπτυγμενο από το OpenSSL Project για χρήση στο OpenSSL Toolkit (http://www.openssl.org/) και κρυπτογραφικο κωδικα γραμένο από τον by 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>Αυτές είναι οι διευθύνσεις Bitcoin για την παραλαβή πληρωμών. Μπορεί να θέλετε να δίνετε διαφορετική διεύθυνση σε κάθε αποστολέα έτσι ώστε να μπορείτε να παρακολουθείτε ποιος σας πληρώνει.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="36"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Διπλό-κλικ για επεξεργασία της διεύθυνσης ή της ετικέτας</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="63"/>
+ <source>Create a new address</source>
+ <translation>Δημιούργησε νέα διεύθυνση</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="77"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Αντέγραψε την επιλεγμένη διεύθυνση στο πρόχειρο του συστήματος</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="66"/>
+ <source>&amp;New Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="80"/>
+ <source>&amp;Copy Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="91"/>
+ <source>Show &amp;QR Code</source>
+ <translation>Δείξε &amp;QR κωδικα</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="102"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Υπέγραψε ένα μήνυμα για να αποδείξεις ότι σου ανήκει η διεύθυνση</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="105"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;Υπέγραψε το μήνυμα</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="116"/>
+ <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="119"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Διαγραφή</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Copy &amp;Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="65"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="297"/>
+ <source>Export Address Book Data</source>
+ <translation>Εξαγωγή Δεδομενων Βιβλίου Διευθύνσεων</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="298"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Αρχείο οριοθετημένο με κόμματα (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="311"/>
+ <source>Error exporting</source>
+ <translation>Εξαγωγή λαθών</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="311"/>
+ <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="78"/>
+ <source>Address</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="26"/>
+ <source>Dialog</source>
+ <translation>Διάλογος</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation>ΚειμενοΕτικετας</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation>Βάλτε κωδικό πρόσβασης</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation>Νέος κωδικός πρόσβασης</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation>Επανέλαβε τον νέο κωδικό πρόσβασης</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <source>Enter the new passphrase to the wallet.&lt;br/&gt;Please use a passphrase of &lt;b&gt;10 or more random characters&lt;/b&gt;, or &lt;b&gt;eight or more words&lt;/b&gt;.</source>
+ <translation>Εισάγετε τον νέο κωδικό πρόσβασης στον πορτοφόλι &lt;br/&gt; Παρακαλώ χρησιμοποιείστε ένα κωδικό με &lt;b&gt; 10 ή περισσότερους τυχαίους χαρακτήρες&lt;/b&gt; ή &lt;b&gt; οχτώ ή παραπάνω λέξεις&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Κρυπτογράφησε το πορτοφόλι</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Αυτη η ενεργεία χρειάζεται τον κωδικό του πορτοφολιού για να ξεκλειδώσει το πορτοφόλι.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Ξεκλειδωσε το πορτοφολι</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Αυτη η ενεργεια χρειάζεται τον κωδικο του πορτοφολιου για να αποκρυπτογραφησειι το πορτοφολι.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Αποκρυπτογράφησε το πορτοφολι</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Άλλαξε κωδικο πρόσβασης</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Εισάγετε τον παλιό και τον νεο κωδικο στο πορτοφολι.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Επιβεβαίωσε την κρυπτογραφηση του πορτοφολιού</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation>Προσοχη: Εαν κρυπτογραφησεις το πορτοφολι σου και χάσεις τον κωδικο σου θα χάσεις &lt;b&gt; ΟΛΑ ΣΟΥ ΤΑ BITCOINS&lt;/b&gt;!
+Είσαι σίγουρος ότι θέλεις να κρυπτογραφησεις το πορτοφολι;</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation>Κρυπτογραφημενο πορτοφολι</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation>Το Bitcoin θα κλεισει τώρα για να τελειώσει την διαδικασία κρυπτογραφησης. Θυμησου ότι κρυπτογραφώντας το πορτοφολι σου δεν μπορείς να προστατέψεις πλήρως τα bitcoins σου από κλοπή στην περίπτωση όπου μολυνθεί ο υπολογιστής σου με κακόβουλο λογισμικο.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Προσοχη: το πλήκτρο Caps Lock είναι ενεργο.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation>Η κρυπτογραφηση του πορτοφολιού απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Η κρυπτογράφηση του πορτοφολιού απέτυχε λογω εσωτερικού σφάλματος. Το πορτοφολι δεν κρυπτογραφηθηκε.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Οι εισαχθέντες κωδικοί δεν ταιριάζουν.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation>το ξεκλείδωμα του πορτοφολιού απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>Ο κωδικος που εισήχθη για την αποκρυπτογραφηση του πορτοφολιού ήταν λαθος.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation>Η αποκρυπτογραφηση του πορτοφολιού απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation>Ο κωδικος του πορτοφολιού άλλαξε με επιτυχία.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="72"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Πορτοφολι Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="212"/>
+ <source>Sign &amp;message...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="245"/>
+ <source>Show/Hide &amp;Bitcoin</source>
+ <translation>Εμφάνισε/Κρύψε &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="507"/>
+ <source>Synchronizing with network...</source>
+ <translation>Συγχρονισμός με το δίκτυο...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Επισκόπηση</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Show general overview of wallet</source>
+ <translation>Εμφάνισε γενική εικονα του πορτοφολιού</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Συναλλαγές</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Browse transaction history</source>
+ <translation>Περιήγηση στο ιστορικο συνναλαγων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Βιβλίο Διευθύνσεων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Εξεργασια της λιστας των αποθηκευμενων διευθύνσεων και ετικετων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Παραλαβή νομισματων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Εμφάνισε την λίστα των διευθύνσεων για την παραλαβή πληρωμων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Αποστολη νομισματων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Στείλε νομισματα σε μια διεύθυνση bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="213"/>
+ <source>Prove you control an address</source>
+ <translation>Απέδειξε ότι ελέγχεις μια διεύθυνση</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>E&amp;xit</source>
+ <translation>Έ&amp;ξοδος</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>Quit application</source>
+ <translation>Εξοδος από την εφαρμογή</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;Περί %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Εμφάνισε πληροφορίες σχετικά με το Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>About &amp;Qt</source>
+ <translation>Σχετικά με &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show information about Qt</source>
+ <translation>Εμφάνισε πληροφορίες σχετικά με Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Επιλογές...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Επεργασία ρυθμισεων επιλογών για το Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>&amp;Encrypt Wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="252"/>
+ <source>&amp;Backup Wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="254"/>
+ <source>&amp;Change Passphrase...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="509"/>
+ <source>~%n block(s) remaining</source>
+ <translation><numerusform>~%n μπλοκ απέμεινε</numerusform><numerusform>~%n μπλοκ απέμειναν</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Downloaded %1 of %2 blocks of transaction history (%3% done).</source>
+ <translation>Κατέβηκαν %1 από %2 μπλοκ του ιστορικού συναλλαγών (%3% ολοκληρώθηκαν)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Εξαγωγή</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>Show or hide the Bitcoin window</source>
+ <translation>Εμφάνισε ή κρύψε το παράθυρο Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Εξαγωγή δεδομένων καρτέλας σε αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="250"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Κρυπτογράφηση ή αποκρυπτογράφηση πορτοφολιού</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="253"/>
+ <source>Backup wallet to another location</source>
+ <translation>Δημιουργία αντιγράφου ασφαλείας πορτοφολιού σε άλλη τοποθεσία</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="255"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Αλλαγή του κωδικού κρυπτογράφησης του πορτοφολιού</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="256"/>
+ <source>&amp;Debug window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="257"/>
+ <source>Open debugging and diagnostic console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>&amp;File</source>
+ <translation>&amp;Αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="289"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Ρυθμίσεις</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="295"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Βοήθεια</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="304"/>
+ <source>Tabs toolbar</source>
+ <translation>Εργαλειοθήκη καρτελών</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="315"/>
+ <source>Actions toolbar</source>
+ <translation>Εργαλειοθήκη ενεργειών</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="327"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="391"/>
+ <source>Bitcoin client</source>
+ <translation>Πελάτης Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="419"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation><numerusform>%n ενεργή σύνδεση στο δίκτυο Bitcoin</numerusform><numerusform>%n ενεργές συνδέσεις στο δίκτυο Βitcoin</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="532"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Έγινε λήψη %1 μπλοκ ιστορικού συναλλαγών</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="547"/>
+ <source>%n second(s) ago</source>
+ <translation><numerusform>%n δευτερόλεπτο πριν</numerusform><numerusform>%n δευτερόλεπτα πριν</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="551"/>
+ <source>%n minute(s) ago</source>
+ <translation><numerusform>%n λεπτό πριν</numerusform><numerusform>%n λεπτά πριν</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="555"/>
+ <source>%n hour(s) ago</source>
+ <translation><numerusform>%n ώρα πριν</numerusform><numerusform>%n ώρες πριν</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="559"/>
+ <source>%n day(s) ago</source>
+ <translation><numerusform>%n ημέρα πριν</numerusform><numerusform>%n ημέρες πριν</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="565"/>
+ <source>Up to date</source>
+ <translation>Ενημερωμένο</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="570"/>
+ <source>Catching up...</source>
+ <translation>Ενημέρωση...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="578"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Το τελευταίο μπλοκ που ελήφθη %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="634"/>
+ <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="639"/>
+ <source>Confirm transaction fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="666"/>
+ <source>Sent transaction</source>
+ <translation>Η συναλλαγή απεστάλη</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="667"/>
+ <source>Incoming transaction</source>
+ <translation>Εισερχόμενη συναλλαγή</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="668"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Ημερομηνία: %1
+Ποσό: %2
+Τύπος: %3
+Διεύθυνση: %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="793"/>
+ <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="801"/>
+ <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="824"/>
+ <source>Backup Wallet</source>
+ <translation>Αντίγραφο ασφαλείας του πορτοφολιού</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="824"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Αρχεία δεδομένων πορτοφολιού (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="827"/>
+ <source>Backup Failed</source>
+ <translation>Αποτυχία κατά τη δημιουργία αντιγράφου</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="827"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Παρουσιάστηκε σφάλμα κατά την αποθήκευση των δεδομένων πορτοφολιού στη νέα τοποθεσία.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="127"/>
+ <source>A fatal error occured. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Μονάδα μέτρησης:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="277"/>
+ <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="284"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="285"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Επεξεργασία Διεύθυνσης</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Επιγραφή</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>Η επιγραφή που σχετίζεται με αυτή την καταχώρηση του βιβλίου διευθύνσεων</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Διεύθυνση</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="52"/>
+ <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
+ <translation>Η διεύθυνση που σχετίζεται με αυτή την καταχώρηση του βιβλίου διευθύνσεων. Μπορεί να τροποποιηθεί μόνο για τις διευθύνσεις αποστολής.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Νέα διεύθυνση λήψης</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Νέα διεύθυνση αποστολής</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Επεξεργασία διεύθυνσης λήψης</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Επεξεργασία διεύθυνσης αποστολής</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>Η διεύθυνση &quot;%1&quot; βρίσκεται ήδη στο βιβλίο διευθύνσεων.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>Η διεύθυνση &quot;%1&quot; δεν είναι έγκυρη Bitcoin διεύθυνση.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Δεν είναι δυνατό το ξεκλείδωμα του πορτοφολιού.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Η δημιουργία νέου κλειδιού απέτυχε.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Έναρξη Βιtcoin κατά την εκκίνηση του συστήματος</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="172"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Αυτόματη έναρξη Βitcoin με το ξεκίνημα του υπολογιστή</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Ελαχιστοποίηση στην περιοχή ειδοποιήσεων αντί της γραμμής εργασιών</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="177"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Εμφάνιση εικονιδίου στην περιοχή ειδοποιήσεων μόνο κατά την ελαχιστοποίηση</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Απόδοση θυρών με χρήστη &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <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="180"/>
+ <source>M&amp;inimize on close</source>
+ <translation>Ε&amp;λαχιστοποίηση κατά το κλείσιμο</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <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="189"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Σύνδεση μέσω SOCKS4 διαμεσολαβητή</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Σύνδεση στο Bitcoin δίκτυο μέσω διαμεσολαβητή SOCKS4 (π.χ. για σύνδεση μέσω Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="195"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>&amp;IP διαμεσολαβητή:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="201"/>
+ <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="204"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Θύρα:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="210"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Η θύρα του διαμεσολαβητή (π.χ. 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="232"/>
+ <source>Detach databases at shutdown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="233"/>
+ <source>Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="222"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Αμοιβή &amp;συναλλαγής</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="216"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation>Η προαιρετική αμοιβή για κάθε kB επισπεύδει την επεξεργασία των συναλλαγών σας. Οι περισσότερες συναλλαγές είναι 1 kB. Προτείνεται αμοιβή 0.01.</translation>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation>Μήνυμα</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
+ <translation>Μπορείτε να υπογράφετε μηνύματα με τις διευθύνσεις σας, ώστε ν&apos; αποδεικνύετε πως αυτές σας ανήκουν. Αποφεύγετε να υπογράφετε κάτι αόριστο καθώς ενδέχεται να εξαπατηθείτε. Υπογράφετε μόνο πλήρης δηλώσεις με τις οποίες συμφωνείτε.</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Η διεύθυνση που θα υπογραφεί μαζί με το μήνυμα (π.χ. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation>Αντιγραφή διεύθυνσης από το βιβλίο διευθύνσεων</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation>Επικόλληση διεύθυνσης από το βιβλίο διευθύνσεων</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation>Εισάγετε εδώ το μήνυμα που θέλετε να υπογράψετε</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="128"/>
+ <source>Copy the current signature to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>&amp;Copy Signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="142"/>
+ <source>Reset all sign message fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="145"/>
+ <source>Clear &amp;All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="30"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation>Κάντε κλικ στο &quot;Υπογραφή Μηνύματος&quot; για να λάβετε την υπογραφή</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="114"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Υπογράψτε ένα μήνυμα για να βεβαιώσετε πως είστε ο κάτοχος αυτής της διεύθυνσης</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;Υπογραφή Μηνύματος</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="79"/>
+ <location filename="../messagepage.cpp" line="94"/>
+ <location filename="../messagepage.cpp" line="106"/>
+ <source>Error signing</source>
+ <translation>Σφάλμα υπογραφής</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="79"/>
+ <source>%1 is not a valid address.</source>
+ <translation>Η %1 δεν είναι έγκυρη διεύθυνση.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="94"/>
+ <source>Private key for %1 is not available.</source>
+ <translation>Το προσωπικό κλειδί της %1 δεν είναι διαθέσιμο.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="106"/>
+ <source>Sign failed</source>
+ <translation>Αποτυχία υπογραφής</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="80"/>
+ <source>Main</source>
+ <translation>Βασικές</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="85"/>
+ <source>Display</source>
+ <translation>Απεικόνισης</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="105"/>
+ <source>Options</source>
+ <translation>Ρυθμίσεις</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Υπόλοιπο</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation>123,456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Αριθμός συναλλαγών</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="61"/>
+ <source>0</source>
+ <translation>0</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="68"/>
+ <source>Unconfirmed:</source>
+ <translation>Ανεπιβεβαίωτες</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation>0 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation type="unfinished"/>
+ </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="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Το τρέχον υπόλοιπο</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="108"/>
+ <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
+ <translation>Το άθροισμα των συναλλαγών που δεν έχουν ακόμα επιβεβαιωθεί και δεν προσμετρώνται στο τρέχον υπόλοιπό σας</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Σύνολο συναλλαγών στο πορτοφόλι</translation>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>QR-Code Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation>Κώδικας QR</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="55"/>
+ <source>Request Payment</source>
+ <translation>Αίτηση πληρωμής</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="70"/>
+ <source>Amount:</source>
+ <translation>Ποσό:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="105"/>
+ <source>BTC</source>
+ <translation>BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="121"/>
+ <source>Label:</source>
+ <translation>Επιγραφή:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="144"/>
+ <source>Message:</source>
+ <translation>Μήνυμα:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="186"/>
+ <source>&amp;Save As...</source>
+ <translation>&amp;Αποθήκευση ως...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="46"/>
+ <source>Error encoding URI into QR Code.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="64"/>
+ <source>Resulting URI too long, try to reduce the text for label / message.</source>
+ <translation>Το αποτέλεσμα της διεύθυνσης είναι πολύ μεγάλο. Μειώστε το μέγεθος για το κείμενο της ετικέτας/ μηνύματος.</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="121"/>
+ <source>Save QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="121"/>
+ <source>PNG Images (*.png)</source>
+ <translation>Εικόνες PNG (*.png)</translation>
+ </message>
+</context>
+<context>
+ <name>RPCConsole</name>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="14"/>
+ <source>Bitcoin debug window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="24"/>
+ <source>Information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="33"/>
+ <source>Client name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="40"/>
+ <location filename="../forms/rpcconsole.ui" line="60"/>
+ <location filename="../forms/rpcconsole.ui" line="106"/>
+ <location filename="../forms/rpcconsole.ui" line="156"/>
+ <location filename="../forms/rpcconsole.ui" line="176"/>
+ <location filename="../forms/rpcconsole.ui" line="196"/>
+ <location filename="../forms/rpcconsole.ui" line="229"/>
+ <source>N/A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="53"/>
+ <source>Client version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="79"/>
+ <source>Version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="92"/>
+ <source>Network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="99"/>
+ <source>Number of connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="119"/>
+ <source>On testnet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="142"/>
+ <source>Block chain</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="149"/>
+ <source>Current number of blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="169"/>
+ <source>Estimated total blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="189"/>
+ <source>Last block time</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="222"/>
+ <source>Build date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="237"/>
+ <source>Console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="278"/>
+ <source>&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="294"/>
+ <source>Clear console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="97"/>
+ <source>&amp;Copy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="195"/>
+ <source>Welcome to the bitcoin RPC console.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="196"/>
+ <source>Use up and down arrows to navigate history, and Ctrl-L to clear screen.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="197"/>
+ <source>Type &quot;help&quot; for an overview of available commands.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation>Αποστολή νομισμάτων</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 type="unfinished"/>
+ </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>&amp;Send</source>
+ <translation>&amp;Αποστολή</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; σε %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation>Επιβεβαίωση αποστολής νομισμάτων</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Είστε βέβαιοι για την αποστολή %1;</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation>και</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation>Η διεύθυνση του αποδέκτη δεν είναι σωστή. Παρακαλώ ελέγξτε ξανά.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Το ποσό πληρωμής πρέπει να είναι μεγαλύτερο από 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation>Το ποσό υπερβαίνει το υπόλοιπό σας</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation>Το σύνολο υπερβαίνει το υπόλοιπό σας όταν συμπεριληφθεί και η αμοιβή %1</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation>Βρέθηκε η ίδια διεύθυνση δύο φορές. Επιτρέπεται μία μόνο εγγραφή για κάθε διεύθυνση, σε κάθε διαδικασία αποστολής.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Σφάλμα: Η δημιουργία της συναλλαγής απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation>Σφάλμα: Η συναλλαγή απορρίφθηκε.
+Αυτό ίσως οφείλεται στο ότι τα νομίσματά σας έχουν ήδη ξοδευτεί, π.χ. με την αντιγραφή του wallet.dat σε άλλο σύστημα και την χρήση τους εκεί, χωρίς η συναλλαγή να έχει καταγραφεί στο παρόν σύστημα.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>&amp;Ποσό:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Πληρωμή &amp;σε:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <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>Η διεύθυνση γι&apos; αποστολή πληρωμής
+(π.χ. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Επιλογή διεύθυνσης από το βιβλίο διευθύνσεων</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="113"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="120"/>
+ <source>Paste address from clipboard</source>
+ <translation>Επικόλληση διεύθυνσης από το πρόχειρο</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="130"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="137"/>
+ <source>Remove this recipient</source>
+ <translation>Αφαίρεση αποδέκτη</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <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="20"/>
+ <source>Open for %1 blocks</source>
+ <translation>Ανοιχτό για %1 μπλοκ</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="22"/>
+ <source>Open until %1</source>
+ <translation>Ανοιχτό μέχρι %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/offline?</source>
+ <translation>%1/χωρίς σύνδεση;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/χωρίς επιβεβαίωση</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="32"/>
+ <source>%1 confirmations</source>
+ <translation>%1 επιβεβαιώσεις</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="50"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Κατάσταση:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="55"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, δεν έχει ακόμα μεταδοθεί μ&apos; επιτυχία</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="57"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, έχει μεταδοθεί μέσω %1 κόμβου</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="59"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, έχει μεταδοθεί μέσω %1 κόμβων</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <source>&lt;b&gt;Date:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Ημερομηνία:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="70"/>
+ <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="76"/>
+ <location filename="../transactiondesc.cpp" line="93"/>
+ <source>&lt;b&gt;From:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Από:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="93"/>
+ <source>unknown</source>
+ <translation>άγνωστο</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <location filename="../transactiondesc.cpp" line="117"/>
+ <location filename="../transactiondesc.cpp" line="176"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Προς:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="97"/>
+ <source> (yours, label: </source>
+ <translation> (δικές σας, επιγραφή: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="99"/>
+ <source> (yours)</source>
+ <translation> (δικές σας)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="134"/>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <location filename="../transactiondesc.cpp" line="193"/>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Πίστωση:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="136"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 ωρίμανση σε %2 επιπλέον μπλοκ)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="140"/>
+ <source>(not accepted)</source>
+ <translation>(μη αποδεκτό)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="184"/>
+ <location filename="../transactiondesc.cpp" line="192"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Χρέωση:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="198"/>
+ <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="214"/>
+ <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="220"/>
+ <source>Message:</source>
+ <translation>Μήνυμα:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>Comment:</source>
+ <translation>Σχόλιο:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Transaction ID:</source>
+ <translation>ID Συναλλαγής:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="227"/>
+ <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="275"/>
+ <source>Open for %n block(s)</source>
+ <translation><numerusform>Ανοιχτό για %n μπλοκ</numerusform><numerusform>Ανοιχτό για %n μπλοκ</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="278"/>
+ <source>Open until %1</source>
+ <translation>Ανοιχτό μέχρι %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="281"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Χωρίς σύνδεση (%1 επικυρώσεις)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="284"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Χωρίς επιβεβαίωση (%1 από %2 επικυρώσεις)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="287"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Επικυρωμένη (%1 επικυρώσεις)</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation><numerusform>Το υπόλοιπο από την εξόρυξη θα είναι διαθέσιμο μετά από %n μπλοκ</numerusform><numerusform>Το υπόλοιπο από την εξόρυξη θα είναι διαθέσιμο μετά από %n μπλοκ</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Αυτό το μπλοκ δεν έχει παραληφθεί από κανέναν άλλο κόμβο και κατά πάσα πιθανότητα θα απορριφθεί!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation>Δημιουργήθηκε αλλά απορρίφθηκε</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation>Παραλαβή με</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation>Ελήφθη από</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation>Αποστολή προς</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation>Πληρωμή προς εσάς</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation>Εξόρυξη</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation>(δ/α)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Κατάσταση συναλλαγής. Πηγαίνετε το ποντίκι πάνω από αυτό το πεδίο για να δείτε τον αριθμό των επικυρώσεων</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Ημερομηνία κι ώρα λήψης της συναλλαγής.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation>Είδος συναλλαγής.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation>Διεύθυνση αποστολής της συναλλαγής.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Ποσό που αφαιρέθηκε ή προστέθηκε στο υπόλοιπο.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation>Όλα</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Σήμερα</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Αυτή την εβδομάδα</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Αυτόν τον μήνα</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Τον προηγούμενο μήνα</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Αυτό το έτος</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Έκταση...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Ελήφθη με</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Απεστάλη προς</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Προς εσάς</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Εξόρυξη</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Άλλο</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>Αναζήτηση με βάση τη διεύθυνση ή την επιγραφή</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Ελάχιστο ποσό</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation>Αντιγραφή διεύθυνσης</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation>Αντιγραφή επιγραφής</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation>Αντιγραφή ποσού</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Επεξεργασία επιγραφής</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation>Εξαγωγή Στοιχείων Συναλλαγών</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Αρχείο οριοθετημένο με κόμματα (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation>Επικυρωμένες</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation>Ημερομηνία</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation>Τύπος</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Επιγραφή</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Διεύθυνση</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation>Ποσό</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>Σφάλμα εξαγωγής</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation>Αδυναμία εγγραφής στο αρχείο %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation>Έκταση:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation>έως</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="142"/>
+ <source>Sending...</source>
+ <translation>Αποστολή...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Bitcoin version</source>
+ <translation>Έκδοση Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Usage:</source>
+ <translation>Χρήση:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation>Αποστολή εντολής στον εξυπηρετητή ή στο bitcoind</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>List commands</source>
+ <translation>Λίστα εντολών</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Get help for a command</source>
+ <translation>Επεξήγηση εντολής</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Options:</source>
+ <translation>Επιλογές:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation>Ορίστε αρχείο ρυθμίσεων (προεπιλογή: bitcoin.conf)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation>Ορίστε αρχείο pid (προεπιλογή: bitcoind.pid)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Generate coins</source>
+ <translation>Δημιουργία νομισμάτων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Don&apos;t generate coins</source>
+ <translation>Άρνηση δημιουργίας νομισμάτων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Start minimized</source>
+ <translation>Έναρξη ελαχιστοποιημένο</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Show splash screen on startup (default: 1)</source>
+ <translation>Εμφάνισε την οθόνη εκκίνησης κατά την εκκίνηση(προεπιλογή:1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Specify data directory</source>
+ <translation>Ορισμός φακέλου δεδομένων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Set database cache size in megabytes (default: 25)</source>
+ <translation>Όρισε το μέγεθος της βάσης προσωρινής αποθήκευσης σε megabytes(προεπιλογή:25)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Set database disk log size in megabytes (default: 100)</source>
+ <translation>Όρισε το μέγεθος της βάσης ιστορικού σε megabytes (προεπιλογή:100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation>Ορισμός λήξης χρονικού ορίου (σε χιλιοστά του δευτερολέπτου)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Connect through socks4 proxy</source>
+ <translation>Σύνδεση μέσω διαμεσολαβητή SOCKS4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation>Να επιτρέπονται οι έλεγχοι DNS για προσθήκη και σύνδεση κόμβων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation>Εισερχόμενες συνδέσεις στη θύρα &lt;port&gt; (προεπιλογή: 8333 ή στο testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation>Μέγιστες αριθμός συνδέσεων με τους peers &lt;n&gt; (προεπιλογή: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Connect only to the specified node</source>
+ <translation>Σύνδεση μόνο με ορισμένο κόμβο</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation>Όριο αποσύνδεσης προβληματικών peers (προεπιλογή: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation>Δευτερόλεπτα πριν επιτραπεί ξανά η σύνδεση των προβληματικών peers (προεπιλογή: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>Μέγιστος buffer λήψης ανά σύνδεση, &lt;n&gt;*1000 bytes (προεπιλογή: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>Μέγιστος buffer αποστολής ανά σύνδεση, &lt;n&gt;*1000 bytes (προεπιλογή: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation>Αποδοχή εντολών κονσόλας και JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation>Εκτέλεση στο παρασκήνιο κι αποδοχή εντολών</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Use the test network</source>
+ <translation>Χρήση του δοκιμαστικού δικτύου</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Output extra debugging information</source>
+ <translation>Έξοδος επιπλέον πληροφοριών εντοπισμού σφαλμάτων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation>Χρονοσφραγίδα πληροφοριών εντοπισμού σφαλμάτων</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation>Αποστολή πληροφοριών εντοπισμού σφαλμάτων στην κονσόλα αντί του αρχείου debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation>Αποστολή πληροφοριών εντοπισμού σφαλμάτων στον debugger</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation>Όνομα χρήστη για τις συνδέσεις JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="55"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation>Κωδικός για τις συνδέσεις JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation>Εισερχόμενες συνδέσεις JSON-RPC στη θύρα &lt;port&gt; (προεπιλογή: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation>Αποδοχή συνδέσεων JSON-RPC από συγκεκριμένη διεύθυνση IP</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <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="59"/>
+ <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
+ <translation>Εκτέλεσε την εντολή όταν το καλύτερο μπλοκ αλλάξει(%s στην εντολή αντικαθίσταται από το hash του μπλοκ)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Upgrade wallet to latest format</source>
+ <translation>Αναβάθμισε το πορτοφόλι στην τελευταία έκδοση</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation>Όριο πλήθους κλειδιών pool &lt;n&gt; (προεπιλογή: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation>Επανέλεγχος της αλυσίδας μπλοκ για απούσες συναλλαγές</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>How many blocks to check at startup (default: 2500, 0 = all)</source>
+ <translation>Πόσα μπλοκ να ελέγχω κατά την εκκίνηση (προεπιλογή:2500,0=όλα)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>How thorough the block verification is (0-6, default: 1)</source>
+ <translation>Πόσο εξονυχιστική να είναι η επιβεβαίωση του μπλοκ(0-6, προεπιλογή:1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation>
+Ρυθμίσεις SSL: (ανατρέξτε στο Bitcoin Wiki για οδηγίες ρυθμίσεων SSL)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation>Χρήση του OpenSSL (https) για συνδέσεις JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation>Αρχείο πιστοποιητικού του διακομιστή (προεπιλογή: server.cert)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation>Προσωπικό κλειδί του διακομιστή (προεπιλογή: server.pem)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <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="76"/>
+ <source>This help message</source>
+ <translation>Αυτό το κείμενο βοήθειας</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Usage</source>
+ <translation>Χρήση</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Αδυναμία κλειδώματος του φακέλου δεδομένων %s. Πιθανώς το Bitcoin να είναι ήδη ενεργό.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Bitcoin</source>
+ <translation>Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="82"/>
+ <source>Loading addresses...</source>
+ <translation>Φόρτωση διευθύνσεων...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="83"/>
+ <source>Error loading addr.dat</source>
+ <translation>Σφάλμα φόρτωσης addr.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Error loading blkindex.dat</source>
+ <translation>Σφάλμα φόρτωσης blkindex.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="87"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation>Σφάλμα φόρτωσης wallet.dat: Κατεστραμμένο Πορτοφόλι</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="88"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation>Σφάλμα φόρτωσης wallet.dat: Το Πορτοφόλι απαιτεί μια νεότερη έκδοση του Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation>Απαιτείται η επανεγγραφή του Πορτοφολιού, η οποία θα ολοκληρωθεί στην επανεκκίνηση του Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="90"/>
+ <source>Error loading wallet.dat</source>
+ <translation>Σφάλμα φόρτωσης αρχείου wallet.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="122"/>
+ <source>Error: Wallet locked, unable to create transaction </source>
+ <translation>Σφάλμα: το πορτοφόλι είναι κλειδωμένο, δεν μπορεί να δημιουργηθεί συναλλαγή</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="123"/>
+ <source>Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds </source>
+ <translation>Σφάλμα: Αυτή η συναλλαγή απαιτεί αμοιβή συναλλαγής τουλάχιστον %s λόγω του μεγέθους, πολυπλοκότητας ή της χρήσης πρόσφατης παραλαβής κεφαλαίου</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="126"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Σφάλμα: Η δημιουργία της συναλλαγής απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="127"/>
+ <source>Sending...</source>
+ <translation>Αποστολή...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="128"/>
+ <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="../bitcoinstrings.cpp" line="132"/>
+ <source>Invalid amount</source>
+ <translation>Λάθος ποσότητα</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="133"/>
+ <source>Insufficient funds</source>
+ <translation>Ανεπαρκές κεφάλαιο</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Loading block index...</source>
+ <translation>Φόρτωση ευρετηρίου μπλοκ...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Add a node to connect to and attempt to keep the connection open</source>
+ <translation>Προσέθεσε ένα κόμβο για σύνδεση και προσπάθησε να κρατήσεις την σύνδεση ανοιχτή</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Find peers using internet relay chat (default: 0)</source>
+ <translation>Βρες ομότιμους υπολογιστές χρησιμοποιώντας internet relay chat(Προεπιλογή:0)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Accept connections from outside (default: 1)</source>
+ <translation>Να δέχεσαι συνδέσεις από έξω(προεπιλογή:1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Set language, for example &quot;de_DE&quot; (default: system locale)</source>
+ <translation>Όρισε γλώσσα, για παράδειγμα &quot;de_DE&quot;(προεπιλογή:τοπικές ρυθμίσεις)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Find peers using DNS lookup (default: 1)</source>
+ <translation>Βρες ομότιμους υπολογιστές χρησιμοποιώντας αναζήτηση DNS(προεπιλογή:1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 1)</source>
+ <translation>Χρησιμοποίησε Universal Plug and Play για την χρήση της πόρτας αναμονής (προεπιλογή:1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 0)</source>
+ <translation>Χρησιμοποίησε Universal Plug and Play για την χρήση της πόρτας αναμονής (προεπιλογή:0)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Fee per KB to add to transactions you send</source>
+ <translation>Αμοιβή ανά KB που θα προστίθεται στις συναλλαγές που στέλνεις</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Loading wallet...</source>
+ <translation>Φόρτωση πορτοφολιού...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="91"/>
+ <source>Cannot downgrade wallet</source>
+ <translation>Δεν μπορώ να υποβαθμίσω το πορτοφόλι</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>Cannot initialize keypool</source>
+ <translation>Δεν μπορώ αν αρχικοποιήσω την λίστα κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="93"/>
+ <source>Cannot write default address</source>
+ <translation>Δεν μπορώ να γράψω την προεπιλεγμένη διεύθυνση</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="94"/>
+ <source>Rescanning...</source>
+ <translation>Ανίχνευση...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="95"/>
+ <source>Done loading</source>
+ <translation>Η φόρτωση ολοκληρώθηκε</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="96"/>
+ <source>Invalid -proxy address</source>
+ <translation>Μη έγκυρη διεύθυνση διαμεσολαβητή</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="97"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Μη έγκυρο ποσό για την παράμετρο -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="98"/>
+ <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="101"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Error: CreateThread(StartNode) failed</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Warning: Disk space is low </source>
+ <translation>Προειδοποίηση: Χαμηλός χώρος στο δίσκο </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <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="102"/>
+ <source>To use the %s option</source>
+ <translation>Χρήση της %s επιλογής</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="103"/>
+ <source>%s, you must set a rpcpassword in the configuration file:
+ %s
+It is recommended you use the following random password:
+rpcuser=bitcoinrpc
+rpcpassword=%s
+(you do not need to remember this password)
+If the file does not exist, create it with owner-readable-only file permissions.
+</source>
+ <translation>%s, πρέπει να βάλεις ένα κωδικό στο αρχείο παραμέτρων: %s
+Προτείνεται να χρησιμοποιήσεις τον παρακάτω τυχαίο κωδικό:
+rpcuser=bitcoinrpc
+rpcpassword=%s
+(δεν χρειάζεται να θυμάσαι αυτόν τον κωδικό)
+Εάν το αρχείο δεν υπάρχει, δημιούργησε το με δικαιώματα μόνο για ανάγνωση από τον δημιουργό.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="112"/>
+ <source>Error</source>
+ <translation>Σφάλμα</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="113"/>
+ <source>An error occured while setting up the RPC port %i for listening: %s</source>
+ <translation>Ένα σφάλμα συνέβη καθώς προετοιμαζόταν η πόρτα RPC %i για αναμονή:%s </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="114"/>
+ <source>You must set rpcpassword=&lt;password&gt; in the configuration file:
+%s
+If the file does not exist, create it with owner-readable-only file permissions.</source>
+ <translation>Πρέπει να βάλεις ένα κωδικό στο αρχείο παραμέτρων: %s
+Εάν το αρχείο δεν υπάρχει, δημιούργησε το με δικαιώματα μόνο για ανάγνωση από τον δημιουργό</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="119"/>
+ <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>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts
index 53ba23b11c..5628db1229 100644
--- a/src/qt/locale/bitcoin_en.ts
+++ b/src/qt/locale/bitcoin_en.ts
@@ -15,7 +15,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/aboutdialog.ui" line="91"/>
+ <location filename="../forms/aboutdialog.ui" line="97"/>
<source>Copyright © 2009-2012 Bitcoin Developers
This is experimental software.
@@ -39,92 +39,82 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/addressbookpage.ui" line="33"/>
+ <location filename="../forms/addressbookpage.ui" line="36"/>
<source>Double-click to edit address or label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/addressbookpage.ui" line="57"/>
+ <location filename="../forms/addressbookpage.ui" line="63"/>
<source>Create a new address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/addressbookpage.ui" line="60"/>
- <source>&amp;New Address...</source>
+ <location filename="../forms/addressbookpage.ui" line="77"/>
+ <source>Copy the currently selected address to the system clipboard</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>
+ <location filename="../forms/addressbookpage.ui" line="66"/>
+ <source>&amp;New Address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/addressbookpage.ui" line="74"/>
- <source>&amp;Copy to Clipboard</source>
+ <location filename="../forms/addressbookpage.ui" line="80"/>
+ <source>&amp;Copy Address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/addressbookpage.ui" line="85"/>
+ <location filename="../forms/addressbookpage.ui" line="91"/>
<source>Show &amp;QR Code</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/addressbookpage.ui" line="96"/>
+ <location filename="../forms/addressbookpage.ui" line="102"/>
<source>Sign a message to prove you own this address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/addressbookpage.ui" line="99"/>
+ <location filename="../forms/addressbookpage.ui" line="105"/>
<source>&amp;Sign Message</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/addressbookpage.ui" line="110"/>
+ <location filename="../forms/addressbookpage.ui" line="116"/>
<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="113"/>
+ <location filename="../forms/addressbookpage.ui" line="119"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="65"/>
- <source>Copy address</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../addressbookpage.cpp" line="66"/>
- <source>Copy label</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../addressbookpage.cpp" line="67"/>
- <source>Edit</source>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Copy &amp;Label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="68"/>
- <source>Delete</source>
+ <location filename="../addressbookpage.cpp" line="65"/>
+ <source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="288"/>
+ <location filename="../addressbookpage.cpp" line="297"/>
<source>Export Address Book Data</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="289"/>
+ <location filename="../addressbookpage.cpp" line="298"/>
<source>Comma separated file (*.csv)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="302"/>
+ <location filename="../addressbookpage.cpp" line="311"/>
<source>Error exporting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addressbookpage.cpp" line="302"/>
+ <location filename="../addressbookpage.cpp" line="311"/>
<source>Could not write to file %1.</source>
<translation type="unfinished"></translation>
</message>
@@ -132,17 +122,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<context>
<name>AddressTableModel</name>
<message>
- <location filename="../addresstablemodel.cpp" line="77"/>
+ <location filename="../addresstablemodel.cpp" line="78"/>
<source>Label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addresstablemodel.cpp" line="77"/>
+ <location filename="../addresstablemodel.cpp" line="78"/>
<source>Address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../addresstablemodel.cpp" line="113"/>
+ <location filename="../addresstablemodel.cpp" line="114"/>
<source>(no label)</source>
<translation type="unfinished"></translation>
</message>
@@ -151,136 +141,130 @@ This product includes software developed by the OpenSSL Project for use in the O
<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="32"/>
- <location filename="../forms/askpassphrasedialog.ui" line="97"/>
- <source>TextLabel</source>
+ <source>Passphrase Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="47"/>
<source>Enter passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="61"/>
<source>New passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="75"/>
<source>Repeat new passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="34"/>
+ <location filename="../askpassphrasedialog.cpp" line="33"/>
<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"/>
+ <location filename="../askpassphrasedialog.cpp" line="34"/>
<source>Encrypt wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <location filename="../askpassphrasedialog.cpp" line="37"/>
<source>This operation needs your wallet passphrase to unlock the wallet.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <location filename="../askpassphrasedialog.cpp" line="42"/>
<source>Unlock wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <location filename="../askpassphrasedialog.cpp" line="45"/>
<source>This operation needs your wallet passphrase to decrypt the wallet.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <location filename="../askpassphrasedialog.cpp" line="50"/>
<source>Decrypt wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <location filename="../askpassphrasedialog.cpp" line="53"/>
<source>Change passphrase</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
<source>Enter the old and new passphrase to the wallet.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <location filename="../askpassphrasedialog.cpp" line="100"/>
<source>Confirm wallet encryption</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
<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="160"/>
+ <location filename="../askpassphrasedialog.cpp" line="110"/>
+ <location filename="../askpassphrasedialog.cpp" line="159"/>
<source>Wallet encrypted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
<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="208"/>
- <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <location filename="../askpassphrasedialog.cpp" line="207"/>
+ <location filename="../askpassphrasedialog.cpp" line="231"/>
<source>Warning: The Caps Lock key is on.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="117"/>
- <location filename="../askpassphrasedialog.cpp" line="124"/>
- <location filename="../askpassphrasedialog.cpp" line="166"/>
- <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <location filename="../askpassphrasedialog.cpp" line="116"/>
+ <location filename="../askpassphrasedialog.cpp" line="123"/>
+ <location filename="../askpassphrasedialog.cpp" line="165"/>
+ <location filename="../askpassphrasedialog.cpp" line="171"/>
<source>Wallet encryption failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
<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="125"/>
- <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
<source>The supplied passphrases do not match.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <location filename="../askpassphrasedialog.cpp" line="135"/>
<source>Wallet unlock failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="137"/>
- <location filename="../askpassphrasedialog.cpp" line="148"/>
- <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
<source>The passphrase entered for the wallet decryption was incorrect.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <location filename="../askpassphrasedialog.cpp" line="146"/>
<source>Wallet decryption failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
<source>Wallet passphrase was succesfully changed.</source>
<translation type="unfinished"></translation>
</message>
@@ -288,122 +272,137 @@ Are you sure you wish to encrypt your wallet?</source>
<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="70"/>
+ <location filename="../bitcoingui.cpp" line="73"/>
<source>Bitcoin Wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="243"/>
+ <location filename="../bitcoingui.cpp" line="215"/>
+ <source>Sign &amp;message...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
<source>Show/Hide &amp;Bitcoin</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="499"/>
+ <location filename="../bitcoingui.cpp" line="517"/>
<source>Synchronizing with network...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="180"/>
+ <location filename="../bitcoingui.cpp" line="185"/>
<source>&amp;Overview</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="181"/>
+ <location filename="../bitcoingui.cpp" line="186"/>
<source>Show general overview of wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="186"/>
+ <location filename="../bitcoingui.cpp" line="191"/>
<source>&amp;Transactions</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="187"/>
+ <location filename="../bitcoingui.cpp" line="192"/>
<source>Browse transaction history</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="192"/>
+ <location filename="../bitcoingui.cpp" line="197"/>
<source>&amp;Address Book</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="193"/>
+ <location filename="../bitcoingui.cpp" line="198"/>
<source>Edit the list of stored addresses and labels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="198"/>
+ <location filename="../bitcoingui.cpp" line="203"/>
<source>&amp;Receive coins</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="199"/>
+ <location filename="../bitcoingui.cpp" line="204"/>
<source>Show the list of addresses for receiving payments</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="204"/>
+ <location filename="../bitcoingui.cpp" line="209"/>
<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="210"/>
- <source>Sign &amp;message</source>
+ <source>Send coins to a bitcoin address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="211"/>
+ <location filename="../bitcoingui.cpp" line="216"/>
<source>Prove you control an address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="230"/>
+ <location filename="../bitcoingui.cpp" line="235"/>
<source>E&amp;xit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="231"/>
+ <location filename="../bitcoingui.cpp" line="236"/>
<source>Quit application</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="234"/>
+ <location filename="../bitcoingui.cpp" line="239"/>
<source>&amp;About %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="235"/>
+ <location filename="../bitcoingui.cpp" line="240"/>
<source>Show information about Bitcoin</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="237"/>
+ <location filename="../bitcoingui.cpp" line="242"/>
<source>About &amp;Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="238"/>
+ <location filename="../bitcoingui.cpp" line="243"/>
<source>Show information about Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="240"/>
+ <location filename="../bitcoingui.cpp" line="245"/>
<source>&amp;Options...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="241"/>
+ <location filename="../bitcoingui.cpp" line="246"/>
<source>Modify configuration options for bitcoin</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="252"/>
+ <source>&amp;Encrypt Wallet...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="255"/>
+ <source>&amp;Backup Wallet...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="257"/>
+ <source>&amp;Change Passphrase...</source>
+ <translation type="unfinished"></translation>
+ </message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="501"/>
+ <location filename="../bitcoingui.cpp" line="519"/>
<source>~%n block(s) remaining</source>
<translation>
<numerusform>~%n block remaining</numerusform>
@@ -411,97 +410,104 @@ Are you sure you wish to encrypt your wallet?</source>
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="512"/>
+ <location filename="../bitcoingui.cpp" line="530"/>
<source>Downloaded %1 of %2 blocks of transaction history (%3% done).</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="245"/>
+ <location filename="../bitcoingui.cpp" line="250"/>
<source>&amp;Export...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="244"/>
+ <location filename="../bitcoingui.cpp" line="249"/>
<source>Show or hide the Bitcoin window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="246"/>
+ <location filename="../bitcoingui.cpp" line="251"/>
<source>Export the data in the current tab to a file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="247"/>
- <source>&amp;Encrypt Wallet</source>
+ <location filename="../bitcoingui.cpp" line="253"/>
+ <source>Encrypt or decrypt wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="248"/>
- <source>Encrypt or decrypt wallet</source>
+ <location filename="../bitcoingui.cpp" line="256"/>
+ <source>Backup wallet to another location</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="250"/>
- <source>&amp;Backup Wallet</source>
+ <location filename="../bitcoingui.cpp" line="258"/>
+ <source>Change the passphrase used for wallet encryption</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="251"/>
- <source>Backup wallet to another location</source>
+ <location filename="../bitcoingui.cpp" line="259"/>
+ <source>&amp;Debug window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="252"/>
- <source>&amp;Change Passphrase</source>
+ <location filename="../bitcoingui.cpp" line="260"/>
+ <source>Open debugging and diagnostic console</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="253"/>
- <source>Change the passphrase used for wallet encryption</source>
+ <location filename="../bitcoingui.cpp" line="261"/>
+ <source>&amp;Verify message...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="262"/>
+ <source>Verify a message signature</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="276"/>
+ <location filename="../bitcoingui.cpp" line="286"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="285"/>
+ <location filename="../bitcoingui.cpp" line="296"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="291"/>
+ <location filename="../bitcoingui.cpp" line="302"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="298"/>
+ <location filename="../bitcoingui.cpp" line="311"/>
<source>Tabs toolbar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="309"/>
+ <location filename="../bitcoingui.cpp" line="322"/>
<source>Actions toolbar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="321"/>
+ <location filename="../bitcoingui.cpp" line="334"/>
+ <location filename="../bitcoingui.cpp" line="343"/>
<source>[testnet]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="383"/>
+ <location filename="../bitcoingui.cpp" line="343"/>
+ <location filename="../bitcoingui.cpp" line="399"/>
<source>Bitcoin client</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="411"/>
+ <location filename="../bitcoingui.cpp" line="429"/>
<source>bitcoin-qt</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="475"/>
+ <location filename="../bitcoingui.cpp" line="493"/>
<source>%n active connection(s) to Bitcoin network</source>
<translation>
<numerusform>%n active connection to Bitcoin network</numerusform>
@@ -509,12 +515,12 @@ Are you sure you wish to encrypt your wallet?</source>
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="524"/>
+ <location filename="../bitcoingui.cpp" line="542"/>
<source>Downloaded %1 blocks of transaction history.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="539"/>
+ <location filename="../bitcoingui.cpp" line="557"/>
<source>%n second(s) ago</source>
<translation>
<numerusform>%n second ago</numerusform>
@@ -522,7 +528,7 @@ Are you sure you wish to encrypt your wallet?</source>
</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="543"/>
+ <location filename="../bitcoingui.cpp" line="561"/>
<source>%n minute(s) ago</source>
<translation>
<numerusform>%n minute ago</numerusform>
@@ -530,7 +536,7 @@ Are you sure you wish to encrypt your wallet?</source>
</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="547"/>
+ <location filename="../bitcoingui.cpp" line="565"/>
<source>%n hour(s) ago</source>
<translation>
<numerusform>%n hour ago</numerusform>
@@ -538,7 +544,7 @@ Are you sure you wish to encrypt your wallet?</source>
</translation>
</message>
<message numerus="yes">
- <location filename="../bitcoingui.cpp" line="551"/>
+ <location filename="../bitcoingui.cpp" line="569"/>
<source>%n day(s) ago</source>
<translation>
<numerusform>%n day ago</numerusform>
@@ -546,42 +552,42 @@ Are you sure you wish to encrypt your wallet?</source>
</translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="557"/>
+ <location filename="../bitcoingui.cpp" line="575"/>
<source>Up to date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="562"/>
+ <location filename="../bitcoingui.cpp" line="580"/>
<source>Catching up...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="570"/>
+ <location filename="../bitcoingui.cpp" line="588"/>
<source>Last received block was generated %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="626"/>
+ <location filename="../bitcoingui.cpp" line="647"/>
<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="631"/>
- <source>Sending...</source>
+ <location filename="../bitcoingui.cpp" line="652"/>
+ <source>Confirm transaction fee</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="658"/>
+ <location filename="../bitcoingui.cpp" line="679"/>
<source>Sent transaction</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="659"/>
+ <location filename="../bitcoingui.cpp" line="680"/>
<source>Incoming transaction</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="660"/>
+ <location filename="../bitcoingui.cpp" line="681"/>
<source>Date: %1
Amount: %2
Type: %3
@@ -590,51 +596,91 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="785"/>
+ <location filename="../bitcoingui.cpp" line="802"/>
<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="793"/>
+ <location filename="../bitcoingui.cpp" line="810"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="816"/>
+ <location filename="../bitcoingui.cpp" line="833"/>
<source>Backup Wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="816"/>
+ <location filename="../bitcoingui.cpp" line="833"/>
<source>Wallet Data (*.dat)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="819"/>
+ <location filename="../bitcoingui.cpp" line="836"/>
<source>Backup Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoingui.cpp" line="819"/>
+ <location filename="../bitcoingui.cpp" line="836"/>
<source>There was an error trying to save the wallet data to the new location.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../bitcoin.cpp" line="128"/>
+ <source>A fatal error occured. 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="268"/>
+ <location filename="../optionsdialog.cpp" line="246"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="252"/>
+ <source>User Interface &amp;Language: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="257"/>
+ <source>default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="263"/>
+ <source>The user interface language can be set here. This setting will only take effect after restarting Bitcoin.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
<source>&amp;Unit to show amounts in: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="272"/>
+ <location filename="../optionsdialog.cpp" line="277"/>
<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="279"/>
- <source>Display addresses in transaction list</source>
+ <location filename="../optionsdialog.cpp" line="284"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="285"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="303"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="303"/>
+ <source>This setting will take effect after restarting Bitcoin.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -707,90 +753,79 @@ Address: %4
</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>
+ <name>HelpMessageBox</name>
<message>
- <location filename="../optionsdialog.cpp" line="176"/>
- <source>Show only a tray icon after minimizing the window</source>
+ <location filename="../bitcoin.cpp" line="149"/>
+ <location filename="../bitcoin.cpp" line="159"/>
+ <source>Bitcoin-Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="184"/>
- <source>Map port using &amp;UPnP</source>
+ <location filename="../bitcoin.cpp" line="149"/>
+ <source>version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="185"/>
- <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <location filename="../bitcoin.cpp" line="151"/>
+ <source>Usage:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="179"/>
- <source>M&amp;inimize on close</source>
+ <location filename="../bitcoin.cpp" line="154"/>
+ <source>UI options</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="180"/>
- <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu.</source>
+ <location filename="../bitcoin.cpp" line="155"/>
+ <source>Set language, for example &quot;de_DE&quot; (default: system locale)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="188"/>
- <source>&amp;Connect through SOCKS4 proxy:</source>
+ <location filename="../bitcoin.cpp" line="156"/>
+ <source>Start minimized</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="189"/>
- <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <location filename="../bitcoin.cpp" line="157"/>
+ <source>Show splash screen on startup (default: 1)</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
<message>
- <location filename="../optionsdialog.cpp" line="194"/>
- <source>Proxy &amp;IP: </source>
+ <location filename="../optionsdialog.cpp" line="227"/>
+ <source>Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="200"/>
- <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <location filename="../optionsdialog.cpp" line="212"/>
+ <source>Pay transaction &amp;fee</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="203"/>
- <source>&amp;Port: </source>
+ <location filename="../optionsdialog.cpp" line="204"/>
+ <source>Main</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="209"/>
- <source>Port of the proxy (e.g. 1234)</source>
+ <location filename="../optionsdialog.cpp" line="206"/>
+ <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="215"/>
- <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <location filename="../optionsdialog.cpp" line="222"/>
+ <source>&amp;Start Bitcoin on system login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="221"/>
- <source>Pay transaction &amp;fee</source>
+ <location filename="../optionsdialog.cpp" line="223"/>
+ <source>Automatically start Bitcoin after logging in to the system</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="224"/>
- <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <location filename="../optionsdialog.cpp" line="226"/>
+ <source>&amp;Detach databases at shutdown</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -798,7 +833,7 @@ Address: %4
<name>MessagePage</name>
<message>
<location filename="../forms/messagepage.ui" line="14"/>
- <source>Message</source>
+ <source>Sign Message Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -837,67 +872,120 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/messagepage.ui" line="105"/>
- <source>Click &quot;Sign Message&quot; to get signature</source>
+ <location filename="../forms/messagepage.ui" line="128"/>
+ <source>Copy the current signature to the system clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/messagepage.ui" line="117"/>
- <source>Sign a message to prove you own this address</source>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>&amp;Copy Signature</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/messagepage.ui" line="120"/>
- <source>&amp;Sign Message</source>
+ <location filename="../forms/messagepage.ui" line="142"/>
+ <source>Reset all sign message fields</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/messagepage.ui" line="131"/>
- <source>Copy the currently selected address to the system clipboard</source>
+ <location filename="../forms/messagepage.ui" line="145"/>
+ <source>Clear &amp;All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="30"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="114"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>&amp;Sign Message</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/messagepage.ui" line="134"/>
- <source>&amp;Copy to Clipboard</source>
+ <location filename="../messagepage.cpp" line="29"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../messagepage.cpp" line="74"/>
- <location filename="../messagepage.cpp" line="89"/>
- <location filename="../messagepage.cpp" line="101"/>
+ <location filename="../messagepage.cpp" line="82"/>
+ <location filename="../messagepage.cpp" line="97"/>
+ <location filename="../messagepage.cpp" line="109"/>
<source>Error signing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../messagepage.cpp" line="74"/>
+ <location filename="../messagepage.cpp" line="82"/>
<source>%1 is not a valid address.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../messagepage.cpp" line="89"/>
+ <location filename="../messagepage.cpp" line="97"/>
<source>Private key for %1 is not available.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../messagepage.cpp" line="101"/>
+ <location filename="../messagepage.cpp" line="109"/>
<source>Sign failed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>OptionsDialog</name>
+ <name>NetworkOptionsPage</name>
<message>
- <location filename="../optionsdialog.cpp" line="79"/>
- <source>Main</source>
+ <location filename="../optionsdialog.cpp" line="345"/>
+ <source>Network</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="84"/>
- <source>Display</source>
+ <location filename="../optionsdialog.cpp" line="347"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="348"/>
+ <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="351"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="352"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="357"/>
+ <source>Proxy &amp;IP: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../optionsdialog.cpp" line="104"/>
+ <location filename="../optionsdialog.cpp" line="363"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="366"/>
+ <source>&amp;Port: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="372"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="135"/>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
@@ -915,56 +1003,42 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/overviewpage.ui" line="47"/>
- <source>123.456 BTC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/overviewpage.ui" line="54"/>
+ <location filename="../forms/overviewpage.ui" line="69"/>
<source>Number of transactions:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/overviewpage.ui" line="61"/>
+ <location filename="../forms/overviewpage.ui" line="79"/>
<source>0</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/overviewpage.ui" line="68"/>
+ <location filename="../forms/overviewpage.ui" line="86"/>
<source>Unconfirmed:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/overviewpage.ui" line="75"/>
- <source>0 BTC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../forms/overviewpage.ui" line="82"/>
- <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Wallet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <location filename="../forms/overviewpage.ui" line="122"/>
+ <source>Wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../forms/overviewpage.ui" line="122"/>
+ <location filename="../forms/overviewpage.ui" line="158"/>
<source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../overviewpage.cpp" line="103"/>
+ <location filename="../forms/overviewpage.ui" line="56"/>
<source>Your current balance</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../overviewpage.cpp" line="108"/>
+ <location filename="../forms/overviewpage.ui" line="102"/>
<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"/>
+ <location filename="../forms/overviewpage.ui" line="76"/>
<source>Total number of transactions in wallet</source>
<translation type="unfinished"></translation>
</message>
@@ -973,7 +1047,7 @@ p, li { white-space: pre-wrap; }
<name>QRCodeDialog</name>
<message>
<location filename="../forms/qrcodedialog.ui" line="14"/>
- <source>Dialog</source>
+ <source>QR Code Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -1012,22 +1086,143 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qrcodedialog.cpp" line="59"/>
+ <location filename="../qrcodedialog.cpp" line="45"/>
+ <source>Error encoding URI into QR Code.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="63"/>
<source>Resulting URI too long, try to reduce the text for label / message.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qrcodedialog.cpp" line="116"/>
- <source>Save Image...</source>
+ <location filename="../qrcodedialog.cpp" line="120"/>
+ <source>Save QR Code</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qrcodedialog.cpp" line="116"/>
+ <location filename="../qrcodedialog.cpp" line="120"/>
<source>PNG Images (*.png)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
+ <name>RPCConsole</name>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="14"/>
+ <source>Bitcoin debug window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="46"/>
+ <source>Client name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="56"/>
+ <location filename="../forms/rpcconsole.ui" line="79"/>
+ <location filename="../forms/rpcconsole.ui" line="102"/>
+ <location filename="../forms/rpcconsole.ui" line="125"/>
+ <location filename="../forms/rpcconsole.ui" line="161"/>
+ <location filename="../forms/rpcconsole.ui" line="214"/>
+ <location filename="../forms/rpcconsole.ui" line="237"/>
+ <location filename="../forms/rpcconsole.ui" line="260"/>
+ <location filename="../rpcconsole.cpp" line="242"/>
+ <source>N/A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="69"/>
+ <source>Client version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="24"/>
+ <source>&amp;Information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="39"/>
+ <source>Client</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="115"/>
+ <source>Startup time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="144"/>
+ <source>Network</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="151"/>
+ <source>Number of connections</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="174"/>
+ <source>On testnet</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="197"/>
+ <source>Block chain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="204"/>
+ <source>Current number of blocks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="227"/>
+ <source>Estimated total blocks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="250"/>
+ <source>Last block time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="292"/>
+ <source>Debug logfile</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="299"/>
+ <source>Open the Bitcoin debug logfile from the current data directory. This can take a few seconds for large logfiles.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="302"/>
+ <source>&amp;Open</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="323"/>
+ <source>&amp;Console</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="92"/>
+ <source>Build date</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="372"/>
+ <source>Clear console</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="210"/>
+ <source>Welcome to the Bitcoin RPC console.&lt;br&gt;Use up and down arrows to navigate history, and &lt;b&gt;Ctrl-L&lt;/b&gt; to clear screen.&lt;br&gt;Type &lt;b&gt;help&lt;/b&gt; for an overview of available commands.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>SendCoinsDialog</name>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="14"/>
@@ -1048,7 +1243,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="67"/>
- <source>&amp;Add recipient...</source>
+ <source>&amp;Add Recipient</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -1058,7 +1253,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../forms/sendcoinsdialog.ui" line="87"/>
- <source>Clear all</source>
+ <source>Clear &amp;All</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -1113,27 +1308,27 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="133"/>
- <source>Amount exceeds your balance</source>
+ <source>The amount exceeds your balance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="138"/>
- <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <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="144"/>
- <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <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="149"/>
- <source>Error: Transaction creation failed </source>
+ <source>Error: Transaction creation failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="154"/>
- <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <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>
@@ -1156,7 +1351,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="66"/>
- <location filename="../sendcoinsentry.cpp" line="26"/>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
<source>Enter a label for this address to add it to your address book</source>
<translation type="unfinished"></translation>
</message>
@@ -1196,7 +1391,7 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../sendcoinsentry.cpp" line="25"/>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
<source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
<translation type="unfinished"></translation>
</message>
@@ -1204,140 +1399,140 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionDesc</name>
<message>
- <location filename="../transactiondesc.cpp" line="18"/>
+ <location filename="../transactiondesc.cpp" line="20"/>
<source>Open for %1 blocks</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="20"/>
+ <location filename="../transactiondesc.cpp" line="22"/>
<source>Open until %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="26"/>
+ <location filename="../transactiondesc.cpp" line="28"/>
<source>%1/offline?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="28"/>
+ <location filename="../transactiondesc.cpp" line="30"/>
<source>%1/unconfirmed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="30"/>
+ <location filename="../transactiondesc.cpp" line="32"/>
<source>%1 confirmations</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="48"/>
+ <location filename="../transactiondesc.cpp" line="50"/>
<source>&lt;b&gt;Status:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="53"/>
+ <location filename="../transactiondesc.cpp" line="55"/>
<source>, has not been successfully broadcast yet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="55"/>
+ <location filename="../transactiondesc.cpp" line="57"/>
<source>, broadcast through %1 node</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="57"/>
+ <location filename="../transactiondesc.cpp" line="59"/>
<source>, broadcast through %1 nodes</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="61"/>
+ <location filename="../transactiondesc.cpp" line="63"/>
<source>&lt;b&gt;Date:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="68"/>
+ <location filename="../transactiondesc.cpp" line="70"/>
<source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="74"/>
- <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <location filename="../transactiondesc.cpp" line="93"/>
<source>&lt;b&gt;From:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="91"/>
+ <location filename="../transactiondesc.cpp" line="93"/>
<source>unknown</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="92"/>
- <location filename="../transactiondesc.cpp" line="115"/>
- <location filename="../transactiondesc.cpp" line="174"/>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <location filename="../transactiondesc.cpp" line="117"/>
+ <location filename="../transactiondesc.cpp" line="176"/>
<source>&lt;b&gt;To:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="95"/>
+ <location filename="../transactiondesc.cpp" line="97"/>
<source> (yours, label: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="97"/>
+ <location filename="../transactiondesc.cpp" line="99"/>
<source> (yours)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="132"/>
- <location filename="../transactiondesc.cpp" line="146"/>
- <location filename="../transactiondesc.cpp" line="191"/>
- <location filename="../transactiondesc.cpp" line="208"/>
+ <location filename="../transactiondesc.cpp" line="134"/>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <location filename="../transactiondesc.cpp" line="193"/>
+ <location filename="../transactiondesc.cpp" line="210"/>
<source>&lt;b&gt;Credit:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="134"/>
+ <location filename="../transactiondesc.cpp" line="136"/>
<source>(%1 matures in %2 more blocks)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="138"/>
+ <location filename="../transactiondesc.cpp" line="140"/>
<source>(not accepted)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="182"/>
- <location filename="../transactiondesc.cpp" line="190"/>
- <location filename="../transactiondesc.cpp" line="205"/>
+ <location filename="../transactiondesc.cpp" line="184"/>
+ <location filename="../transactiondesc.cpp" line="192"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
<source>&lt;b&gt;Debit:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="196"/>
+ <location filename="../transactiondesc.cpp" line="198"/>
<source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="212"/>
+ <location filename="../transactiondesc.cpp" line="214"/>
<source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="218"/>
+ <location filename="../transactiondesc.cpp" line="220"/>
<source>Message:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="220"/>
+ <location filename="../transactiondesc.cpp" line="222"/>
<source>Comment:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="222"/>
+ <location filename="../transactiondesc.cpp" line="224"/>
<source>Transaction ID:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiondesc.cpp" line="225"/>
+ <location filename="../transactiondesc.cpp" line="227"/>
<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>
@@ -1358,27 +1553,27 @@ p, li { white-space: pre-wrap; }
<context>
<name>TransactionTableModel</name>
<message>
- <location filename="../transactiontablemodel.cpp" line="213"/>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="213"/>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="213"/>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
<source>Address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="213"/>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
<source>Amount</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../transactiontablemodel.cpp" line="274"/>
+ <location filename="../transactiontablemodel.cpp" line="275"/>
<source>Open for %n block(s)</source>
<translation>
<numerusform>Open for %n block</numerusform>
@@ -1386,27 +1581,27 @@ p, li { white-space: pre-wrap; }
</translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="277"/>
+ <location filename="../transactiontablemodel.cpp" line="278"/>
<source>Open until %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="280"/>
+ <location filename="../transactiontablemodel.cpp" line="281"/>
<source>Offline (%1 confirmations)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="283"/>
+ <location filename="../transactiontablemodel.cpp" line="284"/>
<source>Unconfirmed (%1 of %2 confirmations)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="286"/>
+ <location filename="../transactiontablemodel.cpp" line="287"/>
<source>Confirmed (%1 confirmations)</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../transactiontablemodel.cpp" line="294"/>
+ <location filename="../transactiontablemodel.cpp" line="295"/>
<source>Mined balance will be available in %n more blocks</source>
<translation>
<numerusform>Mined balance will be available in %n more block</numerusform>
@@ -1414,67 +1609,67 @@ p, li { white-space: pre-wrap; }
</translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="300"/>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
<source>This block was not received by any other nodes and will probably not be accepted!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="303"/>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
<source>Generated but not accepted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="346"/>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
<source>Received with</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="348"/>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
<source>Received from</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="351"/>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
<source>Sent to</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="353"/>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
<source>Payment to yourself</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="355"/>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
<source>Mined</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="393"/>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
<source>(n/a)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="592"/>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
<source>Transaction status. Hover over this field to show number of confirmations.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="594"/>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
<source>Date and time that the transaction was received.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="596"/>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
<source>Type of transaction.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="598"/>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
<source>Destination address of transaction.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactiontablemodel.cpp" line="600"/>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
<source>Amount removed from or added to balance.</source>
<translation type="unfinished"></translation>
</message>
@@ -1543,559 +1738,731 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="84"/>
+ <location filename="../transactionview.cpp" line="85"/>
<source>Enter address or label to search</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="90"/>
+ <location filename="../transactionview.cpp" line="92"/>
<source>Min amount</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="124"/>
+ <location filename="../transactionview.cpp" line="126"/>
<source>Copy address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="125"/>
+ <location filename="../transactionview.cpp" line="127"/>
<source>Copy label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="126"/>
+ <location filename="../transactionview.cpp" line="128"/>
<source>Copy amount</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="127"/>
+ <location filename="../transactionview.cpp" line="129"/>
<source>Edit label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="128"/>
- <source>Show details...</source>
+ <location filename="../transactionview.cpp" line="130"/>
+ <source>Show transaction details</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="268"/>
+ <location filename="../transactionview.cpp" line="270"/>
<source>Export Transaction Data</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="269"/>
+ <location filename="../transactionview.cpp" line="271"/>
<source>Comma separated file (*.csv)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="277"/>
+ <location filename="../transactionview.cpp" line="279"/>
<source>Confirmed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="278"/>
+ <location filename="../transactionview.cpp" line="280"/>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="279"/>
+ <location filename="../transactionview.cpp" line="281"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="280"/>
+ <location filename="../transactionview.cpp" line="282"/>
<source>Label</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="281"/>
+ <location filename="../transactionview.cpp" line="283"/>
<source>Address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="282"/>
+ <location filename="../transactionview.cpp" line="284"/>
<source>Amount</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="283"/>
+ <location filename="../transactionview.cpp" line="285"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="287"/>
+ <location filename="../transactionview.cpp" line="289"/>
<source>Error exporting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="287"/>
+ <location filename="../transactionview.cpp" line="289"/>
<source>Could not write to file %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="382"/>
+ <location filename="../transactionview.cpp" line="384"/>
<source>Range:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../transactionview.cpp" line="390"/>
+ <location filename="../transactionview.cpp" line="392"/>
<source>to</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
+ <name>VerifyMessageDialog</name>
+ <message>
+ <location filename="../forms/verifymessagedialog.ui" line="14"/>
+ <source>Verify Signed Message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/verifymessagedialog.ui" line="20"/>
+ <source>Enter the message and signature below (be careful to correctly copy newlines, spaces, tabs and other invisible characters) to obtain the Bitcoin address used to sign the message.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/verifymessagedialog.ui" line="62"/>
+ <source>Verify a message and obtain the Bitcoin address used to sign the message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/verifymessagedialog.ui" line="65"/>
+ <source>&amp;Verify Message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/verifymessagedialog.ui" line="79"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/verifymessagedialog.ui" line="82"/>
+ <source>&amp;Copy Address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/verifymessagedialog.ui" line="93"/>
+ <source>Reset all verify message fields</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../forms/verifymessagedialog.ui" line="96"/>
+ <source>Clear &amp;All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../verifymessagedialog.cpp" line="27"/>
+ <source>Enter Bitcoin signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../verifymessagedialog.cpp" line="28"/>
+ <source>Click &quot;Apply&quot; to obtain address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../verifymessagedialog.cpp" line="54"/>
+ <location filename="../verifymessagedialog.cpp" line="61"/>
+ <source>Invalid Signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../verifymessagedialog.cpp" line="54"/>
+ <source>The signature could not be decoded. Please check the signature and try again.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../verifymessagedialog.cpp" line="61"/>
+ <source>The signature did not match the message digest. Please check the signature and try again.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../verifymessagedialog.cpp" line="71"/>
+ <source>Address not found in address book.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../verifymessagedialog.cpp" line="71"/>
+ <source>Address found in address book: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>WalletModel</name>
<message>
- <location filename="../walletmodel.cpp" line="143"/>
+ <location filename="../walletmodel.cpp" line="142"/>
<source>Sending...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>bitcoin-core</name>
+ <name>WindowOptionsPage</name>
<message>
- <location filename="../bitcoinstrings.cpp" line="7"/>
- <source>Bitcoin version</source>
+ <location filename="../optionsdialog.cpp" line="313"/>
+ <source>Window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="8"/>
- <source>Usage:</source>
+ <location filename="../optionsdialog.cpp" line="316"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="9"/>
- <source>Send command to -server or bitcoind</source>
+ <location filename="../optionsdialog.cpp" line="317"/>
+ <source>Show only a tray icon after minimizing the window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="10"/>
- <source>List commands</source>
+ <location filename="../optionsdialog.cpp" line="320"/>
+ <source>M&amp;inimize on close</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="11"/>
- <source>Get help for a command</source>
+ <location filename="../optionsdialog.cpp" line="321"/>
+ <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>
+</context>
+<context>
+ <name>bitcoin-core</name>
<message>
<location filename="../bitcoinstrings.cpp" line="12"/>
- <source>Options:</source>
+ <source>Bitcoin version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="13"/>
- <source>Specify configuration file (default: bitcoin.conf)</source>
+ <source>Usage:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
- <source>Specify pid file (default: bitcoind.pid)</source>
+ <source>Send command to -server or bitcoind</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="15"/>
- <source>Generate coins</source>
+ <source>List commands</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="16"/>
- <source>Don&apos;t generate coins</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="17"/>
- <source>Start minimized</source>
+ <source>Get help for a command</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="18"/>
- <source>Show splash screen on startup (default: 1)</source>
+ <source>Options:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="19"/>
- <source>Specify data directory</source>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="20"/>
- <source>Set database cache size in megabytes (default: 25)</source>
+ <source>Specify pid file (default: bitcoind.pid)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="21"/>
- <source>Set database disk log size in megabytes (default: 100)</source>
+ <source>Generate coins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="22"/>
- <source>Specify connection timeout (in milliseconds)</source>
+ <source>Don&apos;t generate coins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="23"/>
- <source>Connect through socks4 proxy</source>
+ <source>Specify data directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="24"/>
- <source>Allow DNS lookups for addnode and connect</source>
+ <source>Set database cache size in megabytes (default: 25)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="25"/>
- <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <source>Set database disk log size in megabytes (default: 100)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <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="33"/>
<source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="28"/>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
<source>Connect only to the specified node</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="33"/>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Connect to a node to retrieve peer addresses, and disconnect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Specify your own public address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Only connect to nodes in network &lt;net&gt; (IPv4 or IPv6)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Try to discover public IP address (default: 1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Bind to given address. Use [host]:port notation for IPv6</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="34"/>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="37"/>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
<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="38"/>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
<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="42"/>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Detach block and address databases. Increases shutdown time (default: 0)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="55"/>
<source>Accept command line and JSON-RPC commands</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="43"/>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
<source>Run in the background as a daemon and accept commands</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="44"/>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
<source>Use the test network</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="45"/>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
<source>Output extra debugging information</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="46"/>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
<source>Prepend debug output with timestamp</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="47"/>
+ <location filename="../bitcoinstrings.cpp" line="60"/>
<source>Send trace/debug info to console instead of debug.log file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="48"/>
+ <location filename="../bitcoinstrings.cpp" line="61"/>
<source>Send trace/debug info to debugger</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="49"/>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
<source>Username for JSON-RPC connections</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="50"/>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
<source>Password for JSON-RPC connections</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="51"/>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="52"/>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
<source>Allow JSON-RPC connections from specified IP address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="53"/>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
<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="54"/>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
<source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="57"/>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
<source>Upgrade wallet to latest format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="58"/>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="59"/>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
<source>Rescan the block chain for missing wallet transactions</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="60"/>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
<source>How many blocks to check at startup (default: 2500, 0 = all)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="61"/>
+ <location filename="../bitcoinstrings.cpp" line="74"/>
<source>How thorough the block verification is (0-6, default: 1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="62"/>
+ <location filename="../bitcoinstrings.cpp" line="75"/>
+ <source>Imports blocks from external blk000?.dat file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
<source>
SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="65"/>
+ <location filename="../bitcoinstrings.cpp" line="80"/>
<source>Use OpenSSL (https) for JSON-RPC connections</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="66"/>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
<source>Server certificate file (default: server.cert)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="67"/>
+ <location filename="../bitcoinstrings.cpp" line="82"/>
<source>Server private key (default: server.pem)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="68"/>
+ <location filename="../bitcoinstrings.cpp" line="83"/>
<source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="71"/>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
<source>This help message</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="72"/>
- <source>Usage</source>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <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="73"/>
- <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Bitcoin</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="76"/>
- <source>Bitcoin</source>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Unable to bind to %s on this computer. Bitcoin is probably already running.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="77"/>
+ <location filename="../bitcoinstrings.cpp" line="10"/>
+ <source>Unable to bind to %s on this computer (bind returned error %d, %s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Connect through socks proxy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Select the version of socks proxy to use (4 or 5, 5 is default)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Do not use proxy for connections to network &lt;net&gt; (IPv4 or IPv6)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Allow DNS lookups for -addnode, -seednode and -connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Pass DNS requests to (SOCKS5) proxy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
<source>Loading addresses...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="78"/>
+ <location filename="../bitcoinstrings.cpp" line="90"/>
<source>Error loading addr.dat</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="80"/>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
<source>Error loading blkindex.dat</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="82"/>
+ <location filename="../bitcoinstrings.cpp" line="94"/>
<source>Error loading wallet.dat: Wallet corrupted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="83"/>
+ <location filename="../bitcoinstrings.cpp" line="95"/>
<source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="84"/>
+ <location filename="../bitcoinstrings.cpp" line="96"/>
<source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="85"/>
+ <location filename="../bitcoinstrings.cpp" line="97"/>
<source>Error loading wallet.dat</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="117"/>
+ <location filename="../bitcoinstrings.cpp" line="103"/>
+ <source>Invalid -proxy address: &apos;%s&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="104"/>
+ <source>Unknown network specified in -noproxy: &apos;%s&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="105"/>
+ <source>Unknown network specified in -onlynet: &apos;%s&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="106"/>
+ <source>Unknown -socks proxy version requested: %i</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="107"/>
+ <source>Cannot resolve -bind address: &apos;%s&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="108"/>
+ <source>Not listening on any port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="109"/>
+ <source>Cannot resolve -externalip address: &apos;%s&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="110"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;: &apos;%s&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="114"/>
+ <source>Error: could not start node</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="135"/>
<source>Error: Wallet locked, unable to create transaction </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="118"/>
+ <location filename="../bitcoinstrings.cpp" line="136"/>
<source>Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="121"/>
+ <location filename="../bitcoinstrings.cpp" line="139"/>
<source>Error: Transaction creation failed </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="122"/>
+ <location filename="../bitcoinstrings.cpp" line="140"/>
<source>Sending...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="123"/>
+ <location filename="../bitcoinstrings.cpp" line="141"/>
<source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="127"/>
+ <location filename="../bitcoinstrings.cpp" line="145"/>
<source>Invalid amount</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="128"/>
+ <location filename="../bitcoinstrings.cpp" line="146"/>
<source>Insufficient funds</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="79"/>
+ <location filename="../bitcoinstrings.cpp" line="91"/>
<source>Loading block index...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="27"/>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
<source>Add a node to connect to and attempt to keep the connection open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="29"/>
+ <location filename="../bitcoinstrings.cpp" line="40"/>
<source>Find peers using internet relay chat (default: 0)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="30"/>
+ <location filename="../bitcoinstrings.cpp" line="41"/>
<source>Accept connections from outside (default: 1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="31"/>
- <source>Set language, for example &quot;de_DE&quot; (default: system locale)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="32"/>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
<source>Find peers using DNS lookup (default: 1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="39"/>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
<source>Use Universal Plug and Play to map the listening port (default: 1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="40"/>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
<source>Use Universal Plug and Play to map the listening port (default: 0)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="41"/>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
<source>Fee per KB to add to transactions you send</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="81"/>
+ <location filename="../bitcoinstrings.cpp" line="93"/>
<source>Loading wallet...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="86"/>
+ <location filename="../bitcoinstrings.cpp" line="98"/>
<source>Cannot downgrade wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="87"/>
+ <location filename="../bitcoinstrings.cpp" line="99"/>
<source>Cannot initialize keypool</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="88"/>
+ <location filename="../bitcoinstrings.cpp" line="100"/>
<source>Cannot write default address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="89"/>
+ <location filename="../bitcoinstrings.cpp" line="101"/>
<source>Rescanning...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="90"/>
+ <location filename="../bitcoinstrings.cpp" line="102"/>
<source>Done loading</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="91"/>
- <source>Invalid -proxy address</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="92"/>
- <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="93"/>
+ <location filename="../bitcoinstrings.cpp" line="111"/>
<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="96"/>
- <source>Error: CreateThread(StartNode) failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="6"/>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
<source>Warning: Disk space is low </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="3"/>
- <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../bitcoinstrings.cpp" line="97"/>
+ <location filename="../bitcoinstrings.cpp" line="115"/>
<source>To use the %s option</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="98"/>
+ <location filename="../bitcoinstrings.cpp" line="116"/>
<source>%s, you must set a rpcpassword in the configuration file:
%s
It is recommended you use the following random password:
@@ -2107,24 +2474,24 @@ If the file does not exist, create it with owner-readable-only file permissions.
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="107"/>
+ <location filename="../bitcoinstrings.cpp" line="125"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="108"/>
+ <location filename="../bitcoinstrings.cpp" line="126"/>
<source>An error occured while setting up the RPC port %i for listening: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="109"/>
+ <location filename="../bitcoinstrings.cpp" line="127"/>
<source>You must set rpcpassword=&lt;password&gt; in the configuration file:
%s
If the file does not exist, create it with owner-readable-only file permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../bitcoinstrings.cpp" line="114"/>
+ <location filename="../bitcoinstrings.cpp" line="132"/>
<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>
diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts
new file mode 100644
index 0000000000..0fa1585227
--- /dev/null
+++ b/src/qt/locale/bitcoin_fr.ts
@@ -0,0 +1,2267 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>À propos de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="53"/>
+ <source>&lt;b&gt;Bitcoin&lt;/b&gt; version</source>
+ <translation>&lt;b&gt;Bitcoin&lt;/b&gt; version</translation>
+ </message>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="97"/>
+ <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 Développeurs de Bitcoin
+
+Ce logiciel est en phase expérimentale.
+
+Distribué sous licence MIT/X11, voir le fichier license.txt ou http://www.opensource.org/licenses/mit-license.php.
+
+Ce produit comprend des logiciels développés par le projet OpenSSL pour être utilisés dans la boîte à outils OpenSSL (http://www.openssl.org/), un logiciel cryptographique écrit par Eric Young (eay@cryptsoft.com) et un logiciel UPnP écrit par Thomas Bernard.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Carnet d&apos;adresses</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="20"/>
+ <source>These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you.</source>
+ <translation>Voici vos adresses Bitcoin qui vous permettent de recevoir des paiements. Vous pouvez donner une adresse différente à chaque expéditeur afin de savoir qui vous paye.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="36"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Double cliquez afin de modifier l&apos;adresse ou l&apos;étiquette</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="63"/>
+ <source>Create a new address</source>
+ <translation>Créer une nouvelle adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="77"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copier l&apos;adresse surlignée dans votre presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="66"/>
+ <source>&amp;New Address</source>
+ <translation>&amp;Nouvelle adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="80"/>
+ <source>&amp;Copy Address</source>
+ <translation>&amp;Copier l&apos;adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="91"/>
+ <source>Show &amp;QR Code</source>
+ <translation>Afficher le &amp;QR Code</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="102"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Signer un message pour prouver que vous détenez cette adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="105"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;Signer un message</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="116"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Supprimer l&apos;adresse sélectionnée dans la liste. Seules les adresses d&apos;envoi peuvent être supprimées.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="119"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Supprimer</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Copy &amp;Label</source>
+ <translation>Copier l&apos;é&amp;tiquette</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="65"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Éditer</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="297"/>
+ <source>Export Address Book Data</source>
+ <translation>Exporter les données du carnet d&apos;adresses</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="298"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Valeurs séparées par des virgules (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="311"/>
+ <source>Error exporting</source>
+ <translation>Erreur lors de l&apos;exportation</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="311"/>
+ <source>Could not write to file %1.</source>
+ <translation>Impossible d&apos;écrire sur le fichier %1.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Étiquette</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>(aucune étiquette)</translation>
+ </message>
+</context>
+<context>
+ <name>AskPassphraseDialog</name>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="26"/>
+ <source>Dialog</source>
+ <translation>Dialogue</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation>TextLabel</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation>Entrez la phrase de passe</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation>Nouvelle phrase de passe</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation>Répétez la phrase de passe</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>Entrez une nouvelle phrase de passe pour le porte-monnaie.&lt;br/&gt;Veuillez utiliser une phrase de &lt;b&gt;10 caractères au hasard ou plus&lt;/b&gt; ou bien de &lt;b&gt;huit mots ou plus&lt;/b&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Chiffrer le porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>Cette opération nécessite votre phrase de passe pour déverrouiller le porte-monnaie.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="43"/>
+ <source>Unlock wallet</source>
+ <translation>Déverrouiller le porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>Cette opération nécessite votre phrase de passe pour décrypter le porte-monnaie.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Décrypter le porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="54"/>
+ <source>Change passphrase</source>
+ <translation>Changer la phrase de passe</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Entrez l’ancienne phrase de passe pour le porte-monnaie ainsi que la nouvelle.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Confirmer le chiffrement du porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="102"/>
+ <source>WARNING: If you encrypt your wallet and lose your passphrase, you will &lt;b&gt;LOSE ALL OF YOUR BITCOINS&lt;/b&gt;!
+Are you sure you wish to encrypt your wallet?</source>
+ <translation>ATTENTION : Si vous chiffrez votre porte-monnaie et perdez votre phrase de passe, vous &lt;b&gt;PERDREZ TOUS VOS BITCOINS&lt;/b&gt; !
+Êtes-vous sûr de vouloir chiffrer votre porte-monnaie ?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation>Porte-monnaie chiffré</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation>Bitcoin va à présent se fermer pour terminer la procédure de cryptage. N&apos;oubliez pas que le chiffrement de votre porte-monnaie ne peut pas fournir une protection totale contre le vol par des logiciels malveillants qui infecteraient votre ordinateur.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Attention : la touche Verrouiller Maj est activée.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation>Le chiffrement du porte-monnaie a échoué</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>Le chiffrement du porte-monnaie a échoué en raison d&apos;une erreur interne. Votre porte-monnaie n&apos;a pas été chiffré.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>Les phrases de passe entrées ne correspondent pas.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation>Le déverrouillage du porte-monnaie a échoué</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>La phrase de passe entrée pour décrypter le porte-monnaie était incorrecte.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation>Le décryptage du porte-monnaie a échoué</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation>La phrase de passe du porte-monnaie a été modifiée avec succès.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="72"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Porte-monnaie Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="212"/>
+ <source>Sign &amp;message...</source>
+ <translation>Signer le &amp;message...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="245"/>
+ <source>Show/Hide &amp;Bitcoin</source>
+ <translation>Afficher/Cacher &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="507"/>
+ <source>Synchronizing with network...</source>
+ <translation>Synchronisation avec le réseau...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Vue d&apos;ensemble</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Show general overview of wallet</source>
+ <translation>Affiche une vue d&apos;ensemble du porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transactions</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Browse transaction history</source>
+ <translation>Permet de parcourir l&apos;historique des transactions</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Address Book</source>
+ <translation>Carnet d&apos;&amp;adresses</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <source>Edit the list of stored addresses and labels</source>
+ <translation>Éditer la liste des adresses et des étiquettes stockées</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="200"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Recevoir des pièces</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <source>Show the list of addresses for receiving payments</source>
+ <translation>Affiche la liste des adresses pour recevoir des paiements</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="206"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Envoyer des pièces</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Envoyer des pièces à une adresse Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="213"/>
+ <source>Prove you control an address</source>
+ <translation>Prouver que vous contrôlez une adresse</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>E&amp;xit</source>
+ <translation>Q&amp;uitter</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>Quit application</source>
+ <translation>Quitter l&apos;application</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;À propos de %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Afficher des informations à propos de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>About &amp;Qt</source>
+ <translation>À propos de &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show information about Qt</source>
+ <translation>Afficher des informations sur Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Options...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Modifier les options de configuration de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>&amp;Encrypt Wallet...</source>
+ <translation>&amp;Chiffrer le porte-monnaie...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="252"/>
+ <source>&amp;Backup Wallet...</source>
+ <translation>&amp;Sauvegarder le porte-monnaie...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="254"/>
+ <source>&amp;Change Passphrase...</source>
+ <translation>&amp;Modifier la phrase de passe...</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="509"/>
+ <source>~%n block(s) remaining</source>
+ <translation><numerusform>~%n bloc restant</numerusform><numerusform>~%n blocs restants</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Downloaded %1 of %2 blocks of transaction history (%3% done).</source>
+ <translation>%1 blocs de l&apos;historique des transactions sur %2 téléchargés (%3% effectué).</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Exporter...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>Show or hide the Bitcoin window</source>
+ <translation>Afficher ou cacher la fenêtre Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Exporter les données de l&apos;onglet courant vers un fichier</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="250"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Chiffrer ou décrypter le porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="253"/>
+ <source>Backup wallet to another location</source>
+ <translation>Sauvegarder le porte-monnaie à un autre emplacement</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="255"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Modifier la phrase de passe utilisée pour le cryptage du porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="256"/>
+ <source>&amp;Debug window</source>
+ <translation>Fenêtre de &amp;débogage</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="257"/>
+ <source>Open debugging and diagnostic console</source>
+ <translation>Ouvrir une console de débogage et de diagnostic</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="289"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Réglages</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="295"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Aide</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="304"/>
+ <source>Tabs toolbar</source>
+ <translation>Barre d&apos;outils des onglets</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="315"/>
+ <source>Actions toolbar</source>
+ <translation>Barre d&apos;outils des actions</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="327"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="391"/>
+ <source>Bitcoin client</source>
+ <translation>Client Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="419"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation><numerusform>%n connexion active avec le réseau Bitcoin</numerusform><numerusform>%n connexions actives avec le réseau Bitcoin</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="532"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>%1 blocs de l&apos;historique des transactions téléchargés.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="547"/>
+ <source>%n second(s) ago</source>
+ <translation><numerusform>il y a %n seconde</numerusform><numerusform>il y a %n secondes</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="551"/>
+ <source>%n minute(s) ago</source>
+ <translation><numerusform>il y a %n minute</numerusform><numerusform>il y a %n minutes</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="555"/>
+ <source>%n hour(s) ago</source>
+ <translation><numerusform>il y a %n heure</numerusform><numerusform>il y a %n heures</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="559"/>
+ <source>%n day(s) ago</source>
+ <translation><numerusform>il y a %n jour</numerusform><numerusform>il y a %n jours</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="565"/>
+ <source>Up to date</source>
+ <translation>À jour</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="570"/>
+ <source>Catching up...</source>
+ <translation>Rattrapage...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="578"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Le dernier bloc reçu a été généré %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="634"/>
+ <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
+ <translation>Cette transaction dépasse la limite de taille. Vous pouvez quand même l&apos;envoyer en vous acquittant de frais d&apos;un montant de %1, qui iront aux nœuds qui traiteront la transaction et aideront à soutenir le réseau. Voulez-vous payer les frais ?</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="639"/>
+ <source>Confirm transaction fee</source>
+ <translation>Confirmer les frais de transaction</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="666"/>
+ <source>Sent transaction</source>
+ <translation>Transaction envoyée</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="667"/>
+ <source>Incoming transaction</source>
+ <translation>Transaction entrante</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="668"/>
+ <source>Date: %1
+Amount: %2
+Type: %3
+Address: %4
+</source>
+ <translation>Date : %1
+Montant : %2
+Type : %3
+Adresse : %4
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="793"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>Le porte-monnaie est &lt;b&gt;chiffré&lt;/b&gt; et est actuellement &lt;b&gt;déverrouillé&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="801"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>Le porte-monnaie est &lt;b&gt;chiffré&lt;/b&gt; et est actuellement &lt;b&gt;verrouillé&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="824"/>
+ <source>Backup Wallet</source>
+ <translation>Sauvegarder le porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="824"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Données de porte-monnaie (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="827"/>
+ <source>Backup Failed</source>
+ <translation>La sauvegarde a échoué</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="827"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Une erreur est survenue lors de l&apos;enregistrement des données de porte-monnaie à un autre emplacement.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="127"/>
+ <source>A fatal error occured. Bitcoin can no longer continue safely and will quit.</source>
+ <translation>Une erreur fatale est survenue. Bitcoin ne peut plus continuer à fonctionner de façon sûre et va s&apos;arrêter.</translation>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Unité d&apos;affichage des montants : </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="277"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Choisissez la sous-unité par défaut pour l&apos;affichage dans l&apos;interface et lors de l&apos;envoi de pièces</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="284"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation>&amp;Afficher les adresses sur la liste des transactions</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="285"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation>Détermine si les adresses Bitcoin seront affichées sur la liste des transactions</translation>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Éditer l&apos;adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Étiquette</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>L&apos;étiquette associée à cette entrée du carnet d&apos;adresses</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>L&apos;adresse associée avec cette entrée du carnet d&apos;adresses. Ne peut être modifiée que pour les adresses d&apos;envoi.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Nouvelle adresse de réception</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Nouvelle adresse d&apos;envoi</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>Éditer l&apos;adresse de réception</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Éditer l&apos;adresse d&apos;envoi</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;adresse fournie « %1 » est déjà présente dans le carnet d&apos;adresses.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>L&apos;adresse fournie « %1 » n&apos;est pas une adresse Bitcoin valide.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Impossible de déverrouiller le porte-monnaie.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Échec de la génération de la nouvelle clef.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Démarrer Bitcoin avec le système de fenêtres</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="172"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Lancer automatiquement Bitcoin lorsque l&apos;ordinateur est allumé</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimiser dans la barre système au lieu de la barre des tâches</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="177"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Montrer uniquement une icône système après minimisation</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Ouvrir le port avec l&apos;&amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation>Ouvrir le port du client Bitcoin automatiquement sur le routeur. Cela ne fonctionne que si votre routeur supporte l&apos;UPnP et si la fonctionnalité est activée.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>M&amp;inimize on close</source>
+ <translation>Mi&amp;nimiser lors de la fermeture</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu.</source>
+ <translation>Minimiser au lieu quitter l&apos;application lorsque la fenêtre est fermée. Lorsque cette option est activée, l&apos;application ne pourra être fermée qu&apos;en sélectionnant Quitter dans le menu déroulant.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="189"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Connexion à travers un proxy SOCKS4 :</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Connexion au réseau Bitcoin à travers un proxy SOCKS4 (par ex. lors d&apos;une connexion via Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="195"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>&amp;IP du proxy : </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="201"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>Adresse IP du proxy (par ex. 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="204"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Port : </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="210"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Port du proxy (par ex. 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="232"/>
+ <source>Detach databases at shutdown</source>
+ <translation>Détacher les bases de données lors de la fermeture</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="233"/>
+ <source>Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached.</source>
+ <translation>Détacher les bases de données des blocs et des adresses lors de la fermeture. Cela permet de les déplacer dans un autre répertoire de données mais ralentit la fermeture. Le porte-monnaie est toujours détaché.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="222"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Payer des &amp;frais de transaction</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="216"/>
+ <source>Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended.</source>
+ <translation>Frais de transaction optionnels par ko qui aident à garantir un traitement rapide des transactions. La plupart des transactions occupent 1 ko. Des frais de 0.01 sont recommandés.</translation>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation>Message</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
+ <translation>Vous pouvez signer des messages avec vos adresses pour prouver que les détenez. Faites attention à ne pas signer quoi que ce soit de vague car des attaques d&apos;hameçonnage peuvent essayer d&apos;obtenir votre identité par votre signature. Ne signez que des déclarations entièrement détaillées et avec lesquelles vous serez d&apos;accord.</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>L&apos;adresse avec laquelle le message sera signé ( par ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation>Choisir une adresse depuis le carnet d&apos;adresses</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation>Coller une adresse depuis le presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation>Entrez ici le message que vous désirez signer</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="128"/>
+ <source>Copy the current signature to the system clipboard</source>
+ <translation>Copier la signature actuelle dans le presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>&amp;Copy Signature</source>
+ <translation>&amp;Copier la signature</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="142"/>
+ <source>Reset all sign message fields</source>
+ <translation>Remettre à zéro tous les champs de signature de message</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="145"/>
+ <source>Clear &amp;All</source>
+ <translation>&amp;Tout nettoyer</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="30"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation>Cliquez sur « Signer le message » pour obtenir la signature</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="114"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Signer le message pour prouver que vous détenez cette adresse</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;Signer le message</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="79"/>
+ <location filename="../messagepage.cpp" line="94"/>
+ <location filename="../messagepage.cpp" line="106"/>
+ <source>Error signing</source>
+ <translation>Une erreur est survenue lors de la signature</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="79"/>
+ <source>%1 is not a valid address.</source>
+ <translation>%1 n&apos;est pas une adresse valide.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="94"/>
+ <source>Private key for %1 is not available.</source>
+ <translation>La clef privée pour %1 n&apos;est pas disponible.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="106"/>
+ <source>Sign failed</source>
+ <translation>Échec de la signature</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="80"/>
+ <source>Main</source>
+ <translation>Principal</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="85"/>
+ <source>Display</source>
+ <translation>Affichage</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="105"/>
+ <source>Options</source>
+ <translation>Options</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Formulaire</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Solde :</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Nombre de transactions :</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 confirmé :</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation>0 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation>Porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Transactions récentes&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>Votre solde actuel</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 des transactions qui doivent encore être confirmées et qui ne sont pas prises en compte pour le solde actuel</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Nombre total de transactions dans le porte-monnaie</translation>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>QR-Code Dialog</source>
+ <translation>Dialogue de QR Code</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation>QR Code</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="55"/>
+ <source>Request Payment</source>
+ <translation>Demande de paiement</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="70"/>
+ <source>Amount:</source>
+ <translation>Montant :</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="105"/>
+ <source>BTC</source>
+ <translation>BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="121"/>
+ <source>Label:</source>
+ <translation>Étiquette :</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="144"/>
+ <source>Message:</source>
+ <translation>Message :</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="186"/>
+ <source>&amp;Save As...</source>
+ <translation>&amp;Enregistrer sous...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="46"/>
+ <source>Error encoding URI into QR Code.</source>
+ <translation>Erreur de l&apos;encodage de l&apos;URI dans le QR Code.</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="64"/>
+ <source>Resulting URI too long, try to reduce the text for label / message.</source>
+ <translation>L&apos;URI résultant est trop long, essayez avec un texte d&apos;étiquette ou de message plus court.</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="121"/>
+ <source>Save QR Code</source>
+ <translation>Sauvegarder le QR Code</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="121"/>
+ <source>PNG Images (*.png)</source>
+ <translation>Images PNG (*.png)</translation>
+ </message>
+</context>
+<context>
+ <name>RPCConsole</name>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="14"/>
+ <source>Bitcoin debug window</source>
+ <translation>Fenêtre de débogage de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="24"/>
+ <source>Information</source>
+ <translation>Informations</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="33"/>
+ <source>Client name</source>
+ <translation>Nom du client</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="40"/>
+ <location filename="../forms/rpcconsole.ui" line="60"/>
+ <location filename="../forms/rpcconsole.ui" line="106"/>
+ <location filename="../forms/rpcconsole.ui" line="156"/>
+ <location filename="../forms/rpcconsole.ui" line="176"/>
+ <location filename="../forms/rpcconsole.ui" line="196"/>
+ <location filename="../forms/rpcconsole.ui" line="229"/>
+ <source>N/A</source>
+ <translation>Indisponible</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="53"/>
+ <source>Client version</source>
+ <translation>Version du client</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="79"/>
+ <source>Version</source>
+ <translation>Version</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="92"/>
+ <source>Network</source>
+ <translation>Réseau</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="99"/>
+ <source>Number of connections</source>
+ <translation>Nombre de connexions</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="119"/>
+ <source>On testnet</source>
+ <translation>Sur testnet</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="142"/>
+ <source>Block chain</source>
+ <translation>Chaîne de blocs</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="149"/>
+ <source>Current number of blocks</source>
+ <translation>Nombre actuel de blocs</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="169"/>
+ <source>Estimated total blocks</source>
+ <translation>Nombre total estimé de blocs</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="189"/>
+ <source>Last block time</source>
+ <translation>Horodatage du dernier bloc</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="222"/>
+ <source>Build date</source>
+ <translation>Date de compilation</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="237"/>
+ <source>Console</source>
+ <translation>Console</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="278"/>
+ <source>&gt;</source>
+ <translation>&gt;</translation>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="294"/>
+ <source>Clear console</source>
+ <translation>Nettoyer la console</translation>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="97"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Copier</translation>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="195"/>
+ <source>Welcome to the bitcoin RPC console.</source>
+ <translation>Bienvenue sur la console RPC de Bitcoin.</translation>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="196"/>
+ <source>Use up and down arrows to navigate history, and Ctrl-L to clear screen.</source>
+ <translation>Utilisez les touches de curseur pour naviguer dans l&apos;historique et Ctrl-L pour effacer l&apos;écran.</translation>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="197"/>
+ <source>Type &quot;help&quot; for an overview of available commands.</source>
+ <translation>Tapez « help » pour afficher une vue générale des commandes disponibles.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation>Envoyer des pièces</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Envoyer des pièces à plusieurs destinataires à la fois</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add Recipient</source>
+ <translation>&amp;Ajouter un destinataire</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Enlever tous les champs de transaction</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Tout effacer</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="106"/>
+ <source>Balance:</source>
+ <translation>Solde :</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>Confirmer l&apos;action d&apos;envoi</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation>&amp;Envoyer</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; à %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation>Confirmer l&apos;envoi des pièces</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Êtes-vous sûr de vouloir envoyer %1 ?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation> et </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation>L&apos;adresse du destinataire n&apos;est pas valide, veuillez la vérifier.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>Le montant à payer doit être supérieur à 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation>Le montant dépasse votre solde</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation>Le total dépasse votre solde lorsque les frais de transaction de %1 sont inclus</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation>Adresse dupliquée trouvée, un seul envoi par adresse est possible à chaque opération d&apos;envoi</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Erreur : échec de la création de la transaction </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation>Erreur : la transaction a été rejetée. Cela peut arriver si certaines pièces de votre porte-monnaie ont déjà été dépensées, par exemple si vous avez utilisé une copie de wallet.dat et si des pièces ont été dépensées avec cette copie sans être marquées comme telles ici.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Formulaire</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>&amp;Montant :</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Payer &amp;à :</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation>Entrez une étiquette pour cette adresse afin de l&apos;ajouter à votre carnet d&apos;adresses</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Étiquette :</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;adresse à laquelle le paiement sera envoyé (par ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Choisir une adresse dans le carnet d&apos;adresses</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>Coller une adresse depuis le presse-papiers</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>Enlever ce destinataire</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Entrez une adresse Bitcoin (par ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open for %1 blocks</source>
+ <translation>Ouvert pour %1 blocs</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="22"/>
+ <source>Open until %1</source>
+ <translation>Ouvert jusqu&apos;à %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/offline?</source>
+ <translation>%1/hors ligne ?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/non confirmée</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="32"/>
+ <source>%1 confirmations</source>
+ <translation>%1 confirmations</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="50"/>
+ <source>&lt;b&gt;Status:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;État :&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="55"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, n&apos;a pas encore été diffusée avec succès</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="57"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, diffusée à travers %1 nœud</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="59"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, diffusée à travers %1 nœuds</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <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="70"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Source :&lt;/b&gt; Généré&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <location filename="../transactiondesc.cpp" line="93"/>
+ <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="93"/>
+ <source>unknown</source>
+ <translation>inconnu</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <location filename="../transactiondesc.cpp" line="117"/>
+ <location filename="../transactiondesc.cpp" line="176"/>
+ <source>&lt;b&gt;To:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;À :&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="97"/>
+ <source> (yours, label: </source>
+ <translation> (vôtre, étiquette : </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="99"/>
+ <source> (yours)</source>
+ <translation> (vôtre)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="134"/>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <location filename="../transactiondesc.cpp" line="193"/>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <source>&lt;b&gt;Credit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Crédit : &lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="136"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 sera considérée comme mûre suite à %2 blocs de plus)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="140"/>
+ <source>(not accepted)</source>
+ <translation>(pas accepté)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="184"/>
+ <location filename="../transactiondesc.cpp" line="192"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <source>&lt;b&gt;Debit:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Débit : &lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="198"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Frais de transaction :&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="214"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Montant net :&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="220"/>
+ <source>Message:</source>
+ <translation>Message :</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>Comment:</source>
+ <translation>Commentaire :</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Transaction ID:</source>
+ <translation>ID de la transaction :</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="227"/>
+ <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>Les pièces générées doivent attendre 120 blocs avant de pouvoir être dépensées. Lorsque vous avez généré ce bloc, il a été diffusé sur le réseau pour être ajouté à la chaîne des blocs. S&apos;il échoue a intégrer la chaîne, il sera modifié en « pas accepté » et il ne sera pas possible de le dépenser. Cela peut arriver occasionnellement si un autre nœud génère un bloc quelques secondes avant ou après vous.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Détails de la transaction</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Ce panneau affiche une description détaillée de la transaction</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionTableModel</name>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Date</source>
+ <translation>Date</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>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Montant</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="275"/>
+ <source>Open for %n block(s)</source>
+ <translation><numerusform>Ouvert pour %n bloc</numerusform><numerusform>Ouvert pour %n blocs</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="278"/>
+ <source>Open until %1</source>
+ <translation>Ouvert jusqu&apos;à %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="281"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Hors ligne (%1 confirmations)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="284"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Non confirmée (%1 confirmations sur un total de %2)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="287"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Confirmée (%1 confirmations)</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation><numerusform>Le solde d&apos;extraction (mined) sera disponible dans %n bloc</numerusform><numerusform>Le solde d&apos;extraction (mined) sera disponible dans %n blocs</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Ce bloc n&apos;a été reçu par aucun autre nœud et ne sera probablement pas accepté !</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation>Généré mais pas accepté</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation>Reçue avec</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation>Reçue de</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation>Envoyée à</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation>Paiement à vous-même</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation>Extraction</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation>(indisponible)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>État de la transaction. Laissez le pointeur de la souris sur ce champ pour voir le nombre de confirmations.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Date et heure de réception de la transaction.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation>Type de transaction.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation>L&apos;adresse de destination de la transaction.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Montant ajouté au ou enlevé du solde.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation>Toutes</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Aujourd&apos;hui</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="57"/>
+ <source>This week</source>
+ <translation>Cette semaine</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="58"/>
+ <source>This month</source>
+ <translation>Ce mois</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Mois dernier</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Cette année</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Intervalle...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Reçues avec</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Envoyées à</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>À vous-même</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Extraction</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Autres</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>Entrez une adresse ou une étiquette à rechercher</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Montant min</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation>Copier l&apos;adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation>Copier l&apos;étiquette</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation>Copier le montant</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Éditer l&apos;étiquette</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show transaction details</source>
+ <translation>Afficher les détails de la transaction</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation>Exporter les données des transactions</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Valeurs séparées par des virgules (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation>Confirmée</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation>Date</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Étiquette</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Adresse</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation>Montant</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>Erreur lors de l&apos;exportation</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation>Impossible d&apos;écrire sur le fichier %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation>Intervalle :</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation>à</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="142"/>
+ <source>Sending...</source>
+ <translation>Envoi en cours...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Bitcoin version</source>
+ <translation>Version de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Usage:</source>
+ <translation>Utilisation :</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation>Envoyer une commande à -server ou à bitcoind</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>List commands</source>
+ <translation>Lister les commandes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Get help for a command</source>
+ <translation>Obtenir de l&apos;aide pour une commande</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Options:</source>
+ <translation>Options :</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation>Spécifier le fichier de configuration (par défaut : bitcoin.conf)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation>Spécifier le fichier pid (par défaut : bitcoind.pid)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Generate coins</source>
+ <translation>Générer des pièces</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Don&apos;t generate coins</source>
+ <translation>Ne pas générer de pièces</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Start minimized</source>
+ <translation>Démarrer sous forme minimisée</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Show splash screen on startup (default: 1)</source>
+ <translation>Afficher l&apos;écran d&apos;accueil au démarrage (par défaut : 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Specify data directory</source>
+ <translation>Spécifier le répertoire de données</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Set database cache size in megabytes (default: 25)</source>
+ <translation>Définir la taille du tampon en mégaoctets (par défaut :25)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Set database disk log size in megabytes (default: 100)</source>
+ <translation>Définir la taille du journal de la base de données sur le disque en mégaoctets (par défaut : 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation>Spécifier le délai d&apos;expiration de la connexion (en millisecondes)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Connect through socks4 proxy</source>
+ <translation>Connexion via un proxy socks4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation>Autoriser les recherches DNS pour l&apos;ajout de nœuds et la connexion</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation>Écouter les connexions sur le &lt;port&gt; (par défaut : 8333 ou testnet : 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation>Garder au plus &lt;n&gt; connexions avec les pairs (par défaut : 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Connect only to the specified node</source>
+ <translation>Ne se connecter qu&apos;au nœud spécifié</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation>Seuil de déconnexion des pairs de mauvaise qualité (par défaut : 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation>Délai en secondes de refus de reconnexion aux pairs de mauvaise qualité (par défaut : 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>Tampon maximal de réception par connexion, &lt;n&gt;*1000 octets (par défaut : 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>Tampon maximal d&apos;envoi par connexion, &lt;n&gt;*1000 octets (par défaut : 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation>Accepter les commandes de JSON-RPC et de la ligne de commande</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation>Fonctionner en arrière-plan en tant que démon et accepter les commandes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Use the test network</source>
+ <translation>Utiliser le réseau de test</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Output extra debugging information</source>
+ <translation>Informations de débogage supplémentaires</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation>Faire précéder les données de débogage par un horodatage</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation>Envoyer les informations de débogage/trace à la console au lieu du fichier debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation>Envoyer les informations de débogage/trace au débogueur</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation>Nom d&apos;utilisateur pour les connexions JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="55"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation>Mot de passe pour les connexions JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation>Écouter les connexions JSON-RPC sur le &lt;port&gt; (par défaut : 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation>Autoriser les connexions JSON-RPC depuis l&apos;adresse IP spécifiée</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation>Envoyer des commandes au nœud fonctionnant à &lt;ip&gt; (par défaut : 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
+ <translation>Exécuter la commande lorsque le meilleur bloc change (%s est remplacé par le hachage du bloc dans cmd)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Upgrade wallet to latest format</source>
+ <translation>Mettre à jour le format du porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation>Régler la taille de la plage de clefs sur &lt;n&gt; (par défaut : 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation>Réanalyser la chaîne de blocs pour les transactions de porte-monnaie manquantes</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>How many blocks to check at startup (default: 2500, 0 = all)</source>
+ <translation>Nombre de blocs à tester au démarrage (par défaut : 2500, 0 = tous)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>How thorough the block verification is (0-6, default: 1)</source>
+ <translation>Profondeur de la vérification des blocs (0-6, par défaut : 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation>
+Options SSL : (cf. le wiki Bitcoin pour les réglages SSL)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation>Utiliser OpenSSL (https) pour les connexions JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation>Fichier de certificat serveur (par défaut : server.cert)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation>Clef privée du serveur (par défaut : server.pem)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation>Clefs de chiffrement acceptables (par défaut : TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>This help message</source>
+ <translation>Ce message d&apos;aide</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Usage</source>
+ <translation>Utilisation</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Impossible d&apos;obtenir un verrou sur le répertoire de données %s. Bitcoin fonctionne probablement déjà.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Bitcoin</source>
+ <translation>Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="82"/>
+ <source>Loading addresses...</source>
+ <translation>Chargement des adresses...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="83"/>
+ <source>Error loading addr.dat</source>
+ <translation>Erreur lors du chargement de addr.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Error loading blkindex.dat</source>
+ <translation>Erreur lors du chargement de blkindex.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="87"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation>Erreur lors du chargement de wallet.dat : porte-monnaie corrompu</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="88"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation>Erreur lors du chargement de wallet.dat : le porte-monnaie nécessite une version plus récente de Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <translation>Le porte-monnaie nécessitait une réécriture. Veuillez redémarrer Bitcoin pour terminer l&apos;opération</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="90"/>
+ <source>Error loading wallet.dat</source>
+ <translation>Erreur lors du chargement de wallet.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="122"/>
+ <source>Error: Wallet locked, unable to create transaction </source>
+ <translation>Erreur : le porte-monnaie est verrouillé, impossible de créer la transaction </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="123"/>
+ <source>Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds </source>
+ <translation>Erreur : cette transaction nécessite des frais de transaction d&apos;au moins %s en raison de son montant, de sa complexité ou parce que des fonds reçus récemment sont utilisés </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="126"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Erreur : échec de la création de la transaction </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="127"/>
+ <source>Sending...</source>
+ <translation>Envoi en cours...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="128"/>
+ <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>Erreur : la transaction a été rejetée. Cela peut arriver si certaines pièces de votre porte-monnaie ont déjà été dépensées, par exemple si vous avez utilisé une copie de wallet.dat et si des pièces ont été dépensées avec cette copie sans être marquées comme telles ici.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="132"/>
+ <source>Invalid amount</source>
+ <translation>Montant invalide</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="133"/>
+ <source>Insufficient funds</source>
+ <translation>Fonds insuffisants</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Loading block index...</source>
+ <translation>Chargement de l&apos;index des blocs...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Add a node to connect to and attempt to keep the connection open</source>
+ <translation>Ajouter un nœud auquel se connecter et tenter de garder la connexion ouverte</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Find peers using internet relay chat (default: 0)</source>
+ <translation>Trouver des pairs en utilisant Internet Relay Chat (par défaut : 0)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Accept connections from outside (default: 1)</source>
+ <translation>Accepter les connexions entrantes (par défaut : 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Set language, for example &quot;de_DE&quot; (default: system locale)</source>
+ <translation>Définir la langue, par exemple « de_DE » (par défaut : la langue du système)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Find peers using DNS lookup (default: 1)</source>
+ <translation>Trouver des pairs en utilisant la recherche DNS (par défaut : 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 1)</source>
+ <translation>Utiliser Universal Plug and Play pour rediriger le port d&apos;écoute (par défaut : 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 0)</source>
+ <translation>Utiliser Universal Plug and Play pour rediriger le port d&apos;écoute (par défaut : 0)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <source>Fee per KB to add to transactions you send</source>
+ <translation>Frais par Ko à ajouter aux transactions que vous enverrez</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="86"/>
+ <source>Loading wallet...</source>
+ <translation>Chargement du porte-monnaie...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="91"/>
+ <source>Cannot downgrade wallet</source>
+ <translation>Impossible de revenir à une version antérieure du porte-monnaie</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>Cannot initialize keypool</source>
+ <translation>Impossible d&apos;initialiser le keypool</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="93"/>
+ <source>Cannot write default address</source>
+ <translation>Impossible d&apos;écrire l&apos;adresse par défaut</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="94"/>
+ <source>Rescanning...</source>
+ <translation>Nouvelle analyse...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="95"/>
+ <source>Done loading</source>
+ <translation>Chargement terminé</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="96"/>
+ <source>Invalid -proxy address</source>
+ <translation>Adresse -proxy invalide</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="97"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Montant invalide pour -paytxfee=&lt;montant&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="98"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Attention : -paytxfee est réglée sur un montant très élevé. Il s&apos;agit des frais de transaction que vous payerez si vous envoyez une transaction.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="101"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Erreur : CreateThread(StartNode) a échoué</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Warning: Disk space is low </source>
+ <translation>Attention : l&apos;espace disque est faible</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>Impossible de s&apos;attacher au port %d sur cet ordinateur. Bitcoin fonctionne probablement déjà.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="102"/>
+ <source>To use the %s option</source>
+ <translation>Pour utiliser l&apos;option %s</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="103"/>
+ <source>%s, you must set a rpcpassword in the configuration file:
+ %s
+It is recommended you use the following random password:
+rpcuser=bitcoinrpc
+rpcpassword=%s
+(you do not need to remember this password)
+If the file does not exist, create it with owner-readable-only file permissions.
+</source>
+ <translation>%s, vous devez établir un mot de passe rpc dans le fichier de configuration :
+ %s
+Il est recommandé d&apos;utiliser le mot de passe aléatoire suivant :
+rcpuser=bitcoinrpc
+rpcpassword=%s
+(vous n&apos;avez pas besoin de mémoriser ce mot de passe)
+Si le fichier n&apos;existe pas, créez-le avec les droits de lecture accordés au propriétaire.
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="112"/>
+ <source>Error</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="113"/>
+ <source>An error occured while setting up the RPC port %i for listening: %s</source>
+ <translation>Une erreur est survenue lors de mise en place du port RPC d&apos;écoute %i : %s</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="114"/>
+ <source>You must set rpcpassword=&lt;password&gt; in the configuration file:
+%s
+If the file does not exist, create it with owner-readable-only file permissions.</source>
+ <translation>Vous devez ajouter la ligne rpcpassword=&lt;mot-de-passe&gt; au fichier de configuration :
+%s
+Si le fichier n&apos;existe pas, créez-le avec les droits de lecture seule accordés au propriétaire.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="119"/>
+ <source>Warning: Please check that your computer&apos;s date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <translation>Attention : veuillez vérifier que l&apos;heure et la date de votre ordinateur sont correctes. Si votre horloge n&apos;est pas à l&apos;heure, Bitcoin ne fonctionnera pas correctement.</translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/locale/bitcoin_pt_PT.ts b/src/qt/locale/bitcoin_pt_PT.ts
new file mode 100644
index 0000000000..a727f4ee21
--- /dev/null
+++ b/src/qt/locale/bitcoin_pt_PT.ts
@@ -0,0 +1,2265 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="pt_PT" version="2.0">
+<defaultcodec>UTF-8</defaultcodec>
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../forms/aboutdialog.ui" line="14"/>
+ <source>About Bitcoin</source>
+ <translation>Sobre 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="97"/>
+ <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>Todos os direitos reservados © 2009-2012 Programadores Bitcoin
+
+Este é um programa experimental.
+
+Distribuído sobre uma licença de software MIT/X11, por favor verifique o ficheiro anexo license.txt ou http://www.opensource.org/licenses/mit-license.php.
+
+Este produto inclui software desenvolvido pelo Projecto OpenSSL para uso no OpenSSL Toolkit (http://www.openssl.org/), software criptográfico escrito por Eric Young (eay@cryptsoft.com) e software UPnP escrito por Thomas Bernard.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressBookPage</name>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="14"/>
+ <source>Address Book</source>
+ <translation>Livro 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. Poderá enviar um endereço diferente para cada remetente para poder identificar os pagamentos.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="36"/>
+ <source>Double-click to edit address or label</source>
+ <translation>Clique duas vezes para editar o endereço ou o rótulo</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="63"/>
+ <source>Create a new address</source>
+ <translation>Criar um novo endereço</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="77"/>
+ <source>Copy the currently selected address to the system clipboard</source>
+ <translation>Copie o endereço selecionado para a área de transferência</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="66"/>
+ <source>&amp;New Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="80"/>
+ <source>&amp;Copy Address</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="91"/>
+ <source>Show &amp;QR Code</source>
+ <translation>Mostrar &amp;Código QR</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="102"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Assine uma mensagem para provar que é dono deste endereço</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="105"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;Assinar Mensagem</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="116"/>
+ <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
+ <translation>Eliminar o endereço selecionado da lista. Apenas endereços de envio podem ser eliminados.</translation>
+ </message>
+ <message>
+ <location filename="../forms/addressbookpage.ui" line="119"/>
+ <source>&amp;Delete</source>
+ <translation>&amp;Eliminar</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="63"/>
+ <source>Copy &amp;Label</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="65"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="297"/>
+ <source>Export Address Book Data</source>
+ <translation>Exportar de dados do Livro de Endereços</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="298"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Ficheiro separado por vírgulas (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="311"/>
+ <source>Error exporting</source>
+ <translation>Erro ao exportar</translation>
+ </message>
+ <message>
+ <location filename="../addressbookpage.cpp" line="311"/>
+ <source>Could not write to file %1.</source>
+ <translation>Could not write to file %1.</translation>
+ </message>
+</context>
+<context>
+ <name>AddressTableModel</name>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Label</source>
+ <translation>Rótulo</translation>
+ </message>
+ <message>
+ <location filename="../addresstablemodel.cpp" line="78"/>
+ <source>Address</source>
+ <translation>Endereço</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="32"/>
+ <location filename="../forms/askpassphrasedialog.ui" line="97"/>
+ <source>TextLabel</source>
+ <translation>TextoDoRótulo</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="50"/>
+ <source>Enter passphrase</source>
+ <translation>Escreva a frase de segurança</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="64"/>
+ <source>New passphrase</source>
+ <translation>Nova frase de segurança</translation>
+ </message>
+ <message>
+ <location filename="../forms/askpassphrasedialog.ui" line="78"/>
+ <source>Repeat new passphrase</source>
+ <translation>Repita a nova frase de seguranç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>Escreva 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="35"/>
+ <source>Encrypt wallet</source>
+ <translation>Encriptar carteira</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="38"/>
+ <source>This operation needs your wallet passphrase to unlock the wallet.</source>
+ <translation>A sua frase de segurança é necessária para desbloquear a 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="46"/>
+ <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
+ <translation>A sua frase de segurança é necessária para desencriptar a carteira.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="51"/>
+ <source>Decrypt wallet</source>
+ <translation>Desencriptar 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="55"/>
+ <source>Enter the old and new passphrase to the wallet.</source>
+ <translation>Escreva a frase de segurança antiga seguida da nova para a carteira.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="101"/>
+ <source>Confirm wallet encryption</source>
+ <translation>Confirmar encriptação 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 encriptar a carteira e perder a sua senha irá &lt;b&gt;perder todos os seus BITCOINS!&lt;/b&gt; Tem a certeza de que deseja encriptar a carteira?</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="111"/>
+ <location filename="../askpassphrasedialog.cpp" line="160"/>
+ <source>Wallet encrypted</source>
+ <translation>Carteira encriptada</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="112"/>
+ <source>Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source>
+ <translation>O cliente Bitcoin irá agora ser fechado para terminar o processo de encriptação. Recorde que a encriptação da sua carteira não protegerá totalmente os seus bitcoins de serem roubados por programas maliciosos que infectem o seu computador.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="208"/>
+ <location filename="../askpassphrasedialog.cpp" line="232"/>
+ <source>Warning: The Caps Lock key is on.</source>
+ <translation>Atenção: A tecla Caps Lock está activa.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="117"/>
+ <location filename="../askpassphrasedialog.cpp" line="124"/>
+ <location filename="../askpassphrasedialog.cpp" line="166"/>
+ <location filename="../askpassphrasedialog.cpp" line="172"/>
+ <source>Wallet encryption failed</source>
+ <translation>A encriptação da carteira falhou</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="118"/>
+ <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
+ <translation>A encriptação da carteira falhou devido a um erro interno. A carteira não foi encriptada.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="125"/>
+ <location filename="../askpassphrasedialog.cpp" line="173"/>
+ <source>The supplied passphrases do not match.</source>
+ <translation>As frases de segurança fornecidas não coincidem.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="136"/>
+ <source>Wallet unlock failed</source>
+ <translation>O desbloqueio da carteira falhou</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="137"/>
+ <location filename="../askpassphrasedialog.cpp" line="148"/>
+ <location filename="../askpassphrasedialog.cpp" line="167"/>
+ <source>The passphrase entered for the wallet decryption was incorrect.</source>
+ <translation>A frase de segurança introduzida para a desencriptação da carteira estava incorreta.</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="147"/>
+ <source>Wallet decryption failed</source>
+ <translation>A desencriptação da carteira falhou</translation>
+ </message>
+ <message>
+ <location filename="../askpassphrasedialog.cpp" line="161"/>
+ <source>Wallet passphrase was succesfully changed.</source>
+ <translation>A frase de segurança da carteira foi alterada com êxito.</translation>
+ </message>
+</context>
+<context>
+ <name>BitcoinGUI</name>
+ <message>
+ <location filename="../bitcoingui.cpp" line="72"/>
+ <source>Bitcoin Wallet</source>
+ <translation>Carteira Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="212"/>
+ <source>Sign &amp;message...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="245"/>
+ <source>Show/Hide &amp;Bitcoin</source>
+ <translation>Mostrar/Ocultar &amp;Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="507"/>
+ <source>Synchronizing with network...</source>
+ <translation>Sincronizando com a rede...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="182"/>
+ <source>&amp;Overview</source>
+ <translation>&amp;Visão geral</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="183"/>
+ <source>Show general overview of wallet</source>
+ <translation>Mostrar visão geral da carteira</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="188"/>
+ <source>&amp;Transactions</source>
+ <translation>&amp;Transações</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="189"/>
+ <source>Browse transaction history</source>
+ <translation>Navegar pelo histórico de transações</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="194"/>
+ <source>&amp;Address Book</source>
+ <translation>&amp;Livro de endereços</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="195"/>
+ <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="200"/>
+ <source>&amp;Receive coins</source>
+ <translation>&amp;Receber moedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="201"/>
+ <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="206"/>
+ <source>&amp;Send coins</source>
+ <translation>&amp;Enviar moedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="207"/>
+ <source>Send coins to a bitcoin address</source>
+ <translation>Enviar moedas para um endereço bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="213"/>
+ <source>Prove you control an address</source>
+ <translation>Prove que controla um endereço</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="232"/>
+ <source>E&amp;xit</source>
+ <translation>S&amp;air</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="233"/>
+ <source>Quit application</source>
+ <translation>Sair da aplicação</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="236"/>
+ <source>&amp;About %1</source>
+ <translation>&amp;Acerca de %1</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="237"/>
+ <source>Show information about Bitcoin</source>
+ <translation>Mostrar informação sobre Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="239"/>
+ <source>About &amp;Qt</source>
+ <translation>Sobre &amp;Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="240"/>
+ <source>Show information about Qt</source>
+ <translation>Mostrar informação sobre Qt</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="242"/>
+ <source>&amp;Options...</source>
+ <translation>&amp;Opções...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>Modify configuration options for bitcoin</source>
+ <translation>Modificar configuração para bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="249"/>
+ <source>&amp;Encrypt Wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="252"/>
+ <source>&amp;Backup Wallet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="254"/>
+ <source>&amp;Change Passphrase...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="509"/>
+ <source>~%n block(s) remaining</source>
+ <translation><numerusform>~%n bloco restante</numerusform><numerusform>~%n blocos restantes</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="520"/>
+ <source>Downloaded %1 of %2 blocks of transaction history (%3% done).</source>
+ <translation>Recuperados %1 de %2 blocos do histórico de transações (%3% completo)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="247"/>
+ <source>&amp;Export...</source>
+ <translation>&amp;Exportar...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="246"/>
+ <source>Show or hide the Bitcoin window</source>
+ <translation>Mostrar ou Ocultar a janela Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="248"/>
+ <source>Export the data in the current tab to a file</source>
+ <translation>Exportar os dados no separador actual para um ficheiro</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="250"/>
+ <source>Encrypt or decrypt wallet</source>
+ <translation>Encriptar ou desencriptar carteira</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="253"/>
+ <source>Backup wallet to another location</source>
+ <translation>Faça uma cópia de segurança da carteira para outra localização</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="255"/>
+ <source>Change the passphrase used for wallet encryption</source>
+ <translation>Mudar a frase de segurança utilizada na encriptação da carteira</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="256"/>
+ <source>&amp;Debug window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="257"/>
+ <source>Open debugging and diagnostic console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="280"/>
+ <source>&amp;File</source>
+ <translation>&amp;Ficheiro</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="289"/>
+ <source>&amp;Settings</source>
+ <translation>&amp;Configurações</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="295"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Ajuda</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="304"/>
+ <source>Tabs toolbar</source>
+ <translation>Barra de separadores</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="315"/>
+ <source>Actions toolbar</source>
+ <translation>Barra de ações</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="327"/>
+ <source>[testnet]</source>
+ <translation>[testnet]</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="391"/>
+ <source>Bitcoin client</source>
+ <translation>Cliente Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="419"/>
+ <source>bitcoin-qt</source>
+ <translation>bitcoin-qt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="483"/>
+ <source>%n active connection(s) to Bitcoin network</source>
+ <translation><numerusform>%n ligação ativa à rede Bitcoin</numerusform><numerusform>%n ligações ativas à rede Bitcoin</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="532"/>
+ <source>Downloaded %1 blocks of transaction history.</source>
+ <translation>Recuperados %1 blocos do histórico de transações.</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="547"/>
+ <source>%n second(s) ago</source>
+ <translation><numerusform>%n segundo</numerusform><numerusform>%n segundos</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="551"/>
+ <source>%n minute(s) ago</source>
+ <translation><numerusform>%n minutos</numerusform><numerusform>%n minutos</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="555"/>
+ <source>%n hour(s) ago</source>
+ <translation><numerusform>%n hora</numerusform><numerusform>%n horas</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../bitcoingui.cpp" line="559"/>
+ <source>%n day(s) ago</source>
+ <translation><numerusform>%n dia</numerusform><numerusform>%n dias</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="565"/>
+ <source>Up to date</source>
+ <translation>Atualizado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="570"/>
+ <source>Catching up...</source>
+ <translation>Recuperando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="578"/>
+ <source>Last received block was generated %1.</source>
+ <translation>Último bloco recebido foi gerado há %1.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="634"/>
+ <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 transação tem um tamanho superior ao limite máximo. Poderá enviá-la pagando uma taxa de %1 que será entregue ao nó que processar a sua transação e ajudará a suportar a rede. Deseja pagar a taxa?</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="639"/>
+ <source>Confirm transaction fee</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="666"/>
+ <source>Sent transaction</source>
+ <translation>Transação enviada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="667"/>
+ <source>Incoming transaction</source>
+ <translation>Transação recebida</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="668"/>
+ <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="793"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
+ <translation>A carteira está &lt;b&gt;encriptada&lt;/b&gt; e atualmente &lt;b&gt;desbloqueada&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="801"/>
+ <source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</source>
+ <translation>A carteira está &lt;b&gt;encriptada&lt;/b&gt; e atualmente &lt;b&gt;bloqueada&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="824"/>
+ <source>Backup Wallet</source>
+ <translation>Cópia de Segurança da Carteira</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="824"/>
+ <source>Wallet Data (*.dat)</source>
+ <translation>Dados da Carteira (*.dat)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="827"/>
+ <source>Backup Failed</source>
+ <translation>Cópia de Segurança Falhada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="827"/>
+ <source>There was an error trying to save the wallet data to the new location.</source>
+ <translation>Ocorreu um erro ao tentar guardar os dados da carteira na nova localização.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoin.cpp" line="127"/>
+ <source>A fatal error occured. Bitcoin can no longer continue safely and will quit.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>DisplayOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="273"/>
+ <source>&amp;Unit to show amounts in: </source>
+ <translation>&amp;Unidade a usar: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="277"/>
+ <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
+ <translation>Escolha a subdivisão unitária a ser mostrada por defeito na aplicação e ao enviar moedas</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="284"/>
+ <source>&amp;Display addresses in transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="285"/>
+ <source>Whether to show Bitcoin addresses in the transaction list</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>EditAddressDialog</name>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="14"/>
+ <source>Edit Address</source>
+ <translation>Editar Endereço</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="25"/>
+ <source>&amp;Label</source>
+ <translation>&amp;Rótulo</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="35"/>
+ <source>The label associated with this address book entry</source>
+ <translation>O rótulo a ser associado com esta entrada do livro de endereços</translation>
+ </message>
+ <message>
+ <location filename="../forms/editaddressdialog.ui" line="42"/>
+ <source>&amp;Address</source>
+ <translation>&amp;Endereço</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>O endereço associado com esta entrada do livro de endereços. Apenas poderá ser modificado para endereços de saída.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="20"/>
+ <source>New receiving address</source>
+ <translation>Novo endereço de entrada</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="24"/>
+ <source>New sending address</source>
+ <translation>Novo endereço de saída</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="27"/>
+ <source>Edit receiving address</source>
+ <translation>&amp;Ajuda</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="31"/>
+ <source>Edit sending address</source>
+ <translation>Editar endereço de saída</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="91"/>
+ <source>The entered address &quot;%1&quot; is already in the address book.</source>
+ <translation>O endereço introduzido &quot;%1&quot; já se encontra no livro de endereços.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="96"/>
+ <source>The entered address &quot;%1&quot; is not a valid bitcoin address.</source>
+ <translation>O endereço introduzido &quot;%1&quot; não é um endereço bitcoin válido.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="101"/>
+ <source>Could not unlock wallet.</source>
+ <translation>Impossível desbloquear carteira.</translation>
+ </message>
+ <message>
+ <location filename="../editaddressdialog.cpp" line="106"/>
+ <source>New key generation failed.</source>
+ <translation>Falha ao gerar nova chave.</translation>
+ </message>
+</context>
+<context>
+ <name>MainOptionsPage</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="171"/>
+ <source>&amp;Start Bitcoin on window system startup</source>
+ <translation>&amp;Iniciar Bitcoin ao iniciar o sistema</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="172"/>
+ <source>Automatically start Bitcoin after the computer is turned on</source>
+ <translation>Começar o Bitcoin automaticamente ao iniciar o computador</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="176"/>
+ <source>&amp;Minimize to the tray instead of the taskbar</source>
+ <translation>&amp;Minimizar para a bandeja e não para a barra de ferramentas</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="177"/>
+ <source>Show only a tray icon after minimizing the window</source>
+ <translation>Apenas mostrar o ícone da bandeja depois de minimizar a janela</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="185"/>
+ <source>Map port using &amp;UPnP</source>
+ <translation>Mapear porta usando &amp;UPnP</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="186"/>
+ <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation>Abrir a porta do cliente bitcoin automaticamente no seu router. Isto penas funciona se o seu router suportar UPnP e este se encontrar ligado.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="180"/>
+ <source>M&amp;inimize on close</source>
+ <translation>M&amp;inimizar ao fechar</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="181"/>
+ <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 ao invés de sair da aplicação quando a janela é fechada. Com esta opção selecionada, a aplicação apenas será encerrada quando escolher Sair da aplicação no menú.</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="189"/>
+ <source>&amp;Connect through SOCKS4 proxy:</source>
+ <translation>&amp;Ligar através de proxy SOCKS4:</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="190"/>
+ <source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
+ <translation>Ligar à rede Bitcoin através de um proxy SOCKS4 (p.ex. quando ligar através de Tor)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="195"/>
+ <source>Proxy &amp;IP: </source>
+ <translation>&amp;IP do Proxy: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="201"/>
+ <source>IP address of the proxy (e.g. 127.0.0.1)</source>
+ <translation>Endereço IP do proxy (p.ex. 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="204"/>
+ <source>&amp;Port: </source>
+ <translation>&amp;Porta: </translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="210"/>
+ <source>Port of the proxy (e.g. 1234)</source>
+ <translation>Porta do proxy (p.ex. 1234)</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="232"/>
+ <source>Detach databases at shutdown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="233"/>
+ <source>Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="222"/>
+ <source>Pay transaction &amp;fee</source>
+ <translation>Pagar &amp;taxa de transação</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="216"/>
+ <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 de transação opcional por kB que ajuda a assegurar que as suas transações serão processadas rapidamente. A maioria das transações tem 1 kB. Taxa de 0.01 recomendada.</translation>
+ </message>
+</context>
+<context>
+ <name>MessagePage</name>
+ <message>
+ <location filename="../forms/messagepage.ui" line="14"/>
+ <source>Message</source>
+ <translation>Mensagem</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="20"/>
+ <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
+ <translation>Pode assinar mensagens com os seus endereços para provar que são seus. Tenha atenção ao assinar mensagens ambíguas, pois ataques de phishing podem tentar enganá-lo, de modo a assinar a sua identidade para os atacantes. Apenas assine declarações completamente detalhadas com as quais concorde.</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="38"/>
+ <source>The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>O endereço a utilizar para assinar a mensagem (p.ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="48"/>
+ <source>Choose adress from address book</source>
+ <translation>Escolher endereço </translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="58"/>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="71"/>
+ <source>Paste address from clipboard</source>
+ <translation>Paste address from clipboard</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="81"/>
+ <source>Alt+P</source>
+ <translation>Alt+P</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="93"/>
+ <source>Enter the message you want to sign here</source>
+ <translation>Escreva aqui a mensagem que deseja assinar</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="128"/>
+ <source>Copy the current signature to the system clipboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="131"/>
+ <source>&amp;Copy Signature</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="142"/>
+ <source>Reset all sign message fields</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="145"/>
+ <source>Clear &amp;All</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="30"/>
+ <source>Click &quot;Sign Message&quot; to get signature</source>
+ <translation>Clique &quot;Assinar mensagem&quot; para aceder á assinatura</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="114"/>
+ <source>Sign a message to prove you own this address</source>
+ <translation>Assine uma mensagem para provar que é dono deste endereço</translation>
+ </message>
+ <message>
+ <location filename="../forms/messagepage.ui" line="117"/>
+ <source>&amp;Sign Message</source>
+ <translation>&amp;Assinar Mensagem</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="79"/>
+ <location filename="../messagepage.cpp" line="94"/>
+ <location filename="../messagepage.cpp" line="106"/>
+ <source>Error signing</source>
+ <translation>Erro ao assinar</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="79"/>
+ <source>%1 is not a valid address.</source>
+ <translation>%1 não é um endereço válido.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="94"/>
+ <source>Private key for %1 is not available.</source>
+ <translation>A chave privada para %1 não está disponível.</translation>
+ </message>
+ <message>
+ <location filename="../messagepage.cpp" line="106"/>
+ <source>Sign failed</source>
+ <translation>Falha ao assinar</translation>
+ </message>
+</context>
+<context>
+ <name>OptionsDialog</name>
+ <message>
+ <location filename="../optionsdialog.cpp" line="80"/>
+ <source>Main</source>
+ <translation>Geral</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="85"/>
+ <source>Display</source>
+ <translation>Janela</translation>
+ </message>
+ <message>
+ <location filename="../optionsdialog.cpp" line="105"/>
+ <source>Options</source>
+ <translation>Opções</translation>
+ </message>
+</context>
+<context>
+ <name>OverviewPage</name>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="14"/>
+ <source>Form</source>
+ <translation>Formulário</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Balance:</source>
+ <translation>Saldo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="47"/>
+ <source>123.456 BTC</source>
+ <translation>123.456 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="54"/>
+ <source>Number of transactions:</source>
+ <translation>Número de transações:</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>Não confirmado:</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="75"/>
+ <source>0 BTC</source>
+ <translation>0 BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="88"/>
+ <source>Wallet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="124"/>
+ <source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Transações recentes&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="103"/>
+ <source>Your current balance</source>
+ <translation>O seu 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 transações ainda não confirmadas, e que não estão contabilizadas ainda no seu saldo actual</translation>
+ </message>
+ <message>
+ <location filename="../overviewpage.cpp" line="111"/>
+ <source>Total number of transactions in wallet</source>
+ <translation>Número total de transações na carteira</translation>
+ </message>
+</context>
+<context>
+ <name>QRCodeDialog</name>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="14"/>
+ <source>QR-Code Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="32"/>
+ <source>QR Code</source>
+ <translation>Código QR</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="55"/>
+ <source>Request Payment</source>
+ <translation>Requisitar Pagamento</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="70"/>
+ <source>Amount:</source>
+ <translation>Quantia:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="105"/>
+ <source>BTC</source>
+ <translation>BTC</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="121"/>
+ <source>Label:</source>
+ <translation>Rótulo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="144"/>
+ <source>Message:</source>
+ <translation>Message:</translation>
+ </message>
+ <message>
+ <location filename="../forms/qrcodedialog.ui" line="186"/>
+ <source>&amp;Save As...</source>
+ <translation>&amp;Salvar Como...</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="46"/>
+ <source>Error encoding URI into QR Code.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="64"/>
+ <source>Resulting URI too long, try to reduce the text for label / message.</source>
+ <translation>URI resultante muito longo. Tente reduzir o texto do rótulo / mensagem.</translation>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="121"/>
+ <source>Save QR Code</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../qrcodedialog.cpp" line="121"/>
+ <source>PNG Images (*.png)</source>
+ <translation>Imagens PNG (*.png)</translation>
+ </message>
+</context>
+<context>
+ <name>RPCConsole</name>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="14"/>
+ <source>Bitcoin debug window</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="24"/>
+ <source>Information</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="33"/>
+ <source>Client name</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="40"/>
+ <location filename="../forms/rpcconsole.ui" line="60"/>
+ <location filename="../forms/rpcconsole.ui" line="106"/>
+ <location filename="../forms/rpcconsole.ui" line="156"/>
+ <location filename="../forms/rpcconsole.ui" line="176"/>
+ <location filename="../forms/rpcconsole.ui" line="196"/>
+ <location filename="../forms/rpcconsole.ui" line="229"/>
+ <source>N/A</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="53"/>
+ <source>Client version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="79"/>
+ <source>Version</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="92"/>
+ <source>Network</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="99"/>
+ <source>Number of connections</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="119"/>
+ <source>On testnet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="142"/>
+ <source>Block chain</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="149"/>
+ <source>Current number of blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="169"/>
+ <source>Estimated total blocks</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="189"/>
+ <source>Last block time</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="222"/>
+ <source>Build date</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="237"/>
+ <source>Console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="278"/>
+ <source>&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/rpcconsole.ui" line="294"/>
+ <source>Clear console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="97"/>
+ <source>&amp;Copy</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="195"/>
+ <source>Welcome to the bitcoin RPC console.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="196"/>
+ <source>Use up and down arrows to navigate history, and Ctrl-L to clear screen.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../rpcconsole.cpp" line="197"/>
+ <source>Type &quot;help&quot; for an overview of available commands.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>SendCoinsDialog</name>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="14"/>
+ <location filename="../sendcoinsdialog.cpp" line="122"/>
+ <location filename="../sendcoinsdialog.cpp" line="127"/>
+ <location filename="../sendcoinsdialog.cpp" line="132"/>
+ <location filename="../sendcoinsdialog.cpp" line="137"/>
+ <location filename="../sendcoinsdialog.cpp" line="143"/>
+ <location filename="../sendcoinsdialog.cpp" line="148"/>
+ <location filename="../sendcoinsdialog.cpp" line="153"/>
+ <source>Send Coins</source>
+ <translation>Enviar Moedas</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="64"/>
+ <source>Send to multiple recipients at once</source>
+ <translation>Enviar para múltiplos destinatários de uma vez</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="67"/>
+ <source>&amp;Add Recipient</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="84"/>
+ <source>Remove all transaction fields</source>
+ <translation>Remover todos os campos da transação</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="87"/>
+ <source>Clear all</source>
+ <translation>Apagar tudo</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>Confirme ação de envio</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsdialog.ui" line="147"/>
+ <source>&amp;Send</source>
+ <translation>&amp;Enviar</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="94"/>
+ <source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
+ <translation>&lt;b&gt;%1&lt;/b&gt; para %2 (%3)</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="99"/>
+ <source>Confirm send coins</source>
+ <translation>Confirme envio de moedas</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source>Are you sure you want to send %1?</source>
+ <translation>Tem a certeza que deseja enviar %1?</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="100"/>
+ <source> and </source>
+ <translation> e </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="123"/>
+ <source>The recepient address is not valid, please recheck.</source>
+ <translation>O endereço de destino não é válido, por favor verifique.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="128"/>
+ <source>The amount to pay must be larger than 0.</source>
+ <translation>A quantia a pagar deverá ser maior que 0.</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="133"/>
+ <source>Amount exceeds your balance</source>
+ <translation>A quantia excede o seu saldo</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="138"/>
+ <source>Total exceeds your balance when the %1 transaction fee is included</source>
+ <translation>O total excede o seu saldo quando a taxa de transação de %1 for incluída</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="144"/>
+ <source>Duplicate address found, can only send to each address once in one send operation</source>
+ <translation>Endereço duplicado encontrado, apenas poderá enviar uma vez para cada endereço por cada operação de envio</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="149"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Erro: Criação da transação falhou </translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsdialog.cpp" line="154"/>
+ <source>Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
+ <translation>Erro: A transação foi rejeitada. Isso poderá acontecer se algumas das moedas na sua carteira já tiverem sido gastas, se por exemplo tiver usado uma cópia do ficheiro wallet.dat e as moedas foram gastas na cópia mas não foram marcadas como gastas aqui.</translation>
+ </message>
+</context>
+<context>
+ <name>SendCoinsEntry</name>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="14"/>
+ <source>Form</source>
+ <translation>Formulário</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="29"/>
+ <source>A&amp;mount:</source>
+ <translation>Q&amp;uantia:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="42"/>
+ <source>Pay &amp;To:</source>
+ <translation>Pagar &amp;A:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="66"/>
+ <location filename="../sendcoinsentry.cpp" line="25"/>
+ <source>Enter a label for this address to add it to your address book</source>
+ <translation>Escreva um rótulo para este endereço para o adicionar ao seu livro de endereços</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="75"/>
+ <source>&amp;Label:</source>
+ <translation>&amp;Rótulo:</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="93"/>
+ <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>O endereço para onde enviar o pagamento (p.ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+ <message>
+ <location filename="../forms/sendcoinsentry.ui" line="103"/>
+ <source>Choose address from address book</source>
+ <translation>Escolher endereço do livro de endereços</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>Cole endereço da área de transferência</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>Remover este destinatário</translation>
+ </message>
+ <message>
+ <location filename="../sendcoinsentry.cpp" line="26"/>
+ <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <translation>Introduza um endereço Bitcoin (p.ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDesc</name>
+ <message>
+ <location filename="../transactiondesc.cpp" line="20"/>
+ <source>Open for %1 blocks</source>
+ <translation>Aberto para %1 blocos</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="22"/>
+ <source>Open until %1</source>
+ <translation>Aberto até %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="28"/>
+ <source>%1/offline?</source>
+ <translation>%1/desligado?</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="30"/>
+ <source>%1/unconfirmed</source>
+ <translation>%1/não confirmada</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="32"/>
+ <source>%1 confirmations</source>
+ <translation>%1 confirmações</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="50"/>
+ <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="55"/>
+ <source>, has not been successfully broadcast yet</source>
+ <translation>, ainda não foi transmitida com sucesso</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="57"/>
+ <source>, broadcast through %1 node</source>
+ <translation>, transmitida através de %1 nó</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="59"/>
+ <source>, broadcast through %1 nodes</source>
+ <translation>, transmitida através de %1 nós</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="63"/>
+ <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="70"/>
+ <source>&lt;b&gt;Source:&lt;/b&gt; Generated&lt;br&gt;</source>
+ <translation>&lt;b&gt;Fonte:&lt;/b&gt; Geradas&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="76"/>
+ <location filename="../transactiondesc.cpp" line="93"/>
+ <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="93"/>
+ <source>unknown</source>
+ <translation>desconhecido</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="94"/>
+ <location filename="../transactiondesc.cpp" line="117"/>
+ <location filename="../transactiondesc.cpp" line="176"/>
+ <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="97"/>
+ <source> (yours, label: </source>
+ <translation> (seu, rótulo: </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="99"/>
+ <source> (yours)</source>
+ <translation> (seu)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="134"/>
+ <location filename="../transactiondesc.cpp" line="148"/>
+ <location filename="../transactiondesc.cpp" line="193"/>
+ <location filename="../transactiondesc.cpp" line="210"/>
+ <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="136"/>
+ <source>(%1 matures in %2 more blocks)</source>
+ <translation>(%1 matura daqui por %2 blocos)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="140"/>
+ <source>(not accepted)</source>
+ <translation>(não aceite)</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="184"/>
+ <location filename="../transactiondesc.cpp" line="192"/>
+ <location filename="../transactiondesc.cpp" line="207"/>
+ <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="198"/>
+ <source>&lt;b&gt;Transaction fee:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Taxa de transação:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="214"/>
+ <source>&lt;b&gt;Net amount:&lt;/b&gt; </source>
+ <translation>&lt;b&gt;Valor líquido:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="220"/>
+ <source>Message:</source>
+ <translation>Mensagem:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="222"/>
+ <source>Comment:</source>
+ <translation>Comentário:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="224"/>
+ <source>Transaction ID:</source>
+ <translation>ID da Transação:</translation>
+ </message>
+ <message>
+ <location filename="../transactiondesc.cpp" line="227"/>
+ <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>Moedas geradas deverão maturar por 120 blocos antes de poderem ser gastas. Quando gerou este bloco, ele foi transmitido para a rede para ser incluído na cadeia de blocos. Se a inclusão na cadeia de blocos falhar, irá mudar o estado para &quot;não aceite&quot; e as moedas não poderão ser gastas. Isto poderá acontecer ocasionalmente se outro nó da rede gerar um bloco a poucos segundos de diferença do seu.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionDescDialog</name>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="14"/>
+ <source>Transaction details</source>
+ <translation>Detalhes da transação</translation>
+ </message>
+ <message>
+ <location filename="../forms/transactiondescdialog.ui" line="20"/>
+ <source>This pane shows a detailed description of the transaction</source>
+ <translation>Esta janela mostra uma descrição detalhada da transação</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>Endereço</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="214"/>
+ <source>Amount</source>
+ <translation>Quantia</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="275"/>
+ <source>Open for %n block(s)</source>
+ <translation><numerusform>Aberto para %n bloco</numerusform><numerusform>Aberto para %n blocos</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="278"/>
+ <source>Open until %1</source>
+ <translation>Aberto até %1</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="281"/>
+ <source>Offline (%1 confirmations)</source>
+ <translation>Desligado (%1 confirmação)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="284"/>
+ <source>Unconfirmed (%1 of %2 confirmations)</source>
+ <translation>Não confirmada (%1 de %2 confirmações)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="287"/>
+ <source>Confirmed (%1 confirmations)</source>
+ <translation>Confirmada (%1 confirmação)</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../transactiontablemodel.cpp" line="295"/>
+ <source>Mined balance will be available in %n more blocks</source>
+ <translation><numerusform>Saldo minado estará disponível daqui por %n bloco</numerusform><numerusform>Saldo minado estará disponível daqui por %n blocos</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="301"/>
+ <source>This block was not received by any other nodes and will probably not be accepted!</source>
+ <translation>Este bloco não foi recebido por outros nós e provavelmente não será aceite pela rede!</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="304"/>
+ <source>Generated but not accepted</source>
+ <translation>Gerado mas não aceite</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="347"/>
+ <source>Received with</source>
+ <translation>Recebido com</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="349"/>
+ <source>Received from</source>
+ <translation>Recebido de</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="352"/>
+ <source>Sent to</source>
+ <translation>Enviado para</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="354"/>
+ <source>Payment to yourself</source>
+ <translation>Pagamento ao próprio</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="356"/>
+ <source>Mined</source>
+ <translation>Minado</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="394"/>
+ <source>(n/a)</source>
+ <translation>(n/d)</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="593"/>
+ <source>Transaction status. Hover over this field to show number of confirmations.</source>
+ <translation>Estado da transação. Pairar por cima deste campo para mostrar o número de confirmações.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="595"/>
+ <source>Date and time that the transaction was received.</source>
+ <translation>Data e hora a que esta transação foi recebida.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="597"/>
+ <source>Type of transaction.</source>
+ <translation>Tipo de transação.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="599"/>
+ <source>Destination address of transaction.</source>
+ <translation>Endereço de destino da transação.</translation>
+ </message>
+ <message>
+ <location filename="../transactiontablemodel.cpp" line="601"/>
+ <source>Amount removed from or added to balance.</source>
+ <translation>Quantia retirada ou adicionada ao saldo.</translation>
+ </message>
+</context>
+<context>
+ <name>TransactionView</name>
+ <message>
+ <location filename="../transactionview.cpp" line="55"/>
+ <location filename="../transactionview.cpp" line="71"/>
+ <source>All</source>
+ <translation>Todas</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="56"/>
+ <source>Today</source>
+ <translation>Hoje</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 mês</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="59"/>
+ <source>Last month</source>
+ <translation>Mês passado</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="60"/>
+ <source>This year</source>
+ <translation>Este ano</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="61"/>
+ <source>Range...</source>
+ <translation>Período...</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="72"/>
+ <source>Received with</source>
+ <translation>Recebida com</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="74"/>
+ <source>Sent to</source>
+ <translation>Enviada para</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="76"/>
+ <source>To yourself</source>
+ <translation>Para si</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="77"/>
+ <source>Mined</source>
+ <translation>Minadas</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="78"/>
+ <source>Other</source>
+ <translation>Outras</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="84"/>
+ <source>Enter address or label to search</source>
+ <translation>Escreva endereço ou rótulo a procurar</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="90"/>
+ <source>Min amount</source>
+ <translation>Quantia mínima</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="124"/>
+ <source>Copy address</source>
+ <translation>Copiar endereço</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="125"/>
+ <source>Copy label</source>
+ <translation>Copiar rótulo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="126"/>
+ <source>Copy amount</source>
+ <translation>Copiar quantia</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="127"/>
+ <source>Edit label</source>
+ <translation>Editar rótulo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="128"/>
+ <source>Show transaction details</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="268"/>
+ <source>Export Transaction Data</source>
+ <translation>Exportar Dados das Transações</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="269"/>
+ <source>Comma separated file (*.csv)</source>
+ <translation>Ficheiro separado por vírgula (*.csv)</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="277"/>
+ <source>Confirmed</source>
+ <translation>Confirmada</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="278"/>
+ <source>Date</source>
+ <translation>Data</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="279"/>
+ <source>Type</source>
+ <translation>Tipo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="280"/>
+ <source>Label</source>
+ <translation>Rótulo</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="281"/>
+ <source>Address</source>
+ <translation>Endereço</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="282"/>
+ <source>Amount</source>
+ <translation>Quantia</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="283"/>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Error exporting</source>
+ <translation>Erro ao exportar</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="287"/>
+ <source>Could not write to file %1.</source>
+ <translation>Impossível escrever para o ficheiro %1.</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="382"/>
+ <source>Range:</source>
+ <translation>Período:</translation>
+ </message>
+ <message>
+ <location filename="../transactionview.cpp" line="390"/>
+ <source>to</source>
+ <translation>até</translation>
+ </message>
+</context>
+<context>
+ <name>WalletModel</name>
+ <message>
+ <location filename="../walletmodel.cpp" line="142"/>
+ <source>Sending...</source>
+ <translation>Enviando...</translation>
+ </message>
+</context>
+<context>
+ <name>bitcoin-core</name>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="12"/>
+ <source>Bitcoin version</source>
+ <translation>Versão Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="13"/>
+ <source>Usage:</source>
+ <translation>Utilização:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="14"/>
+ <source>Send command to -server or bitcoind</source>
+ <translation>Enviar comando para -server ou bitcoind</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="15"/>
+ <source>List commands</source>
+ <translation>Listar comandos</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="16"/>
+ <source>Get help for a command</source>
+ <translation>Obter ajuda para um comando</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="17"/>
+ <source>Options:</source>
+ <translation>Opções:</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="18"/>
+ <source>Specify configuration file (default: bitcoin.conf)</source>
+ <translation>Especificar ficheiro de configuração (por defeito: bitcoin.conf)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="19"/>
+ <source>Specify pid file (default: bitcoind.pid)</source>
+ <translation>Especificar ficheiro pid (por defeito: bitcoind.pid)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="20"/>
+ <source>Generate coins</source>
+ <translation>Gerar moedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="21"/>
+ <source>Don&apos;t generate coins</source>
+ <translation>Não gerar moedas</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="22"/>
+ <source>Start minimized</source>
+ <translation>Iniciar minimizado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="23"/>
+ <source>Show splash screen on startup (default: 1)</source>
+ <translation>Mostrar animação ao iniciar (por defeito: 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="24"/>
+ <source>Specify data directory</source>
+ <translation>Especificar pasta de dados</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="25"/>
+ <source>Set database cache size in megabytes (default: 25)</source>
+ <translation>Definir o tamanho da cache de base de dados em megabytes (por defeito: 25)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="26"/>
+ <source>Set database disk log size in megabytes (default: 100)</source>
+ <translation>Definir o tamanho de registo do disco de base de dados em megabytes (por defeito: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="27"/>
+ <source>Specify connection timeout (in milliseconds)</source>
+ <translation>Especificar tempo de espera da ligação (em millisegundos)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="28"/>
+ <source>Connect through socks4 proxy</source>
+ <translation>Ligar através de um proxy socks4</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="29"/>
+ <source>Allow DNS lookups for addnode and connect</source>
+ <translation>Permitir procuras DNS para adicionar nós e ligação</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="30"/>
+ <source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
+ <translation>Escute por ligações em &lt;port&gt; (por defeito: 8333 ou testnet: 18333)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="31"/>
+ <source>Maintain at most &lt;n&gt; connections to peers (default: 125)</source>
+ <translation>Manter no máximo &lt;n&gt; ligações a outros nós da rede (por defeito: 125)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="33"/>
+ <source>Connect only to the specified node</source>
+ <translation>Apenas ligar ao nó especificado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="38"/>
+ <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
+ <translation>Tolerância para desligar nós mal-formados (por defeito: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="39"/>
+ <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
+ <translation>Número de segundos a impedir que nós mal-formados se liguem de novo (por defeito: 86400)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="42"/>
+ <source>Maximum per-connection receive buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>Armazenamento intermédio de recepção por ligação, &lt;n&gt;*1000 bytes (por defeito: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="43"/>
+ <source>Maximum per-connection send buffer, &lt;n&gt;*1000 bytes (default: 10000)</source>
+ <translation>Armazenamento intermédio de envio por ligação, &lt;n&gt;*1000 bytes (por defeito: 10000)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="47"/>
+ <source>Accept command line and JSON-RPC commands</source>
+ <translation>Aceitar comandos da consola e JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="48"/>
+ <source>Run in the background as a daemon and accept commands</source>
+ <translation>Correr o processo como um daemon e aceitar comandos</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="49"/>
+ <source>Use the test network</source>
+ <translation>Utilizar a rede de testes - testnet</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="50"/>
+ <source>Output extra debugging information</source>
+ <translation>Produzir informação de depuração extraordinária</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="51"/>
+ <source>Prepend debug output with timestamp</source>
+ <translation>Preceder informação de depuração com selo temporal</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="52"/>
+ <source>Send trace/debug info to console instead of debug.log file</source>
+ <translation>Enviar informação de rastreio/depuração para a consola e não para o ficheiro debug.log</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="53"/>
+ <source>Send trace/debug info to debugger</source>
+ <translation>Enviar informação de rastreio/depuração para o depurador</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="54"/>
+ <source>Username for JSON-RPC connections</source>
+ <translation>Nome de utilizador para ligações JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="55"/>
+ <source>Password for JSON-RPC connections</source>
+ <translation>Palavra-passe para ligações JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="56"/>
+ <source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332)</source>
+ <translation>Escutar por ligações JSON-RPC na porta &lt;port&gt; (por defeito: 8332)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="57"/>
+ <source>Allow JSON-RPC connections from specified IP address</source>
+ <translation>Permitir ligações JSON-RPC do endereço IP especificado</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="58"/>
+ <source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
+ <translation>Enviar comandos para o nó a correr em &lt;ip&gt; (por defeito: 127.0.0.1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="59"/>
+ <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
+ <translation>Executar comando quando mudar o melhor bloco (na consola, %s é substituído pela hash do bloco)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="62"/>
+ <source>Upgrade wallet to latest format</source>
+ <translation>Atualize a carteira para o formato mais recente</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="63"/>
+ <source>Set key pool size to &lt;n&gt; (default: 100)</source>
+ <translation>Definir o tamanho da memória de chaves para &lt;n&gt; (por defeito: 100)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="64"/>
+ <source>Rescan the block chain for missing wallet transactions</source>
+ <translation>Reexaminar a cadeia de blocos para transações em falta na carteira</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="65"/>
+ <source>How many blocks to check at startup (default: 2500, 0 = all)</source>
+ <translation>Verificar quantos blocos ao iniciar (por defeito: 2500, 0 = todos)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="66"/>
+ <source>How thorough the block verification is (0-6, default: 1)</source>
+ <translation>Minuciosidade da verificação de blocos é (0-6, por defeito: 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="67"/>
+ <source>
+SSL options: (see the Bitcoin Wiki for SSL setup instructions)</source>
+ <translation>
+Opções SSL: (ver a Wiki Bitcoin para instruções de configuração SSL)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="70"/>
+ <source>Use OpenSSL (https) for JSON-RPC connections</source>
+ <translation>Usar OpenSSL (https) para ligações JSON-RPC</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="71"/>
+ <source>Server certificate file (default: server.cert)</source>
+ <translation>Ficheiro de certificado do servidor (por defeito: server.cert)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="72"/>
+ <source>Server private key (default: server.pem)</source>
+ <translation>Chave privada do servidor (por defeito: server.pem)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="73"/>
+ <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
+ <translation>Cifras aceitáveis (por defeito: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="76"/>
+ <source>This help message</source>
+ <translation>Esta mensagem de ajuda</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="77"/>
+ <source>Usage</source>
+ <translation>Uso</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="78"/>
+ <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <translation>Impossível trancar a pasta de dados %s. Provavelmente o Bitcoin já está a ser executado.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="81"/>
+ <source>Bitcoin</source>
+ <translation>Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="82"/>
+ <source>Loading addresses...</source>
+ <translation>A carregar endereços...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="83"/>
+ <source>Error loading addr.dat</source>
+ <translation>Erro ao carregar addr.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="85"/>
+ <source>Error loading blkindex.dat</source>
+ <translation>Erro ao carregar blkindex.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="87"/>
+ <source>Error loading wallet.dat: Wallet corrupted</source>
+ <translation>Erro ao carregar wallet.dat: Carteira danificada</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="88"/>
+ <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <translation>Erro ao carregar wallet.dat: A Carteira requer uma versão mais recente do Bitcoin</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="89"/>
+ <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="90"/>
+ <source>Error loading wallet.dat</source>
+ <translation>Erro ao carregar wallet.dat</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="122"/>
+ <source>Error: Wallet locked, unable to create transaction </source>
+ <translation>Erro: Carteira bloqueada, incapaz de criar transação </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="123"/>
+ <source>Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds </source>
+ <translation>Erro: Esta transação requer uma taxa de transação mínima de %s devido á sua quantia, complexidade, ou uso de fundos recebidos recentemente </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="126"/>
+ <source>Error: Transaction creation failed </source>
+ <translation>Error: Transaction creation failed </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="127"/>
+ <source>Sending...</source>
+ <translation>Enviando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="128"/>
+ <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: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="132"/>
+ <source>Invalid amount</source>
+ <translation>Quantia inválida</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="133"/>
+ <source>Insufficient funds</source>
+ <translation>Insufficient funds</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="84"/>
+ <source>Loading block index...</source>
+ <translation>A carregar índice de blocos...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="32"/>
+ <source>Add a node to connect to and attempt to keep the connection open</source>
+ <translation>Adicione um nó ao qual se ligar e tentar manter a ligação aberta</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="34"/>
+ <source>Find peers using internet relay chat (default: 0)</source>
+ <translation>Encontrar pares usando IRC (por defeito: 0)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="35"/>
+ <source>Accept connections from outside (default: 1)</source>
+ <translation>Aceitar ligações externas (por defeito: 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="36"/>
+ <source>Set language, for example &quot;de_DE&quot; (default: system locale)</source>
+ <translation>Definir linguagem, por exemplo &quot;pt_PT&quot; (por defeito: linguagem do sistema)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="37"/>
+ <source>Find peers using DNS lookup (default: 1)</source>
+ <translation>Encontrar pares usando procura DNS (por defeito: 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="44"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 1)</source>
+ <translation>Usar Universal Plug and Play para mapear porta de escuta (por defeito: 1)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="45"/>
+ <source>Use Universal Plug and Play to map the listening port (default: 0)</source>
+ <translation>Usar Universal Plug and Play para mapear porta de escuta (por defeito: 0)</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="46"/>
+ <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="86"/>
+ <source>Loading wallet...</source>
+ <translation>A carregar carteira...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="91"/>
+ <source>Cannot downgrade wallet</source>
+ <translation>Impossível mudar a carteira para uma versão anterior</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="92"/>
+ <source>Cannot initialize keypool</source>
+ <translation>Impossível inicializar keypool</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="93"/>
+ <source>Cannot write default address</source>
+ <translation>Impossível escrever endereço por defeito</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="94"/>
+ <source>Rescanning...</source>
+ <translation>Reexaminando...</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="95"/>
+ <source>Done loading</source>
+ <translation>Carregamento completo</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="96"/>
+ <source>Invalid -proxy address</source>
+ <translation>Endereço -proxy inválido</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="97"/>
+ <source>Invalid amount for -paytxfee=&lt;amount&gt;</source>
+ <translation>Quantia inválida para -paytxfee=&lt;amount&gt;</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="98"/>
+ <source>Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction.</source>
+ <translation>Atenção: -paytxfee está definida com um valor muito alto. Esta é a taxa que irá pagar se enviar uma transação.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="101"/>
+ <source>Error: CreateThread(StartNode) failed</source>
+ <translation>Erro: Criação de segmento(StartNode) falhou</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="11"/>
+ <source>Warning: Disk space is low </source>
+ <translation>Atenção: Pouco espaço em disco </translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="8"/>
+ <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <translation>Incapaz de vincular à porta %d neste computador. Provavelmente o Bitcoin já está a funcionar.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="102"/>
+ <source>To use the %s option</source>
+ <translation>Para usar a opção %s</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="103"/>
+ <source>%s, you must set a rpcpassword in the configuration file:
+ %s
+It is recommended you use the following random password:
+rpcuser=bitcoinrpc
+rpcpassword=%s
+(you do not need to remember this password)
+If the file does not exist, create it with owner-readable-only file permissions.
+</source>
+ <translation>%s, deverá definir uma palavra-passe de RPC no ficheiro de configuração :
+ %s
+É recomendado que use a seguinte palavra-passe aleatória:
+rpcuser=bitcoinrpc
+rpcpassword=%s
+(não precisa recordar esta palavra-passe)
+Se o ficheiro não existir, crie-o com permissões de leitura apenas para o dono.
+</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="112"/>
+ <source>Error</source>
+ <translation>Erro</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="113"/>
+ <source>An error occured while setting up the RPC port %i for listening: %s</source>
+ <translation>Ocorreu um erro ao definir a porta de escuta %i do serviço RPC: %s</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="114"/>
+ <source>You must set rpcpassword=&lt;password&gt; in the configuration file:
+%s
+If the file does not exist, create it with owner-readable-only file permissions.</source>
+ <translation>Deverá definir rpcpassword=&lt;password&gt; no ficheiro de configuração:
+%s
+Se o ficheiro não existir, crie-o com permissões de leitura apenas para o dono.</translation>
+ </message>
+ <message>
+ <location filename="../bitcoinstrings.cpp" line="119"/>
+ <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>Atenção: Por favor verifique que a data e hora do seu computador estão correctas. Se o seu relógio não estiver certo o Bitcoin não irá funcionar correctamente.</translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/qt/messagepage.cpp b/src/qt/messagepage.cpp
index 18bb64fe6c..1f895e28ff 100644
--- a/src/qt/messagepage.cpp
+++ b/src/qt/messagepage.cpp
@@ -10,7 +10,6 @@
#include "main.h"
#include "wallet.h"
#include "init.h"
-#include "util.h"
#include "messagepage.h"
#include "ui_messagepage.h"
@@ -25,7 +24,16 @@ MessagePage::MessagePage(QWidget *parent) :
{
ui->setupUi(this);
+#if (QT_VERSION >= 0x040700)
+ /* Do not move this to the XML file, Qt before 4.7 will choke on it */
+ ui->signFrom->setPlaceholderText(tr("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"));
+ ui->signature->setPlaceholderText(tr("Click \"Sign Message\" to get signature"));
+#endif
+
GUIUtil::setupAddressWidget(ui->signFrom, this);
+ ui->signature->installEventFilter(this);
+
+ ui->signFrom->setFocus();
}
MessagePage::~MessagePage()
@@ -105,3 +113,23 @@ void MessagePage::on_signMessage_clicked()
ui->signature->setText(QString::fromStdString(EncodeBase64(&vchSig[0], vchSig.size())));
ui->signature->setFont(GUIUtil::bitcoinAddressFont());
}
+
+void MessagePage::on_clearButton_clicked()
+{
+ ui->signFrom->clear();
+ ui->message->clear();
+ ui->signature->clear();
+
+ ui->signFrom->setFocus();
+}
+
+bool MessagePage::eventFilter(QObject *object, QEvent *event)
+{
+ if(object == ui->signature && (event->type() == QEvent::MouseButtonPress ||
+ event->type() == QEvent::FocusIn))
+ {
+ ui->signature->selectAll();
+ return true;
+ }
+ return QDialog::eventFilter(object, event);
+}
diff --git a/src/qt/messagepage.h b/src/qt/messagepage.h
index 55e6228124..d668ae98d0 100644
--- a/src/qt/messagepage.h
+++ b/src/qt/messagepage.h
@@ -23,6 +23,9 @@ public:
void setAddress(QString);
+protected:
+ bool eventFilter(QObject *object, QEvent *event);
+
private:
Ui::MessagePage *ui;
WalletModel *model;
@@ -33,6 +36,7 @@ private slots:
void on_signMessage_clicked();
void on_copyToClipboard_clicked();
+ void on_clearButton_clicked();
};
#endif // MESSAGEPAGE_H
diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp
index 59c44ac5f9..7c6ad087cb 100644
--- a/src/qt/optionsdialog.cpp
+++ b/src/qt/optionsdialog.cpp
@@ -19,73 +19,103 @@
#include <QDoubleValidator>
#include <QRegExpValidator>
#include <QDialogButtonBox>
+#include <QDir>
+#include <QMessageBox>
-/* First page of options */
-class MainOptionsPage : public QWidget
+class OptionsPage: public QWidget
+{
+ Q_OBJECT
+public:
+ explicit OptionsPage(QWidget *parent=0): QWidget(parent) {}
+
+ virtual void setMapper(MonitoredDataMapper *mapper) = 0;
+};
+
+class MainOptionsPage: public OptionsPage
{
Q_OBJECT
public:
explicit MainOptionsPage(QWidget *parent=0);
- void setMapper(MonitoredDataMapper *mapper);
+ virtual void setMapper(MonitoredDataMapper *mapper);
private:
+ BitcoinAmountField *fee_edit;
QCheckBox *bitcoin_at_startup;
+ QCheckBox *detach_database;
+};
+
+class WindowOptionsPage: public OptionsPage
+{
+ Q_OBJECT
+public:
+ explicit WindowOptionsPage(QWidget *parent=0);
+
+ virtual void setMapper(MonitoredDataMapper *mapper);
+private:
#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;
- QCheckBox *detach_database;
- QLineEdit *proxy_ip;
- QLineEdit *proxy_port;
- BitcoinAmountField *fee_edit;
-
-signals:
-
-public slots:
-
};
-class DisplayOptionsPage : public QWidget
+class DisplayOptionsPage: public OptionsPage
{
Q_OBJECT
public:
explicit DisplayOptionsPage(QWidget *parent=0);
- void setMapper(MonitoredDataMapper *mapper);
+ virtual void setMapper(MonitoredDataMapper *mapper);
private:
+ QValueComboBox *lang;
QValueComboBox *unit;
QCheckBox *display_addresses;
-signals:
+ bool restart_warning_displayed;
+private slots:
+ void showRestartWarning();
+};
-public slots:
+class NetworkOptionsPage: public OptionsPage
+{
+ Q_OBJECT
+public:
+ explicit NetworkOptionsPage(QWidget *parent=0);
+ virtual void setMapper(MonitoredDataMapper *mapper);
+private:
+ QCheckBox *map_port_upnp;
+ QCheckBox *connect_socks4;
+ QLineEdit *proxy_ip;
+ QLineEdit *proxy_port;
};
+
#include "optionsdialog.moc"
OptionsDialog::OptionsDialog(QWidget *parent):
QDialog(parent), contents_widget(0), pages_widget(0),
- model(0), main_page(0), display_page(0)
+ model(0)
{
contents_widget = new QListWidget();
contents_widget->setMaximumWidth(128);
pages_widget = new QStackedWidget();
- pages_widget->setMinimumWidth(300);
+ pages_widget->setMinimumWidth(500);
+ pages_widget->setMinimumHeight(300);
- QListWidgetItem *item_main = new QListWidgetItem(tr("Main"));
- contents_widget->addItem(item_main);
- main_page = new MainOptionsPage(this);
- pages_widget->addWidget(main_page);
+ pages.append(new MainOptionsPage(this));
+ pages.append(new NetworkOptionsPage(this));
+#ifndef Q_WS_MAC
+ /* Hide Window options on Mac as there are currently none available */
+ pages.append(new WindowOptionsPage(this));
+#endif
+ pages.append(new DisplayOptionsPage(this));
- QListWidgetItem *item_display = new QListWidgetItem(tr("Display"));
- contents_widget->addItem(item_display);
- display_page = new DisplayOptionsPage(this);
- pages_widget->addWidget(display_page);
+ foreach(OptionsPage *page, pages)
+ {
+ QListWidgetItem *item = new QListWidgetItem(page->windowTitle());
+ contents_widget->addItem(item);
+ pages_widget->addWidget(page);
+ }
contents_widget->setCurrentRow(0);
@@ -125,8 +155,11 @@ void OptionsDialog::setModel(OptionsModel *model)
this->model = model;
mapper->setModel(model);
- main_page->setMapper(mapper);
- display_page->setMapper(mapper);
+
+ foreach(OptionsPage *page, pages)
+ {
+ page->setMapper(mapper);
+ }
mapper->toFirst();
}
@@ -163,15 +196,122 @@ void OptionsDialog::disableApply()
apply_button->setEnabled(false);
}
+/* Main options */
MainOptionsPage::MainOptionsPage(QWidget *parent):
- QWidget(parent)
+ OptionsPage(parent)
{
QVBoxLayout *layout = new QVBoxLayout();
+ setWindowTitle(tr("Main"));
+
+ 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);
- 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"));
+ bitcoin_at_startup = new QCheckBox(tr("&Start Bitcoin on system login"));
+ bitcoin_at_startup->setToolTip(tr("Automatically start Bitcoin after logging in to the system"));
layout->addWidget(bitcoin_at_startup);
+ detach_database = new QCheckBox(tr("&Detach databases at shutdown"));
+ detach_database->setToolTip(tr("Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached."));
+ layout->addWidget(detach_database);
+
+ layout->addStretch(1); // Extra space at bottom
+ setLayout(layout);
+}
+
+void MainOptionsPage::setMapper(MonitoredDataMapper *mapper)
+{
+ // Map model to widgets
+ mapper->addMapping(fee_edit, OptionsModel::Fee);
+ mapper->addMapping(bitcoin_at_startup, OptionsModel::StartAtStartup);
+ mapper->addMapping(detach_database, OptionsModel::DetachDatabases);
+}
+
+/* Display options */
+DisplayOptionsPage::DisplayOptionsPage(QWidget *parent):
+ OptionsPage(parent), restart_warning_displayed(false)
+{
+ setWindowTitle(tr("Display"));
+
+ QVBoxLayout *layout = new QVBoxLayout();
+
+ QHBoxLayout *lang_hbox = new QHBoxLayout();
+ lang_hbox->addSpacing(18);
+ QLabel *lang_label = new QLabel(tr("User Interface &Language:"));
+ lang_hbox->addWidget(lang_label);
+ lang = new QValueComboBox(this);
+ // Make list of languages
+ QDir translations(":translations");
+ lang->addItem(QString("(") + tr("default") + QString(")"), QVariant(""));
+ foreach(const QString &langStr, translations.entryList())
+ {
+ lang->addItem(langStr, QVariant(langStr));
+ }
+
+ lang->setToolTip(tr("The user interface language can be set here. This setting will only take effect after restarting Bitcoin."));
+ connect(lang, SIGNAL(activated(int)), this, SLOT(showRestartWarning()));
+
+ lang_label->setBuddy(lang);
+ lang_hbox->addWidget(lang);
+
+ layout->addLayout(lang_hbox);
+
+ 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(lang, OptionsModel::Language);
+ mapper->addMapping(unit, OptionsModel::DisplayUnit);
+ mapper->addMapping(display_addresses, OptionsModel::DisplayAddresses);
+}
+
+void DisplayOptionsPage::showRestartWarning()
+{
+ if(!restart_warning_displayed)
+ {
+ QMessageBox::warning(this, tr("Warning"), tr("This setting will take effect after restarting Bitcoin."), QMessageBox::Ok);
+ restart_warning_displayed = true;
+ }
+}
+
+/* Window options */
+WindowOptionsPage::WindowOptionsPage(QWidget *parent):
+ OptionsPage(parent)
+{
+ QVBoxLayout *layout = new QVBoxLayout();
+ setWindowTitle(tr("Window"));
+
#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"));
@@ -182,6 +322,28 @@ MainOptionsPage::MainOptionsPage(QWidget *parent):
layout->addWidget(minimize_on_close);
#endif
+ layout->addStretch(1); // Extra space at bottom
+ setLayout(layout);
+}
+
+void WindowOptionsPage::setMapper(MonitoredDataMapper *mapper)
+{
+ // Map model to widgets
+#ifndef Q_WS_MAC
+ mapper->addMapping(minimize_to_tray, OptionsModel::MinimizeToTray);
+#endif
+#ifndef Q_WS_MAC
+ mapper->addMapping(minimize_on_close, OptionsModel::MinimizeOnClose);
+#endif
+}
+
+/* Network options */
+NetworkOptionsPage::NetworkOptionsPage(QWidget *parent):
+ OptionsPage(parent)
+{
+ QVBoxLayout *layout = new QVBoxLayout();
+ setWindowTitle(tr("Network"));
+
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);
@@ -192,7 +354,7 @@ MainOptionsPage::MainOptionsPage(QWidget *parent):
QHBoxLayout *proxy_hbox = new QHBoxLayout();
proxy_hbox->addSpacing(18);
- QLabel *proxy_ip_label = new QLabel(tr("Proxy &IP: "));
+ QLabel *proxy_ip_label = new QLabel(tr("Proxy &IP:"));
proxy_hbox->addWidget(proxy_ip_label);
proxy_ip = new QLineEdit();
proxy_ip->setMaximumWidth(140);
@@ -201,7 +363,7 @@ MainOptionsPage::MainOptionsPage(QWidget *parent):
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: "));
+ QLabel *proxy_port_label = new QLabel(tr("&Port:"));
proxy_hbox->addWidget(proxy_port_label);
proxy_port = new QLineEdit();
proxy_port->setMaximumWidth(55);
@@ -211,31 +373,9 @@ MainOptionsPage::MainOptionsPage(QWidget *parent):
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_edit->setToolTip(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_label->setBuddy(fee_edit);
- fee_hbox->addWidget(fee_edit);
- fee_hbox->addStretch(1);
-
- layout->addLayout(fee_hbox);
-
- detach_database = new QCheckBox(tr("Detach databases at shutdown"));
- detach_database->setToolTip(tr("Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached."));
- layout->addWidget(detach_database);
layout->addStretch(1); // Extra space at bottom
-
setLayout(layout);
connect(connect_socks4, SIGNAL(toggled(bool)), proxy_ip, SLOT(setEnabled(bool)));
@@ -246,53 +386,11 @@ MainOptionsPage::MainOptionsPage(QWidget *parent):
#endif
}
-void MainOptionsPage::setMapper(MonitoredDataMapper *mapper)
+void NetworkOptionsPage::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);
- mapper->addMapping(detach_database, OptionsModel::DetachDatabases);
-}
-
-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
index 9e1f87c646..ea0cbb8bfc 100644
--- a/src/qt/optionsdialog.h
+++ b/src/qt/optionsdialog.h
@@ -2,6 +2,7 @@
#define OPTIONSDIALOG_H
#include <QDialog>
+#include <QList>
QT_BEGIN_NAMESPACE
class QStackedWidget;
@@ -10,8 +11,7 @@ class QListWidgetItem;
class QPushButton;
QT_END_NAMESPACE
class OptionsModel;
-class MainOptionsPage;
-class DisplayOptionsPage;
+class OptionsPage;
class MonitoredDataMapper;
/** Preferences dialog. */
@@ -43,11 +43,7 @@ private:
MonitoredDataMapper *mapper;
QPushButton *apply_button;
- // Pages
- MainOptionsPage *main_page;
- DisplayOptionsPage *display_page;
-
- void setupMainPage();
+ QList<OptionsPage*> pages;
};
#endif // OPTIONSDIALOG_H
diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp
index 5bba308cf2..9f1c6447ae 100644
--- a/src/qt/optionsmodel.cpp
+++ b/src/qt/optionsmodel.cpp
@@ -4,6 +4,7 @@
#include "init.h"
#include "walletdb.h"
+#include "guiutil.h"
OptionsModel::OptionsModel(QObject *parent) :
QAbstractListModel(parent)
@@ -21,8 +22,9 @@ void OptionsModel::Init()
fMinimizeToTray = settings.value("fMinimizeToTray", false).toBool();
fMinimizeOnClose = settings.value("fMinimizeOnClose", false).toBool();
nTransactionFee = settings.value("nTransactionFee").toLongLong();
+ language = settings.value("language", "").toString();
- // These are shared with core bitcoin; we want
+ // These are shared with core Bitcoin; we want
// command-line options to override the GUI settings:
if (settings.contains("fUseUPnP"))
SoftSetBoolArg("-upnp", settings.value("fUseUPnP").toBool());
@@ -30,6 +32,8 @@ void OptionsModel::Init()
SoftSetArg("-proxy", settings.value("addrProxy").toString().toStdString());
if (settings.contains("detachDB"))
SoftSetBoolArg("-detachdb", settings.value("detachDB").toBool());
+ if (!language.isEmpty())
+ SoftSetArg("-lang", language.toStdString());
}
bool OptionsModel::Upgrade()
@@ -104,7 +108,7 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
switch(index.row())
{
case StartAtStartup:
- return QVariant(GetStartOnSystemStartup());
+ return QVariant(GUIUtil::GetStartOnSystemStartup());
case MinimizeToTray:
return QVariant(fMinimizeToTray);
case MapPortUPnP:
@@ -125,6 +129,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
return QVariant(bDisplayAddresses);
case DetachDatabases:
return QVariant(fDetachDB);
+ case Language:
+ return settings.value("language", "");
default:
return QVariant();
}
@@ -141,7 +147,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
switch(index.row())
{
case StartAtStartup:
- successful = SetStartOnSystemStartup(value.toBool());
+ successful = GUIUtil::SetStartOnSystemStartup(value.toBool());
break;
case MinimizeToTray:
fMinimizeToTray = value.toBool();
@@ -213,6 +219,10 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
settings.setValue("detachDB", fDetachDB);
}
break;
+ case Language: {
+ settings.setValue("language", value);
+ }
+ break;
default:
break;
}
diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h
index da4e86f104..c0374689c6 100644
--- a/src/qt/optionsmodel.h
+++ b/src/qt/optionsmodel.h
@@ -3,8 +3,8 @@
#include <QAbstractListModel>
-/** Interface from QT to configuration data structure for bitcoin client.
- To QT, the options are presented as a list with the different options
+/** 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.
@@ -27,6 +27,7 @@ public:
DisplayUnit, // BitcoinUnits::Unit
DisplayAddresses, // bool
DetachDatabases, // bool
+ Language, // QString
OptionIDRowCount,
};
@@ -45,11 +46,13 @@ public:
bool getMinimizeOnClose();
int getDisplayUnit();
bool getDisplayAddresses();
+ QString getLanguage() { return language; }
private:
int nDisplayUnit;
bool bDisplayAddresses;
bool fMinimizeToTray;
bool fMinimizeOnClose;
+ QString language;
signals:
void displayUnitChanged(int unit);
diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp
index 5b5a8f5271..d7bcc6f45e 100644
--- a/src/qt/overviewpage.cpp
+++ b/src/qt/overviewpage.cpp
@@ -94,31 +94,30 @@ OverviewPage::OverviewPage(QWidget *parent) :
ui(new Ui::OverviewPage),
currentBalance(-1),
currentUnconfirmedBalance(-1),
- txdelegate(new TxViewDelegate())
+ txdelegate(new TxViewDelegate()), filter(0)
{
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)));
+ connect(ui->listTransactions, SIGNAL(clicked(QModelIndex)), this, SLOT(handleTransactionClicked(QModelIndex)));
+
+ // init "out of sync" warning labels
+ ui->labelWalletStatus->setText("(" + tr("out of sync") + ")");
+ ui->labelTransactionsStatus->setText("(" + tr("out of sync") + ")");
+
+ // start with displaying the "out of sync" warnings
+ showOutOfSyncWarning(true);
+}
+
+void OverviewPage::handleTransactionClicked(const QModelIndex &index)
+{
+ if(filter)
+ emit transactionClicked(filter->mapToSource(index));
}
OverviewPage::~OverviewPage()
@@ -146,7 +145,7 @@ void OverviewPage::setModel(WalletModel *model)
if(model)
{
// Set up transaction list
- TransactionFilterProxy *filter = new TransactionFilterProxy();
+ filter = new TransactionFilterProxy();
filter->setSourceModel(model->getTransactionTableModel());
filter->setLimit(NUM_ITEMS);
filter->setDynamicSortFilter(true);
@@ -177,3 +176,9 @@ void OverviewPage::displayUnitChanged()
txdelegate->unit = model->getOptionsModel()->getDisplayUnit();
ui->listTransactions->update();
}
+
+void OverviewPage::showOutOfSyncWarning(bool fShow)
+{
+ ui->labelWalletStatus->setVisible(fShow);
+ ui->labelTransactionsStatus->setVisible(fShow);
+}
diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h
index 1199227168..208b324feb 100644
--- a/src/qt/overviewpage.h
+++ b/src/qt/overviewpage.h
@@ -12,6 +12,7 @@ namespace Ui {
}
class WalletModel;
class TxViewDelegate;
+class TransactionFilterProxy;
/** Overview ("home") page widget */
class OverviewPage : public QWidget
@@ -23,6 +24,7 @@ public:
~OverviewPage();
void setModel(WalletModel *model);
+ void showOutOfSyncWarning(bool fShow);
public slots:
void setBalance(qint64 balance, qint64 unconfirmedBalance);
@@ -38,9 +40,11 @@ private:
qint64 currentUnconfirmedBalance;
TxViewDelegate *txdelegate;
+ TransactionFilterProxy *filter;
private slots:
void displayUnitChanged();
+ void handleTransactionClicked(const QModelIndex &index);
};
#endif // OVERVIEWPAGE_H
diff --git a/src/qt/qrcodedialog.cpp b/src/qt/qrcodedialog.cpp
index 2a428fb79e..32e5462cee 100644
--- a/src/qt/qrcodedialog.cpp
+++ b/src/qt/qrcodedialog.cpp
@@ -15,7 +15,6 @@ QRCodeDialog::QRCodeDialog(const QString &addr, const QString &label, bool enabl
{
ui->setupUi(this);
setWindowTitle(QString("%1").arg(address));
- setAttribute(Qt::WA_DeleteOnClose);
ui->chkReqPayment->setVisible(enableReq);
ui->lnReqAmount->setVisible(enableReq);
@@ -118,7 +117,7 @@ void QRCodeDialog::on_lnMessage_textChanged(const QString &arg1)
void QRCodeDialog::on_btnSaveAs_clicked()
{
- QString fn = GUIUtil::getSaveFileName(this, tr("Save Image..."), QString(), tr("PNG Images (*.png)"));
+ QString fn = GUIUtil::getSaveFileName(this, tr("Save QR Code"), QString(), tr("PNG Images (*.png)"));
if (!fn.isEmpty())
myImage.scaled(EXPORT_IMAGE_SIZE, EXPORT_IMAGE_SIZE).save(fn);
}
diff --git a/src/qt/qtipcserver.cpp b/src/qt/qtipcserver.cpp
index 102ac0ff4e..3d7d90e902 100644
--- a/src/qt/qtipcserver.cpp
+++ b/src/qt/qtipcserver.cpp
@@ -8,7 +8,6 @@
#include <boost/date_time/posix_time/posix_time.hpp>
#include "ui_interface.h"
-#include "util.h"
#include "qtipcserver.h"
using namespace boost::interprocess;
@@ -32,7 +31,7 @@ void ipcThread(void* parg)
ptime d = boost::posix_time::microsec_clock::universal_time() + millisec(100);
if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d))
{
- ThreadSafeHandleURI(std::string(strBuf, nSize));
+ uiInterface.ThreadSafeHandleURI(std::string(strBuf, nSize));
Sleep(1000);
}
if (fShutdown)
@@ -70,7 +69,7 @@ void ipcInit()
ptime d = boost::posix_time::microsec_clock::universal_time() + millisec(1);
if(mq->timed_receive(&strBuf, sizeof(strBuf), nSize, nPriority, d))
{
- ThreadSafeHandleURI(std::string(strBuf, nSize));
+ uiInterface.ThreadSafeHandleURI(std::string(strBuf, nSize));
}
else
break;
diff --git a/src/qt/qvaluecombobox.cpp b/src/qt/qvaluecombobox.cpp
index c0ad8c12e5..d7ce3d0130 100644
--- a/src/qt/qvaluecombobox.cpp
+++ b/src/qt/qvaluecombobox.cpp
@@ -6,12 +6,12 @@ QValueComboBox::QValueComboBox(QWidget *parent) :
connect(this, SIGNAL(currentIndexChanged(int)), this, SLOT(handleSelectionChanged(int)));
}
-int QValueComboBox::value() const
+QVariant QValueComboBox::value() const
{
- return itemData(currentIndex(), role).toInt();
+ return itemData(currentIndex(), role);
}
-void QValueComboBox::setValue(int value)
+void QValueComboBox::setValue(const QVariant &value)
{
setCurrentIndex(findData(value, role));
}
diff --git a/src/qt/qvaluecombobox.h b/src/qt/qvaluecombobox.h
index 11f342d71c..1a47bb6565 100644
--- a/src/qt/qvaluecombobox.h
+++ b/src/qt/qvaluecombobox.h
@@ -2,19 +2,20 @@
#define QVALUECOMBOBOX_H
#include <QComboBox>
+#include <QVariant>
/* 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)
+ Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged USER true)
public:
explicit QValueComboBox(QWidget *parent = 0);
- int value() const;
- void setValue(int value);
+ QVariant value() const;
+ void setValue(const QVariant &value);
- /** Specify model role to use as ordinal value */
+ /** Specify model role to use as ordinal value (defaults to Qt::UserRole) */
void setRole(int role);
signals:
diff --git a/src/qt/res/icons/debugwindow.png b/src/qt/res/icons/debugwindow.png
new file mode 100644
index 0000000000..1712adf0e7
--- /dev/null
+++ b/src/qt/res/icons/debugwindow.png
Binary files differ
diff --git a/src/qt/res/icons/qrcode.png b/src/qt/res/icons/qrcode.png
new file mode 100644
index 0000000000..a8d97174b3
--- /dev/null
+++ b/src/qt/res/icons/qrcode.png
Binary files differ
diff --git a/src/qt/res/images/qrcode.png b/src/qt/res/images/qrcode.png
deleted file mode 100644
index c89a49bbce..0000000000
--- a/src/qt/res/images/qrcode.png
+++ /dev/null
Binary files differ
diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp
new file mode 100644
index 0000000000..7029ee33bc
--- /dev/null
+++ b/src/qt/rpcconsole.cpp
@@ -0,0 +1,328 @@
+#include "rpcconsole.h"
+#include "ui_rpcconsole.h"
+
+#include "clientmodel.h"
+#include "bitcoinrpc.h"
+#include "guiutil.h"
+
+#include <QTime>
+#include <QTimer>
+#include <QThread>
+#include <QTextEdit>
+#include <QKeyEvent>
+#include <QUrl>
+#include <QScrollBar>
+
+#include <boost/tokenizer.hpp>
+
+// TODO: make it possible to filter out categories (esp debug messages when implemented)
+// TODO: receive errors and debug messages through ClientModel
+
+const int CONSOLE_SCROLLBACK = 50;
+const int CONSOLE_HISTORY = 50;
+
+const QSize ICON_SIZE(24, 24);
+
+const struct {
+ const char *url;
+ const char *source;
+} ICON_MAPPING[] = {
+ {"cmd-request", ":/icons/tx_input"},
+ {"cmd-reply", ":/icons/tx_output"},
+ {"cmd-error", ":/icons/tx_output"},
+ {"misc", ":/icons/tx_inout"},
+ {NULL, NULL}
+};
+
+/* Object for executing console RPC commands in a separate thread.
+*/
+class RPCExecutor: public QObject
+{
+ Q_OBJECT
+public slots:
+ void start();
+ void request(const QString &command);
+signals:
+ void reply(int category, const QString &command);
+};
+
+#include "rpcconsole.moc"
+
+void RPCExecutor::start()
+{
+ // Nothing to do
+}
+
+void RPCExecutor::request(const QString &command)
+{
+ // Parse shell-like command line into separate arguments
+ std::string strMethod;
+ std::vector<std::string> strParams;
+ try {
+ boost::escaped_list_separator<char> els('\\',' ','\"');
+ std::string strCommand = command.toStdString();
+ boost::tokenizer<boost::escaped_list_separator<char> > tok(strCommand, els);
+
+ int n = 0;
+ for(boost::tokenizer<boost::escaped_list_separator<char> >::iterator beg=tok.begin(); beg!=tok.end();++beg,++n)
+ {
+ if(n == 0) // First parameter is the command
+ strMethod = *beg;
+ else
+ strParams.push_back(*beg);
+ }
+ }
+ catch(boost::escaped_list_error &e)
+ {
+ emit reply(RPCConsole::CMD_ERROR, QString("Parse error"));
+ return;
+ }
+
+ try {
+ std::string strPrint;
+ json_spirit::Value result = tableRPC.execute(strMethod, RPCConvertValues(strMethod, strParams));
+
+ // Format result reply
+ if (result.type() == json_spirit::null_type)
+ strPrint = "";
+ else if (result.type() == json_spirit::str_type)
+ strPrint = result.get_str();
+ else
+ strPrint = write_string(result, true);
+
+ emit reply(RPCConsole::CMD_REPLY, QString::fromStdString(strPrint));
+ }
+ catch (json_spirit::Object& objError)
+ {
+ emit reply(RPCConsole::CMD_ERROR, QString::fromStdString(write_string(json_spirit::Value(objError), false)));
+ }
+ catch (std::exception& e)
+ {
+ emit reply(RPCConsole::CMD_ERROR, QString("Error: ") + QString::fromStdString(e.what()));
+ }
+}
+
+RPCConsole::RPCConsole(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::RPCConsole),
+ historyPtr(0)
+{
+ ui->setupUi(this);
+
+#ifdef WIN32
+ ui->openDebugLogfileButton->setIcon(QIcon(":/icons/export"));
+#else
+ // Show Debug logfile label and Open button only for Windows
+ ui->labelDebugLogfile->setVisible(false);
+ ui->openDebugLogfileButton->setVisible(false);
+#endif
+
+ // Install event filter for up and down arrow
+ ui->lineEdit->installEventFilter(this);
+
+ connect(ui->clearButton, SIGNAL(clicked()), this, SLOT(clear()));
+
+ startExecutor();
+
+ clear();
+}
+
+RPCConsole::~RPCConsole()
+{
+ emit stopExecutor();
+ delete ui;
+}
+
+bool RPCConsole::eventFilter(QObject* obj, QEvent *event)
+{
+ if(obj == ui->lineEdit)
+ {
+ if(event->type() == QEvent::KeyPress)
+ {
+ QKeyEvent *key = static_cast<QKeyEvent*>(event);
+ switch(key->key())
+ {
+ case Qt::Key_Up: browseHistory(-1); return true;
+ case Qt::Key_Down: browseHistory(1); return true;
+ }
+ }
+ }
+ return QDialog::eventFilter(obj, event);
+}
+
+void RPCConsole::setClientModel(ClientModel *model)
+{
+ this->clientModel = model;
+ if(model)
+ {
+ // Subscribe to information, replies, messages, errors
+ connect(model, SIGNAL(numConnectionsChanged(int)), this, SLOT(setNumConnections(int)));
+ connect(model, SIGNAL(numBlocksChanged(int,int)), this, SLOT(setNumBlocks(int,int)));
+
+ // Provide initial values
+ ui->clientVersion->setText(model->formatFullVersion());
+ ui->clientName->setText(model->clientName());
+ ui->buildDate->setText(model->formatBuildDate());
+ ui->startupTime->setText(model->formatClientStartupTime().toString());
+
+ setNumConnections(model->getNumConnections());
+ ui->isTestNet->setChecked(model->isTestNet());
+
+ setNumBlocks(model->getNumBlocks(), model->getNumBlocksOfPeers());
+ }
+}
+
+static QString categoryClass(int category)
+{
+ switch(category)
+ {
+ case RPCConsole::CMD_REQUEST: return "cmd-request"; break;
+ case RPCConsole::CMD_REPLY: return "cmd-reply"; break;
+ case RPCConsole::CMD_ERROR: return "cmd-error"; break;
+ default: return "misc";
+ }
+}
+
+void RPCConsole::clear()
+{
+ ui->messagesWidget->clear();
+ ui->lineEdit->clear();
+ ui->lineEdit->setFocus();
+
+ // Add smoothly scaled icon images.
+ // (when using width/height on an img, Qt uses nearest instead of linear interpolation)
+ for(int i=0; ICON_MAPPING[i].url; ++i)
+ {
+ ui->messagesWidget->document()->addResource(
+ QTextDocument::ImageResource,
+ QUrl(ICON_MAPPING[i].url),
+ QImage(ICON_MAPPING[i].source).scaled(ICON_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
+ }
+
+ // Set default style sheet
+ ui->messagesWidget->document()->setDefaultStyleSheet(
+ "table { }"
+ "td.time { color: #808080; padding-top: 3px; } "
+ "td.message { font-family: Monospace; font-size: 12px; } "
+ "td.cmd-request { color: #006060; } "
+ "td.cmd-error { color: red; } "
+ "b { color: #006060; } "
+ );
+
+ message(CMD_REPLY, (tr("Welcome to the Bitcoin RPC console.") + "<br>" +
+ tr("Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen.") + "<br>" +
+ tr("Type <b>help</b> for an overview of available commands.")), true);
+}
+
+void RPCConsole::message(int category, const QString &message, bool html)
+{
+ QTime time = QTime::currentTime();
+ QString timeString = time.toString();
+ QString out;
+ out += "<table><tr><td class=\"time\" width=\"65\">" + timeString + "</td>";
+ out += "<td class=\"icon\" width=\"32\"><img src=\"" + categoryClass(category) + "\"></td>";
+ out += "<td class=\"message " + categoryClass(category) + "\" valign=\"middle\">";
+ if(html)
+ out += message;
+ else
+ out += GUIUtil::HtmlEscape(message, true);
+ out += "</td></tr></table>";
+ ui->messagesWidget->append(out);
+}
+
+void RPCConsole::setNumConnections(int count)
+{
+ ui->numberOfConnections->setText(QString::number(count));
+}
+
+void RPCConsole::setNumBlocks(int count, int countOfPeers)
+{
+ ui->numberOfBlocks->setText(QString::number(count));
+ ui->totalBlocks->setText(QString::number(countOfPeers));
+ if(clientModel)
+ {
+ // If there is no current number available display N/A instead of 0, which can't ever be true
+ ui->totalBlocks->setText(clientModel->getNumBlocksOfPeers() == 0 ? tr("N/A") : QString::number(clientModel->getNumBlocksOfPeers()));
+ ui->lastBlockTime->setText(clientModel->getLastBlockDate().toString());
+ }
+}
+
+void RPCConsole::on_lineEdit_returnPressed()
+{
+ QString cmd = ui->lineEdit->text();
+ ui->lineEdit->clear();
+
+ if(!cmd.isEmpty())
+ {
+ message(CMD_REQUEST, cmd);
+ emit cmdRequest(cmd);
+ // Truncate history from current position
+ history.erase(history.begin() + historyPtr, history.end());
+ // Append command to history
+ history.append(cmd);
+ // Enforce maximum history size
+ while(history.size() > CONSOLE_HISTORY)
+ history.removeFirst();
+ // Set pointer to end of history
+ historyPtr = history.size();
+ // Scroll console view to end
+ scrollToEnd();
+ }
+}
+
+void RPCConsole::browseHistory(int offset)
+{
+ historyPtr += offset;
+ if(historyPtr < 0)
+ historyPtr = 0;
+ if(historyPtr > history.size())
+ historyPtr = history.size();
+ QString cmd;
+ if(historyPtr < history.size())
+ cmd = history.at(historyPtr);
+ ui->lineEdit->setText(cmd);
+}
+
+void RPCConsole::startExecutor()
+{
+ QThread* thread = new QThread;
+ RPCExecutor *executor = new RPCExecutor();
+ executor->moveToThread(thread);
+
+ // Notify executor when thread started (in executor thread)
+ connect(thread, SIGNAL(started()), executor, SLOT(start()));
+ // Replies from executor object must go to this object
+ connect(executor, SIGNAL(reply(int,QString)), this, SLOT(message(int,QString)));
+ // Requests from this object must go to executor
+ connect(this, SIGNAL(cmdRequest(QString)), executor, SLOT(request(QString)));
+ // On stopExecutor signal
+ // - queue executor for deletion (in execution thread)
+ // - quit the Qt event loop in the execution thread
+ connect(this, SIGNAL(stopExecutor()), executor, SLOT(deleteLater()));
+ connect(this, SIGNAL(stopExecutor()), thread, SLOT(quit()));
+ // Queue the thread for deletion (in this thread) when it is finished
+ connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
+
+ // Default implementation of QThread::run() simply spins up an event loop in the thread,
+ // which is what we want.
+ thread->start();
+}
+
+void RPCConsole::on_tabWidget_currentChanged(int index)
+{
+ if(ui->tabWidget->widget(index) == ui->tab_console)
+ {
+ ui->lineEdit->setFocus();
+ }
+}
+
+void RPCConsole::on_openDebugLogfileButton_clicked()
+{
+ GUIUtil::openDebugLogfile();
+}
+
+void RPCConsole::scrollToEnd()
+{
+ QScrollBar *scrollbar = ui->messagesWidget->verticalScrollBar();
+ scrollbar->setValue(scrollbar->maximum());
+}
diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h
new file mode 100644
index 0000000000..4b71cdb988
--- /dev/null
+++ b/src/qt/rpcconsole.h
@@ -0,0 +1,64 @@
+#ifndef RPCCONSOLE_H
+#define RPCCONSOLE_H
+
+#include <QDialog>
+
+namespace Ui {
+ class RPCConsole;
+}
+class ClientModel;
+
+/** Local Bitcoin RPC console. */
+class RPCConsole: public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit RPCConsole(QWidget *parent = 0);
+ ~RPCConsole();
+
+ void setClientModel(ClientModel *model);
+
+ enum MessageClass {
+ MC_ERROR,
+ MC_DEBUG,
+ CMD_REQUEST,
+ CMD_REPLY,
+ CMD_ERROR
+ };
+
+protected:
+ virtual bool eventFilter(QObject* obj, QEvent *event);
+
+private slots:
+ void on_lineEdit_returnPressed();
+ void on_tabWidget_currentChanged(int index);
+ /** open the debug.log from the current datadir */
+ void on_openDebugLogfileButton_clicked();
+
+public slots:
+ void clear();
+ void message(int category, const QString &message, bool html = false);
+ /** Set number of connections shown in the UI */
+ void setNumConnections(int count);
+ /** Set number of blocks shown in the UI */
+ void setNumBlocks(int count, int countOfPeers);
+ /** Go forward or back in history */
+ void browseHistory(int offset);
+ /** Scroll console view to end */
+ void scrollToEnd();
+signals:
+ // For RPC command executor
+ void stopExecutor();
+ void cmdRequest(const QString &command);
+
+private:
+ Ui::RPCConsole *ui;
+ ClientModel *clientModel;
+ QStringList history;
+ int historyPtr;
+
+ void startExecutor();
+};
+
+#endif // RPCCONSOLE_H
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index b4029aa0d2..f6a3047a2b 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -130,28 +130,28 @@ void SendCoinsDialog::on_sendButton_clicked()
break;
case WalletModel::AmountExceedsBalance:
QMessageBox::warning(this, tr("Send Coins"),
- tr("Amount exceeds your balance"),
+ tr("The amount exceeds your balance."),
QMessageBox::Ok, QMessageBox::Ok);
break;
case WalletModel::AmountWithFeeExceedsBalance:
QMessageBox::warning(this, tr("Send Coins"),
- tr("Total exceeds your balance when the %1 transaction fee is included").
+ 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 in one send operation"),
+ 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 "),
+ 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."),
+ 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
diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp
index c8242d8352..5960597c77 100644
--- a/src/qt/sendcoinsentry.cpp
+++ b/src/qt/sendcoinsentry.cpp
@@ -20,10 +20,10 @@ SendCoinsEntry::SendCoinsEntry(QWidget *parent) :
#ifdef Q_WS_MAC
ui->payToLayout->setSpacing(4);
#endif
-
#if QT_VERSION >= 0x040700
- ui->payTo->setPlaceholderText(tr("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"));
+ /* Do not move this to the XML file, Qt before 4.7 will choke on it */
ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book"));
+ ui->payTo->setPlaceholderText(tr("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"));
#endif
setFocusPolicy(Qt::TabFocus);
setFocusProxy(ui->payTo);
diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp
index 90fc5b7da3..017244ffd0 100644
--- a/src/qt/transactionrecord.cpp
+++ b/src/qt/transactionrecord.cpp
@@ -40,114 +40,111 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
uint256 hash = wtx.GetHash();
std::map<std::string, std::string> mapValue = wtx.mapValue;
- if (showTransaction(wtx))
+ if (nNet > 0 || wtx.IsCoinBase())
{
- if (nNet > 0 || wtx.IsCoinBase())
+ //
+ // Credit
+ //
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
{
- //
- // Credit
- //
- BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ if(wallet->IsMine(txout))
{
- if(wallet->IsMine(txout))
+ TransactionRecord sub(hash, nTime);
+ CBitcoinAddress address;
+ sub.idx = parts.size(); // sequence number
+ sub.credit = txout.nValue;
+ if (wtx.IsCoinBase())
{
- 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, address) && wallet->HaveKey(address))
- {
- // Received by Bitcoin Address
- sub.type = TransactionRecord::RecvWithAddress;
- sub.address = address.ToString();
- }
- else
- {
- // Received by IP connection (deprecated features), or a multisignature or other non-simple transaction
- sub.type = TransactionRecord::RecvFromOther;
- sub.address = mapValue["from"];
- }
-
- parts.append(sub);
+ // Generated
+ sub.type = TransactionRecord::Generated;
}
+ else if (ExtractAddress(txout.scriptPubKey, address) && wallet->HaveKey(address))
+ {
+ // Received by Bitcoin Address
+ sub.type = TransactionRecord::RecvWithAddress;
+ sub.address = address.ToString();
+ }
+ else
+ {
+ // Received by IP connection (deprecated features), or a multisignature or other non-simple transaction
+ sub.type = TransactionRecord::RecvFromOther;
+ sub.address = mapValue["from"];
+ }
+
+ parts.append(sub);
}
}
- else
+ }
+ 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)
{
- bool fAllFromMe = true;
- BOOST_FOREACH(const CTxIn& txin, wtx.vin)
- fAllFromMe = fAllFromMe && wallet->IsMine(txin);
+ // Payment to self
+ int64 nChange = wtx.GetChange();
- bool fAllToMe = true;
- BOOST_FOREACH(const CTxOut& txout, wtx.vout)
- fAllToMe = fAllToMe && wallet->IsMine(txout);
+ parts.append(TransactionRecord(hash, nTime, TransactionRecord::SendToSelf, "",
+ -(nDebit - nChange), nCredit - nChange));
+ }
+ else if (fAllFromMe)
+ {
+ //
+ // Debit
+ //
+ int64 nTxFee = nDebit - wtx.GetValueOut();
- if (fAllFromMe && fAllToMe)
+ for (unsigned int nOut = 0; nOut < wtx.vout.size(); nOut++)
{
- // Payment to self
- int64 nChange = wtx.GetChange();
+ const CTxOut& txout = wtx.vout[nOut];
+ TransactionRecord sub(hash, nTime);
+ sub.idx = parts.size();
- parts.append(TransactionRecord(hash, nTime, TransactionRecord::SendToSelf, "",
- -(nDebit - nChange), nCredit - nChange));
- }
- else if (fAllFromMe)
- {
- //
- // Debit
- //
- int64 nTxFee = nDebit - wtx.GetValueOut();
+ 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;
+ }
- for (int nOut = 0; nOut < wtx.vout.size(); nOut++)
+ CBitcoinAddress address;
+ if (ExtractAddress(txout.scriptPubKey, address))
{
- 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, 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);
+ // 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
- //
- parts.append(TransactionRecord(hash, nTime, TransactionRecord::Other, "", nNet, 0));
- }
+ }
+ else
+ {
+ //
+ // Mixed debit transaction, can't break down payees
+ //
+ parts.append(TransactionRecord(hash, nTime, TransactionRecord::Other, "", nNet, 0));
}
}
diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp
index 5f505f444e..d36bb495a0 100644
--- a/src/qt/transactiontablemodel.cpp
+++ b/src/qt/transactiontablemodel.cpp
@@ -9,6 +9,7 @@
#include "bitcoinunits.h"
#include "wallet.h"
+#include "ui_interface.h"
#include <QLocale>
#include <QList>
@@ -66,15 +67,14 @@ public:
*/
void refreshWallet()
{
-#ifdef WALLET_UPDATE_DEBUG
- qDebug() << "refreshWallet";
-#endif
+ OutputDebugStringF("refreshWallet\n");
cachedWallet.clear();
{
LOCK(wallet->cs_wallet);
for(std::map<uint256, CWalletTx>::iterator it = wallet->mapWallet.begin(); it != wallet->mapWallet.end(); ++it)
{
- cachedWallet.append(TransactionRecord::decomposeTransaction(wallet, it->second));
+ if(TransactionRecord::showTransaction(it->second))
+ cachedWallet.append(TransactionRecord::decomposeTransaction(wallet, it->second));
}
}
}
@@ -82,49 +82,55 @@ public:
/* 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.
+ Call with transaction that was added, removed or changed.
*/
- void updateWallet(const QList<uint256> &updated)
+ void updateWallet(const uint256 &hash, int status)
{
- // 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);
-
+ OutputDebugStringF("updateWallet %s %i\n", hash.ToString().c_str(), status);
{
LOCK(wallet->cs_wallet);
- for(int update_idx = updated_sorted.size()-1; update_idx >= 0; --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());
+ bool inModel = (lower != upper);
+
+ // Determine whether to show transaction or not
+ bool showTransaction = (inWallet && TransactionRecord::showTransaction(mi->second));
+
+ if(status == CT_UPDATED)
{
- 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;
- }
+ if(showTransaction && !inModel)
+ status = CT_NEW; /* Not in model, but want to show, treat as new */
+ if(!showTransaction && inModel)
+ status = CT_DELETED; /* In model, but want to hide, treat as deleted */
+ }
-#ifdef WALLET_UPDATE_DEBUG
- qDebug() << " " << QString::fromStdString(hash.ToString()) << inWallet << " " << inModel
- << lowerIndex << "-" << upperIndex;
-#endif
+ OutputDebugStringF(" inWallet=%i inModel=%i Index=%i-%i showTransaction=%i derivedStatus=%i\n",
+ inWallet, inModel, lowerIndex, upperIndex, showTransaction, status);
- if(inWallet && !inModel)
+ switch(status)
+ {
+ case CT_NEW:
+ if(inModel)
+ {
+ OutputDebugStringF("Warning: updateWallet: Got CT_NEW, but transaction is already in model\n");
+ break;
+ }
+ if(!inWallet)
+ {
+ OutputDebugStringF("Warning: updateWallet: Got CT_NEW, but transaction is not in wallet\n");
+ break;
+ }
+ if(showTransaction)
{
// Added -- insert at the right position
QList<TransactionRecord> toInsert =
@@ -141,17 +147,22 @@ public:
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)
+ break;
+ case CT_DELETED:
+ if(!inModel)
{
- // Updated -- nothing to do, status update will take care of this
+ OutputDebugStringF("Warning: updateWallet: Got CT_DELETED, but transaction is not in model\n");
+ break;
}
+ // Removed -- remove entire transaction from table
+ parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
+ cachedWallet.erase(lower, upper);
+ parent->endRemoveRows();
+ break;
+ case CT_UPDATED:
+ // Miscellaneous updates -- nothing to do, status update will take care of this, and is only computed for
+ // visible transactions.
+ break;
}
}
}
@@ -209,14 +220,15 @@ TransactionTableModel::TransactionTableModel(CWallet* wallet, WalletModel *paren
QAbstractTableModel(parent),
wallet(wallet),
walletModel(parent),
- priv(new TransactionTablePriv(wallet, this))
+ priv(new TransactionTablePriv(wallet, this)),
+ cachedNumBlocks(0)
{
columns << QString() << tr("Date") << tr("Type") << tr("Address") << tr("Amount");
priv->refreshWallet();
QTimer *timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), this, SLOT(update()));
+ connect(timer, SIGNAL(timeout()), this, SLOT(updateConfirmations()));
timer->start(MODEL_UPDATE_DELAY);
}
@@ -225,29 +237,23 @@ TransactionTableModel::~TransactionTableModel()
delete priv;
}
-void TransactionTableModel::update()
+void TransactionTableModel::updateTransaction(const QString &hash, int status)
{
- QList<uint256> updated;
+ uint256 updated;
+ updated.SetHex(hash.toStdString());
- // Check if there are changes to wallet map
- {
- TRY_LOCK(wallet->cs_wallet, lockWallet);
- if (lockWallet && !wallet->vWalletUpdated.empty())
- {
- BOOST_FOREACH(uint256 hash, wallet->vWalletUpdated)
- {
- updated.append(hash);
- }
- wallet->vWalletUpdated.clear();
- }
- }
+ priv->updateWallet(updated, status);
+}
- if(!updated.empty())
+void TransactionTableModel::updateConfirmations()
+{
+ if(nBestHeight != cachedNumBlocks)
{
- priv->updateWallet(updated);
-
- // Status (number of confirmations) and (possibly) description
- // columns changed for all rows.
+ cachedNumBlocks = nBestHeight;
+ // Blocks came in since last poll.
+ // Invalidate status (number of confirmations) and (possibly) description
+ // for all rows. Qt is smart enough to only actually request the data for the
+ // visible rows.
emit dataChanged(index(0, Status), index(priv->size()-1, Status));
emit dataChanged(index(0, ToAddress), index(priv->size()-1, ToAddress));
}
diff --git a/src/qt/transactiontablemodel.h b/src/qt/transactiontablemodel.h
index db88a0604f..0aafa70915 100644
--- a/src/qt/transactiontablemodel.h
+++ b/src/qt/transactiontablemodel.h
@@ -60,6 +60,7 @@ private:
WalletModel *walletModel;
QStringList columns;
TransactionTablePriv *priv;
+ int cachedNumBlocks;
QString lookupAddress(const std::string &address, bool tooltip) const;
QVariant addressColor(const TransactionRecord *wtx) const;
@@ -72,8 +73,9 @@ private:
QVariant txStatusDecoration(const TransactionRecord *wtx) const;
QVariant txAddressDecoration(const TransactionRecord *wtx) const;
-private slots:
- void update();
+public slots:
+ void updateTransaction(const QString &hash, int status);
+ void updateConfirmations();
friend class TransactionTablePriv;
};
diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp
index eaed48bfdf..a0e7dd4e77 100644
--- a/src/qt/transactionview.cpp
+++ b/src/qt/transactionview.cpp
@@ -81,12 +81,14 @@ TransactionView::TransactionView(QWidget *parent) :
addressWidget = new QLineEdit(this);
#if QT_VERSION >= 0x040700
+ /* Do not move this to the XML file, Qt before 4.7 will choke on it */
addressWidget->setPlaceholderText(tr("Enter address or label to search"));
#endif
hlayout->addWidget(addressWidget);
amountWidget = new QLineEdit(this);
#if QT_VERSION >= 0x040700
+ /* Do not move this to the XML file, Qt before 4.7 will choke on it */
amountWidget->setPlaceholderText(tr("Min amount"));
#endif
#ifdef Q_WS_MAC
@@ -125,7 +127,7 @@ TransactionView::TransactionView(QWidget *parent) :
QAction *copyLabelAction = new QAction(tr("Copy label"), this);
QAction *copyAmountAction = new QAction(tr("Copy amount"), this);
QAction *editLabelAction = new QAction(tr("Edit label"), this);
- QAction *showDetailsAction = new QAction(tr("Show details..."), this);
+ QAction *showDetailsAction = new QAction(tr("Show transaction details"), this);
contextMenu = new QMenu();
contextMenu->addAction(copyAddressAction);
@@ -415,3 +417,13 @@ void TransactionView::dateRangeChanged()
QDateTime(dateFrom->date()),
QDateTime(dateTo->date()).addDays(1));
}
+
+void TransactionView::focusTransaction(const QModelIndex &idx)
+{
+ if(!transactionProxyModel)
+ return;
+ QModelIndex targetIdx = transactionProxyModel->mapFromSource(idx);
+ transactionView->scrollTo(targetIdx);
+ transactionView->setCurrentIndex(targetIdx);
+ transactionView->setFocus();
+}
diff --git a/src/qt/transactionview.h b/src/qt/transactionview.h
index bc6e1e4e05..4ade3ecd5f 100644
--- a/src/qt/transactionview.h
+++ b/src/qt/transactionview.h
@@ -75,6 +75,7 @@ public slots:
void changedPrefix(const QString &prefix);
void changedAmount(const QString &amount);
void exportClicked();
+ void focusTransaction(const QModelIndex&);
};
diff --git a/src/qt/verifymessagedialog.cpp b/src/qt/verifymessagedialog.cpp
new file mode 100644
index 0000000000..0bac24820c
--- /dev/null
+++ b/src/qt/verifymessagedialog.cpp
@@ -0,0 +1,104 @@
+#include "verifymessagedialog.h"
+#include "ui_verifymessagedialog.h"
+
+#include <string>
+#include <vector>
+
+#include <QDialogButtonBox>
+#include <QAbstractButton>
+#include <QClipboard>
+#include <QMessageBox>
+
+#include "main.h"
+#include "wallet.h"
+#include "walletmodel.h"
+#include "addresstablemodel.h"
+#include "guiutil.h"
+
+VerifyMessageDialog::VerifyMessageDialog(AddressTableModel *addressModel, QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::VerifyMessageDialog),
+ model(addressModel)
+{
+ ui->setupUi(this);
+
+#if (QT_VERSION >= 0x040700)
+ /* Do not move this to the XML file, Qt before 4.7 will choke on it */
+ ui->lnSig->setPlaceholderText(tr("Enter Bitcoin signature"));
+ ui->lnAddress->setPlaceholderText(tr("Click \"Verify Message\" to obtain address"));
+#endif
+
+ GUIUtil::setupAddressWidget(ui->lnAddress, this);
+ ui->lnAddress->installEventFilter(this);
+
+ ui->edMessage->setFocus();
+}
+
+VerifyMessageDialog::~VerifyMessageDialog()
+{
+ delete ui;
+}
+
+bool VerifyMessageDialog::checkAddress()
+{
+ CDataStream ss(SER_GETHASH, 0);
+ ss << strMessageMagic;
+ ss << ui->edMessage->document()->toPlainText().toStdString();
+ uint256 hash = Hash(ss.begin(), ss.end());
+
+ bool invalid = true;
+ std::vector<unsigned char> vchSig = DecodeBase64(ui->lnSig->text().toStdString().c_str(), &invalid);
+
+ if(invalid)
+ {
+ QMessageBox::warning(this, tr("Invalid Signature"), tr("The signature could not be decoded. Please check the signature and try again."));
+ return false;
+ }
+
+ CKey key;
+ if(!key.SetCompactSignature(hash, vchSig))
+ {
+ QMessageBox::warning(this, tr("Invalid Signature"), tr("The signature did not match the message digest. Please check the signature and try again."));
+ return false;
+ }
+
+ CBitcoinAddress address(key.GetPubKey());
+ QString qStringAddress = QString::fromStdString(address.ToString());
+ ui->lnAddress->setText(qStringAddress);
+ ui->copyToClipboard->setEnabled(true);
+
+ QString label = model->labelForAddress(qStringAddress);
+ ui->lblStatus->setText(label.isEmpty() ? tr("Address not found in address book.") : tr("Address found in address book: %1").arg(label));
+ return true;
+}
+
+void VerifyMessageDialog::on_verifyMessage_clicked()
+{
+ checkAddress();
+}
+
+void VerifyMessageDialog::on_copyToClipboard_clicked()
+{
+ QApplication::clipboard()->setText(ui->lnAddress->text());
+}
+
+void VerifyMessageDialog::on_clearButton_clicked()
+{
+ ui->edMessage->clear();
+ ui->lnSig->clear();
+ ui->lnAddress->clear();
+ ui->lblStatus->clear();
+
+ ui->edMessage->setFocus();
+}
+
+bool VerifyMessageDialog::eventFilter(QObject *object, QEvent *event)
+{
+ if(object == ui->lnAddress && (event->type() == QEvent::MouseButtonPress ||
+ event->type() == QEvent::FocusIn))
+ {
+ ui->lnAddress->selectAll();
+ return true;
+ }
+ return QDialog::eventFilter(object, event);
+}
diff --git a/src/qt/verifymessagedialog.h b/src/qt/verifymessagedialog.h
new file mode 100644
index 0000000000..9a3fb43415
--- /dev/null
+++ b/src/qt/verifymessagedialog.h
@@ -0,0 +1,37 @@
+#ifndef VERIFYMESSAGEDIALOG_H
+#define VERIFYMESSAGEDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+ class VerifyMessageDialog;
+}
+class AddressTableModel;
+
+QT_BEGIN_NAMESPACE
+QT_END_NAMESPACE
+
+class VerifyMessageDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit VerifyMessageDialog(AddressTableModel *addressModel, QWidget *parent = 0);
+ ~VerifyMessageDialog();
+
+protected:
+ bool eventFilter(QObject *object, QEvent *event);
+
+private:
+ bool checkAddress();
+
+ Ui::VerifyMessageDialog *ui;
+ AddressTableModel *model;
+
+private slots:
+ void on_verifyMessage_clicked();
+ void on_copyToClipboard_clicked();
+ void on_clearButton_clicked();
+};
+
+#endif // VERIFYMESSAGEDIALOG_H
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index a915274da3..b89c3dba33 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -18,6 +18,13 @@ WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *p
{
addressTableModel = new AddressTableModel(wallet, this);
transactionTableModel = new TransactionTableModel(wallet, this);
+
+ subscribeToCoreSignals();
+}
+
+WalletModel::~WalletModel()
+{
+ unsubscribeFromCoreSignals();
}
qint64 WalletModel::getBalance() const
@@ -40,30 +47,38 @@ int WalletModel::getNumTransactions() const
return numTransactions;
}
-void WalletModel::update()
+void WalletModel::updateStatus()
+{
+ EncryptionStatus newEncryptionStatus = getEncryptionStatus();
+
+ if(cachedEncryptionStatus != newEncryptionStatus)
+ emit encryptionStatusChanged(newEncryptionStatus);
+}
+
+void WalletModel::updateTransaction(const QString &hash, int status)
{
+ if(transactionTableModel)
+ transactionTableModel->updateTransaction(hash, status);
+
+ // Balance and number of transactions might have changed
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;
}
-void WalletModel::updateAddressList()
+void WalletModel::updateAddressBook(const QString &address, const QString &label, bool isMine, int status)
{
- addressTableModel->update();
+ if(addressTableModel)
+ addressTableModel->updateEntry(address, label, isMine, status);
}
bool WalletModel::validateAddress(const QString &address)
@@ -139,7 +154,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(const QList<SendCoinsRecipie
}
return TransactionCreationFailed;
}
- if(!ThreadSafeAskFee(nFeeRequired, tr("Sending...").toStdString()))
+ if(!uiInterface.ThreadSafeAskFee(nFeeRequired, tr("Sending...").toStdString()))
{
return Aborted;
}
@@ -150,14 +165,21 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(const QList<SendCoinsRecipie
hex = QString::fromStdString(wtx.GetHash().GetHex());
}
- // Add addresses that we've sent to to the address book
+ // Add addresses / update labels that we've sent to to the address book
foreach(const SendCoinsRecipient &rcp, recipients)
{
std::string strAddress = rcp.address.toStdString();
+ std::string strLabel = rcp.label.toStdString();
{
LOCK(wallet->cs_wallet);
- if (!wallet->mapAddressBook.count(strAddress))
- wallet->SetAddressBookName(strAddress, rcp.label.toStdString());
+
+ 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);
+ }
}
}
@@ -239,6 +261,47 @@ bool WalletModel::backupWallet(const QString &filename)
return BackupWallet(*wallet, filename.toLocal8Bit().data());
}
+// Handlers for core signals
+static void NotifyKeyStoreStatusChanged(WalletModel *walletmodel, CCryptoKeyStore *wallet)
+{
+ OutputDebugStringF("NotifyKeyStoreStatusChanged\n");
+ QMetaObject::invokeMethod(walletmodel, "updateStatus", Qt::QueuedConnection);
+}
+
+static void NotifyAddressBookChanged(WalletModel *walletmodel, CWallet *wallet, const std::string &address, const std::string &label, bool isMine, ChangeType status)
+{
+ OutputDebugStringF("NotifyAddressBookChanged %s %s isMine=%i status=%i\n", address.c_str(), label.c_str(), isMine, status);
+ QMetaObject::invokeMethod(walletmodel, "updateAddressBook", Qt::QueuedConnection,
+ Q_ARG(QString, QString::fromStdString(address)),
+ Q_ARG(QString, QString::fromStdString(label)),
+ Q_ARG(bool, isMine),
+ Q_ARG(int, status));
+}
+
+static void NotifyTransactionChanged(WalletModel *walletmodel, CWallet *wallet, const uint256 &hash, ChangeType status)
+{
+ OutputDebugStringF("NotifyTransactionChanged %s status=%i\n", hash.GetHex().c_str(), status);
+ QMetaObject::invokeMethod(walletmodel, "updateTransaction", Qt::QueuedConnection,
+ Q_ARG(QString, QString::fromStdString(hash.GetHex())),
+ Q_ARG(int, status));
+}
+
+void WalletModel::subscribeToCoreSignals()
+{
+ // Connect signals to wallet
+ wallet->NotifyStatusChanged.connect(boost::bind(&NotifyKeyStoreStatusChanged, this, _1));
+ wallet->NotifyAddressBookChanged.connect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5));
+ wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
+}
+
+void WalletModel::unsubscribeFromCoreSignals()
+{
+ // Disconnect signals from wallet
+ wallet->NotifyStatusChanged.disconnect(boost::bind(&NotifyKeyStoreStatusChanged, this, _1));
+ wallet->NotifyAddressBookChanged.disconnect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5));
+ wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
+}
+
// WalletModel::UnlockContext implementation
WalletModel::UnlockContext WalletModel::requestUnlock()
{
diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h
index 6c47f61bef..8b615ffe8e 100644
--- a/src/qt/walletmodel.h
+++ b/src/qt/walletmodel.h
@@ -24,6 +24,7 @@ class WalletModel : public QObject
Q_OBJECT
public:
explicit WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent = 0);
+ ~WalletModel();
enum StatusCode // Returned by sendCoins
{
@@ -118,6 +119,8 @@ private:
qint64 cachedNumTransactions;
EncryptionStatus cachedEncryptionStatus;
+ void subscribeToCoreSignals();
+ void unsubscribeFromCoreSignals();
signals:
// Signal that balance in wallet changed
void balanceChanged(qint64 balance, qint64 unconfirmedBalance);
@@ -137,8 +140,12 @@ signals:
void error(const QString &title, const QString &message, bool modal);
public slots:
- void update();
- void updateAddressList();
+ /* Wallet status might have changed */
+ void updateStatus();
+ /* New transaction, or transaction changed status */
+ void updateTransaction(const QString &hash, int status);
+ /* New, updated or removed address book entry */
+ void updateAddressBook(const QString &address, const QString &label, bool isMine, int status);
};