From 3f0816e3d926e0ea78ac7b6cd43efe62355885c8 Mon Sep 17 00:00:00 2001 From: Misbakh-Soloviev Vadim A Date: Sun, 28 Aug 2011 14:12:26 +0200 Subject: [PATCH] add russian translation and add unicode compatibility (merges pull request #20) --- .gitignore | 9 + bitcoin-qt.pro | 1 - scripts/extract_strings_qt.py | 2 +- src/init.cpp | 12 +- src/qt/bitcoin.cpp | 6 +- src/qt/bitcoingui.cpp | 8 +- src/qt/bitcoinstrings.cpp | 173 ++++++- src/qt/locale/bitcoin_ru.ts | 892 ++++++++++++++++++++++++++++++---- src/qt/transactionview.cpp | 30 +- 9 files changed, 985 insertions(+), 148 deletions(-) diff --git a/.gitignore b/.gitignore index aeeef170e..537064d30 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,12 @@ src/bitcoin src/bitcoind .*.swp *.*~* +#compilation and Qt preprocessor part +*.o +ui_*.h +*.qm +moc_* +Makefile +bitcoin-qt +#resources cpp +qrc_*.cpp \ No newline at end of file diff --git a/bitcoin-qt.pro b/bitcoin-qt.pro index c1493f6bf..e3dea66f1 100644 --- a/bitcoin-qt.pro +++ b/bitcoin-qt.pro @@ -152,4 +152,3 @@ CODECFORTR = UTF-8 # for lrelease/lupdate TRANSLATIONS = src/qt/locale/bitcoin_nl.ts src/qt/locale/bitcoin_de.ts \ src/qt/locale/bitcoin_ru.ts - diff --git a/scripts/extract_strings_qt.py b/scripts/extract_strings_qt.py index 56f47654c..6627de4ab 100755 --- a/scripts/extract_strings_qt.py +++ b/scripts/extract_strings_qt.py @@ -44,7 +44,7 @@ def parse_po(text): return messages -files = ['src/base58.h', 'src/bignum.h', 'src/db.cpp', 'src/db.h', 'src/externui.h', 'src/headers.h', 'src/init.cpp', 'src/init.h', 'src/irc.cpp', 'src/irc.h', 'src/key.h', 'src/main.cpp', 'src/main.h', 'src/net.cpp', 'src/net.h', 'src/noui.h', 'src/rpc.cpp', 'src/rpc.h', 'src/script.cpp', 'src/script.h', 'src/serialize.h', 'src/strlcpy.h', 'src/uint256.h', 'src/util.cpp', 'src/util.h'] +files = ['src/base58.h', 'src/bignum.h', 'src/db.cpp', 'src/db.h', 'src/headers.h', 'src/init.cpp', 'src/init.h', 'src/irc.cpp', 'src/irc.h', 'src/key.h', 'src/main.cpp', 'src/main.h', 'src/net.cpp', 'src/net.h', 'src/noui.h', 'src/script.cpp', 'src/script.h', 'src/serialize.h', 'src/strlcpy.h', 'src/uint256.h', 'src/util.cpp', 'src/util.h'] # xgettext -n --keyword=_ $FILES child = Popen(['xgettext','--output=-','-n','--keyword=_'] + files, stdout=PIPE) diff --git a/src/init.cpp b/src/init.cpp index c565a92e0..7d2a14fb9 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -372,21 +372,21 @@ bool AppInit2(int argc, char* argv[]) strErrors = ""; int64 nStart; - InitMessage("Loading addresses..."); + InitMessage(_("Loading addresses...")); printf("Loading addresses...\n"); nStart = GetTimeMillis(); if (!LoadAddresses()) strErrors += _("Error loading addr.dat \n"); printf(" addresses %15"PRI64d"ms\n", GetTimeMillis() - nStart); - InitMessage("Loading block index..."); + InitMessage(_("Loading block index...")); printf("Loading block index...\n"); nStart = GetTimeMillis(); if (!LoadBlockIndex()) strErrors += _("Error loading blkindex.dat \n"); printf(" block index %15"PRI64d"ms\n", GetTimeMillis() - nStart); - InitMessage("Loading wallet..."); + InitMessage(_("Loading wallet...")); printf("Loading wallet...\n"); nStart = GetTimeMillis(); bool fFirstRun; @@ -417,14 +417,14 @@ bool AppInit2(int argc, char* argv[]) } if (pindexBest != pindexRescan) { - InitMessage("Rescanning..."); + InitMessage(_("Rescanning...")); printf("Rescanning last %i blocks (from block %i)...\n", pindexBest->nHeight - pindexRescan->nHeight, pindexRescan->nHeight); nStart = GetTimeMillis(); pwalletMain->ScanForWalletTransactions(pindexRescan, true); printf(" rescan %15"PRI64d"ms\n", GetTimeMillis() - nStart); } - InitMessage("Done loading"); + InitMessage(_("Done loading")); printf("Done loading\n"); //// debug print @@ -547,7 +547,7 @@ bool AppInit2(int argc, char* argv[]) RandAddSeedPerfmon(); if (!CreateThread(StartNode, NULL)) - wxMessageBox("Error: CreateThread(StartNode) failed", "Bitcoin"); + wxMessageBox(_("Error: CreateThread(StartNode) failed"), "Bitcoin"); if (fServer) CreateThread(ThreadRPCServer, NULL); diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 9b4d88d91..6f4815758 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -111,6 +112,9 @@ std::string _(const char* psz) int main(int argc, char *argv[]) { + QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); + QTextCodec::setCodecForCStrings(QTextCodec::codecForTr()); + Q_INIT_RESOURCE(bitcoin); QApplication app(argc, argv); @@ -148,7 +152,7 @@ int main(int argc, char *argv[]) if (QtWin::isCompositionEnabled()) { -#ifdef Q_WS_WIN32 +#ifdef Q_OS_WIN // Windows-specific customization window.setAttribute(Qt::WA_TranslucentBackground); window.setAttribute(Qt::WA_NoSystemBackground, false); diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 22987267e..6aa14dcf8 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -59,16 +59,16 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): createActions(); // Menus - QMenu *file = menuBar()->addMenu("&File"); + QMenu *file = menuBar()->addMenu(tr("&File")); file->addAction(sendCoinsAction); file->addAction(receiveCoinsAction); file->addSeparator(); file->addAction(quitAction); - QMenu *settings = menuBar()->addMenu("&Settings"); + QMenu *settings = menuBar()->addMenu(tr("&Settings")); settings->addAction(optionsAction); - QMenu *help = menuBar()->addMenu("&Help"); + QMenu *help = menuBar()->addMenu(tr("&Help")); help->addAction(aboutAction); // Toolbars @@ -106,7 +106,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): centralWidget->addWidget(receiveCoinsPage); centralWidget->addWidget(sendCoinsPage); setCentralWidget(centralWidget); - + // Create status bar statusBar(); diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index 2fa8de052..45aadd49a 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -44,43 +44,174 @@ QT_TRANSLATE_NOOP("bitcoin-core", "This help message\n"), QT_TRANSLATE_NOOP("bitcoin-core", "" "Cannot obtain a lock on data directory %s. Bitcoin is probably already " "running."), +QT_TRANSLATE_NOOP("bitcoin-core", "Loading addresses..."), QT_TRANSLATE_NOOP("bitcoin-core", "Error loading addr.dat \n"), +QT_TRANSLATE_NOOP("bitcoin-core", "Loading block index..."), QT_TRANSLATE_NOOP("bitcoin-core", "Error loading blkindex.dat \n"), +QT_TRANSLATE_NOOP("bitcoin-core", "Loading wallet..."), +QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat: Wallet corrupted \n"), +QT_TRANSLATE_NOOP("bitcoin-core", "" +"Error loading wallet.dat: Wallet requires newer version of Bitcoin \n"), QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat \n"), +QT_TRANSLATE_NOOP("bitcoin-core", "Rescanning..."), +QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee="), QT_TRANSLATE_NOOP("bitcoin-core", "" "Warning: -paytxfee is set very high. This is the transaction fee you will " "pay if you send a transaction."), +QT_TRANSLATE_NOOP("bitcoin-core", "Error: CreateThread(StartNode) failed"), QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Disk space is low "), QT_TRANSLATE_NOOP("bitcoin-core", "" -"Error: This transaction requires a transaction fee of at least %s because of " -"its amount, complexity, or use of recently received funds "), -QT_TRANSLATE_NOOP("bitcoin-core", "Error: Transaction creation failed "), -QT_TRANSLATE_NOOP("bitcoin-core", "Sending..."), +"Unable to bind to port %d on this computer. Bitcoin is probably already " +"running."), +QT_TRANSLATE_NOOP("bitcoin-core", "" +"This transaction is over the size limit. You can still send it for a fee of " +"%s, which goes to the nodes that process your transaction and helps to " +"support the network. Do you want to pay the fee?"), +QT_TRANSLATE_NOOP("bitcoin-core", "Enter the current passphrase to the wallet."), +QT_TRANSLATE_NOOP("bitcoin-core", "Passphrase"), +QT_TRANSLATE_NOOP("bitcoin-core", "Please supply the current wallet decryption passphrase."), +QT_TRANSLATE_NOOP("bitcoin-core", "The passphrase entered for the wallet decryption was incorrect."), +QT_TRANSLATE_NOOP("bitcoin-core", "Status"), +QT_TRANSLATE_NOOP("bitcoin-core", "Date"), +QT_TRANSLATE_NOOP("bitcoin-core", "Description"), +QT_TRANSLATE_NOOP("bitcoin-core", "Debit"), +QT_TRANSLATE_NOOP("bitcoin-core", "Credit"), +QT_TRANSLATE_NOOP("bitcoin-core", "Open for %d blocks"), +QT_TRANSLATE_NOOP("bitcoin-core", "Open until %s"), +QT_TRANSLATE_NOOP("bitcoin-core", "%d/offline?"), +QT_TRANSLATE_NOOP("bitcoin-core", "%d/unconfirmed"), +QT_TRANSLATE_NOOP("bitcoin-core", "%d confirmations"), +QT_TRANSLATE_NOOP("bitcoin-core", "Generated"), +QT_TRANSLATE_NOOP("bitcoin-core", "Generated (%s matures in %d more blocks)"), +QT_TRANSLATE_NOOP("bitcoin-core", "" +"Generated - Warning: This block was not received by any other nodes and will " +"probably not be accepted!"), +QT_TRANSLATE_NOOP("bitcoin-core", "Generated (not accepted)"), +QT_TRANSLATE_NOOP("bitcoin-core", "From: "), +QT_TRANSLATE_NOOP("bitcoin-core", "Received with: "), +QT_TRANSLATE_NOOP("bitcoin-core", "Payment to yourself"), +QT_TRANSLATE_NOOP("bitcoin-core", "To: "), +QT_TRANSLATE_NOOP("bitcoin-core", " Generating"), +QT_TRANSLATE_NOOP("bitcoin-core", "(not connected)"), +QT_TRANSLATE_NOOP("bitcoin-core", " %d connections %d blocks %d transactions"), +QT_TRANSLATE_NOOP("bitcoin-core", "Wallet already encrypted."), +QT_TRANSLATE_NOOP("bitcoin-core", "" +"Enter the new passphrase to the wallet.\n" +"Please use a passphrase of 10 or more random characters, or eight or more " +"words."), +QT_TRANSLATE_NOOP("bitcoin-core", "Error: The supplied passphrase was too short."), +QT_TRANSLATE_NOOP("bitcoin-core", "" +"WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE " +"ALL OF YOUR BITCOINS!\n" +"Are you sure you wish to encrypt your wallet?"), +QT_TRANSLATE_NOOP("bitcoin-core", "Please re-enter your new wallet passphrase."), +QT_TRANSLATE_NOOP("bitcoin-core", "Error: the supplied passphrases didn't match."), +QT_TRANSLATE_NOOP("bitcoin-core", "Wallet encryption failed."), QT_TRANSLATE_NOOP("bitcoin-core", "" -"Error: The transaction was rejected. This might happen if some of the coins " -"in your wallet were already spent, such as if you used a copy of wallet.dat " -"and coins were spent in the copy but not marked as spent here."), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount"), +"Wallet Encrypted.\n" +"Remember that encrypting your wallet cannot fully protect your bitcoins from " +"being stolen by malware infecting your computer."), +QT_TRANSLATE_NOOP("bitcoin-core", "Wallet is unencrypted, please encrypt it first."), +QT_TRANSLATE_NOOP("bitcoin-core", "Enter the new passphrase for the wallet."), +QT_TRANSLATE_NOOP("bitcoin-core", "Re-enter the new passphrase for the wallet."), +QT_TRANSLATE_NOOP("bitcoin-core", "Wallet Passphrase Changed."), +QT_TRANSLATE_NOOP("bitcoin-core", "New Receiving Address"), +QT_TRANSLATE_NOOP("bitcoin-core", "" +"You should use a new address for each payment you receive.\n" +"\n" +"Label"), +QT_TRANSLATE_NOOP("bitcoin-core", "Status: "), +QT_TRANSLATE_NOOP("bitcoin-core", ", has not been successfully broadcast yet"), +QT_TRANSLATE_NOOP("bitcoin-core", ", broadcast through %d node"), +QT_TRANSLATE_NOOP("bitcoin-core", ", broadcast through %d nodes"), +QT_TRANSLATE_NOOP("bitcoin-core", "Date: "), +QT_TRANSLATE_NOOP("bitcoin-core", "Source: Generated
"), +QT_TRANSLATE_NOOP("bitcoin-core", "From: "), +QT_TRANSLATE_NOOP("bitcoin-core", "unknown"), +QT_TRANSLATE_NOOP("bitcoin-core", "To: "), +QT_TRANSLATE_NOOP("bitcoin-core", " (yours, label: "), +QT_TRANSLATE_NOOP("bitcoin-core", " (yours)"), +QT_TRANSLATE_NOOP("bitcoin-core", "Credit: "), +QT_TRANSLATE_NOOP("bitcoin-core", "(%s matures in %d more blocks)"), +QT_TRANSLATE_NOOP("bitcoin-core", "(not accepted)"), +QT_TRANSLATE_NOOP("bitcoin-core", "Debit: "), +QT_TRANSLATE_NOOP("bitcoin-core", "Transaction fee: "), +QT_TRANSLATE_NOOP("bitcoin-core", "Net amount: "), +QT_TRANSLATE_NOOP("bitcoin-core", "Message:"), +QT_TRANSLATE_NOOP("bitcoin-core", "Comment:"), +QT_TRANSLATE_NOOP("bitcoin-core", "" +"Generated coins must wait 120 blocks before they can be spent. When you " +"generated this block, it was broadcast to the network to be added to the " +"block chain. If it fails to get into the chain, it will change to \"not " +"accepted\" and not be spendable. This may occasionally happen if another " +"node generates a block within a few seconds of yours."), +QT_TRANSLATE_NOOP("bitcoin-core", "Cannot write autostart/bitcoin.desktop file"), +QT_TRANSLATE_NOOP("bitcoin-core", "Main"), +QT_TRANSLATE_NOOP("bitcoin-core", "&Start Bitcoin on window system startup"), +QT_TRANSLATE_NOOP("bitcoin-core", "&Minimize on close"), +QT_TRANSLATE_NOOP("bitcoin-core", "version %s"), +QT_TRANSLATE_NOOP("bitcoin-core", "Error in amount "), +QT_TRANSLATE_NOOP("bitcoin-core", "Send Coins"), +QT_TRANSLATE_NOOP("bitcoin-core", "Amount exceeds your balance "), +QT_TRANSLATE_NOOP("bitcoin-core", "Total exceeds your balance when the "), +QT_TRANSLATE_NOOP("bitcoin-core", " transaction fee is included "), +QT_TRANSLATE_NOOP("bitcoin-core", "Payment sent "), +QT_TRANSLATE_NOOP("bitcoin-core", "Sending..."), +QT_TRANSLATE_NOOP("bitcoin-core", "Invalid address "), +QT_TRANSLATE_NOOP("bitcoin-core", "Sending %s to %s"), +QT_TRANSLATE_NOOP("bitcoin-core", "CANCELLED"), +QT_TRANSLATE_NOOP("bitcoin-core", "Cancelled"), +QT_TRANSLATE_NOOP("bitcoin-core", "Transfer cancelled "), +QT_TRANSLATE_NOOP("bitcoin-core", "Error: "), QT_TRANSLATE_NOOP("bitcoin-core", "Insufficient funds"), -QT_TRANSLATE_NOOP("bitcoin-core", "Invalid bitcoin address"), +QT_TRANSLATE_NOOP("bitcoin-core", "Connecting..."), +QT_TRANSLATE_NOOP("bitcoin-core", "Unable to connect"), +QT_TRANSLATE_NOOP("bitcoin-core", "Requesting public key..."), +QT_TRANSLATE_NOOP("bitcoin-core", "Received public key..."), +QT_TRANSLATE_NOOP("bitcoin-core", "Recipient is not accepting transactions sent by IP address"), +QT_TRANSLATE_NOOP("bitcoin-core", "Transfer was not accepted"), +QT_TRANSLATE_NOOP("bitcoin-core", "Invalid response received"), +QT_TRANSLATE_NOOP("bitcoin-core", "Creating transaction..."), QT_TRANSLATE_NOOP("bitcoin-core", "" -"Unable to bind to port %d on this computer. Bitcoin is probably already " -"running."), -QT_TRANSLATE_NOOP("bitcoin-core", "To use the %s option"), +"This transaction requires a transaction fee of at least %s because of its " +"amount, complexity, or use of recently received funds"), +QT_TRANSLATE_NOOP("bitcoin-core", "Transaction creation failed"), +QT_TRANSLATE_NOOP("bitcoin-core", "Transaction aborted"), +QT_TRANSLATE_NOOP("bitcoin-core", "Lost connection, transaction cancelled"), +QT_TRANSLATE_NOOP("bitcoin-core", "Sending payment..."), +QT_TRANSLATE_NOOP("bitcoin-core", "" +"The transaction was rejected. This might happen if some of the coins in " +"your wallet were already spent, such as if you used a copy of wallet.dat and " +"coins were spent in the copy but not marked as spent here."), +QT_TRANSLATE_NOOP("bitcoin-core", "Waiting for confirmation..."), QT_TRANSLATE_NOOP("bitcoin-core", "" -"Warning: %s, you must set rpcpassword=\n" -"in the configuration file: %s\n" -"If the file does not exist, create it with owner-readable-only file " -"permissions.\n"), +"The payment was sent, but the recipient was unable to verify it.\n" +"The transaction is recorded and will credit to the recipient,\n" +"but the comment information will be blank."), +QT_TRANSLATE_NOOP("bitcoin-core", "Payment was sent, but an invalid response was received"), +QT_TRANSLATE_NOOP("bitcoin-core", "Payment completed"), +QT_TRANSLATE_NOOP("bitcoin-core", "Name"), +QT_TRANSLATE_NOOP("bitcoin-core", "Address"), +QT_TRANSLATE_NOOP("bitcoin-core", "Label"), +QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin Address"), QT_TRANSLATE_NOOP("bitcoin-core", "" -"You must set rpcpassword= in the configuration file:\n" -"%s\n" -"If the file does not exist, create it with owner-readable-only file " -"permissions."), +"This is one of your own addresses for receiving payments and cannot be " +"entered in the address book. "), +QT_TRANSLATE_NOOP("bitcoin-core", "Edit Address"), +QT_TRANSLATE_NOOP("bitcoin-core", "Edit Address Label"), +QT_TRANSLATE_NOOP("bitcoin-core", "Add Address"), +QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin"), +QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin - Generating"), +QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin - (not connected)"), +QT_TRANSLATE_NOOP("bitcoin-core", "&Open Bitcoin"), +QT_TRANSLATE_NOOP("bitcoin-core", "&Send Bitcoins"), +QT_TRANSLATE_NOOP("bitcoin-core", "O&ptions..."), +QT_TRANSLATE_NOOP("bitcoin-core", "E&xit"), +QT_TRANSLATE_NOOP("bitcoin-core", "Program has crashed and will terminate. "), QT_TRANSLATE_NOOP("bitcoin-core", "" "Warning: Please check that your computer's date and time are correct. If " "your clock is wrong Bitcoin will not work properly."), -QT_TRANSLATE_NOOP("bitcoin-core", "-beta"), +QT_TRANSLATE_NOOP("bitcoin-core", "beta"), }; \ No newline at end of file diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index df9a25911..6085602f9 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -124,6 +124,21 @@ This product includes software developed by the OpenSSL Project for use in the O Bitcoin Wallet Bitcoin-бумажник + + + &File + &Файл + + + + &Settings + &Настройки + + + + &Help + &Помощь + Tabs toolbar @@ -772,12 +787,12 @@ p, li { white-space: pre-wrap; } Open for %1 blocks - + Открыто до получения %1 блоков Open until %1 - + Открыто до %1 @@ -942,15 +957,15 @@ p, li { white-space: pre-wrap; } Open for %n block(s) - - - + Открыто до получения %n блока + Открыто до получения %n блоков + Открыто до получения %n блоков Open until %1 - + Открыто до %1 @@ -970,7 +985,7 @@ p, li { white-space: pre-wrap; } Mined balance will be available in %n more blocks - + Добытыми монетами можно будет воспользоваться через %n блок Добытыми монетами можно будет воспользоваться через %n блока Добытыми монетами можно будет воспользоваться через %n блоков @@ -1110,6 +1125,36 @@ p, li { white-space: pre-wrap; } Other Другое + + + Enter address or label to search + Введите адрес или метку для поиска + + + + Min amount + Мин. сумма + + + + Copy address + Копировать адрес + + + + Copy label + Копировать метку + + + + Edit label + Изменить метку + + + + Show details... + Показать детали... + Export Transaction Data @@ -1120,6 +1165,41 @@ p, li { white-space: pre-wrap; } Comma separated file (*.csv) Текс, разделённый запятыми (*.csv) + + + Confirmed + Подтверждено + + + + Date + Дата + + + + Type + Тип + + + + Label + Метка + + + + Address + Адрес + + + + Amount + Количество + + + + ID + + Error exporting @@ -1130,6 +1210,16 @@ p, li { white-space: pre-wrap; } Could not write to file %1. Невозможно записать в файл %1. + + + Range: + Промежуток от: + + + + to + до + WalletModel @@ -1144,336 +1234,940 @@ p, li { white-space: pre-wrap; } Bitcoin version - + Версия Usage: - + Использование: Send command to -server or bitcoind - + Отправить команду на сервер ( -server ) или демону + List commands - + Список команд + Get help for a command - + Получить помощь по команде Options: - + Опции: + Specify configuration file (default: bitcoin.conf) - + Указать конфигурационный файл вместо используемого по умолчанию (bitcoin.conf) + Specify pid file (default: bitcoind.pid) - + Указать pid-файл вместо используемого по умолчанию (bitcoin.pid) + Generate coins - + Включить добычу монет + Don't generate coins - + Выключить добычу монет + Start minimized - + Запускать минимизированным + Specify data directory - + Указать рабочую директорию + Specify connection timeout (in milliseconds) - + Указать таймаут соединения (в миллисекундах) + Connect through socks4 proxy - + Соединяться через socks4-прокси + Allow DNS lookups for addnode and connect - + Разрешить поиск в DNS для комманд "addnode" и "connect" + Add a node to connect to - + Добавить узел для соединения + Connect only to the specified node - + Соединяться только с указанным узлом + Don't accept connections from outside - + Не принимать внешние соединения + Don't attempt to use UPnP to map the listening port - + Не пытаться использовать UPnP + Attempt to use UPnP to map the listening port - + Попытаться использовать UPnP для проброса прослушиваемого порта на роутере + Fee per KB to add to transactions you send - + Комиссия (за каждый KB транзакции) + Accept command line and JSON-RPC commands - + Принимать команды из командной строки и через JSON-RPC + Run in the background as a daemon and accept commands - + Запустить в бекграунде (как демон) и принимать команды + Use the test network - + Использовать тестовую сеть + Username for JSON-RPC connections - + Имя пользователя для JSON-RPC соединений + Password for JSON-RPC connections - + Пароль для JSON-RPC соединений + Listen for JSON-RPC connections on <port> (default: 8332) - + Слушать <порт> для JSON-RPC соединений (по умолчанию: 8332) + Allow JSON-RPC connections from specified IP address - + Разрешить JSON-RPC соединения с указанного адреса + Send commands to node running on <ip> (default: 127.0.0.1) - + Отправлять команды на узел,запущенный на <IP> (по умолчанию: 127.0.0.1) + Set key pool size to <n> (default: 100) - + Установить размер key pool'а в <n> (по умолчанию: 100) + Rescan the block chain for missing wallet transactions - + Просканировать цепочку блоков в поисках пропущенных транзакций для бумажника + SSL options: (see the Bitcoin Wiki for SSL setup instructions) - + Опции SSL: (см. Bitcoin Wiki для инструкций) + Use OpenSSL (https) for JSON-RPC connections - + Использовать OpenSSL (https) для JSON-RPC соединений + Server certificate file (default: server.cert) - + Сертификат (публичный ключ) сервера (по умолчанию: server.cert) + Server private key (default: server.pem) - + Закрытый ключ сервера (по умолчанию: server.pem) + Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH) - + Допустимые Cipher'ы для сервера (по умолчанию: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH) + This help message - + Данная справка + Cannot obtain a lock on data directory %s. Bitcoin is probably already running. - + Невозможно установить блокировку на рабочую директорию %s. Возможно, бумажник уже запущен. - Error loading addr.dat - - + Loading addresses... + Загрузка адресов... - Error loading blkindex.dat + Error loading addr.dat - + Ошибка при загрузке addr.dat + - Error loading wallet.dat - - + Loading block index... + Загрузка индекса блоков... - Invalid -proxy address - + Error loading blkindex.dat + + Ошибка при загрузке blkindex.dat + - Invalid amount for -paytxfee=<amount> - + Loading wallet... + Загрузка бумажника... - Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction. - + Error loading wallet.dat: Wallet corrupted + + Ошибка загрузки wallet.dat: Бумажник повреждён + + + + Error loading wallet.dat: Wallet requires newer version of Bitcoin + + Ошибка загрузки wallet.dat: Для данного бумажника требуется более новая версия Bitcoin + - Warning: Disk space is low - + Error loading wallet.dat + + Ошибка при загрузке wallet.dat + - Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds - + Rescanning... + Сканирование... + + + + Done loading + Загрузка завершена + + + + Invalid -proxy address + Ошибка в адресе прокси - Error: Transaction creation failed - + Invalid amount for -paytxfee=<amount> + Ошибка в сумме комиссии - Sending... - + Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction. + ВНИМАНИЕ: Установлена слишком большая комиссия (-paytxfee=). Данный параметр отвечает за комиссию, которую Вы будете добавлять к сумме при осуществлении транзакций. - - 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. - + + Error: CreateThread(StartNode) failed + Ошибка: Созданиние потока (запуск узла) не удался - - Invalid amount - + + Warning: Disk space is low + ВНИМАНИЕ: На диске заканчивается свободное пространство - - Insufficient funds - + + This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee? + Данная транзакция превышает предельно допустимый размер. Но Вы можете всё равно совершить ей, добавив комиссию в %s, которая отправится тем узлам, которые обработают Вашу транзакцию и поможет поддержать сеть. Вы хотите добавить комиссию? - - Invalid bitcoin address - + + Enter the current passphrase to the wallet. + Введите текущий пароль от бумажника. - - Unable to bind to port %d on this computer. Bitcoin is probably already running. - + + Passphrase + Пароль - - To use the %s option - + + Please supply the current wallet decryption passphrase. + Пожалуйста, укажите текущий пароль для расшифровки бумажника. - - Warning: %s, you must set rpcpassword=<password> -in the configuration file: %s -If the file does not exist, create it with owner-readable-only file permissions. - - + + The passphrase entered for the wallet decryption was incorrect. + Указанный пароль не подходит. + + + + Status + Статус - You must set rpcpassword=<password> in the configuration file: -%s -If the file does not exist, create it with owner-readable-only file permissions. - + Date + Дата + + + + Description + Описание + + + + Debit + Дебет + + + + Credit + Кредит + + + + Open for %d blocks + Открыто до получения %d блоков - Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly. - + Open until %s + Открыто до %s + + + + %d/offline? + %d/оффлайн? + + + + %d/unconfirmed + %d/не подтверждено - -beta - + %d confirmations + %d подтверждений + + + + Generated + Сгенерированно + + + + Generated (%s matures in %d more blocks) + Сгенерированно (%s «созреет» через %d блоков) + + + + Generated - Warning: This block was not received by any other nodes and will probably not be accepted! + Сгенерированно - ВНИМАНИЕ: Данный блок не был получен ни одним другим узлом и, возможно, не будет подтверждён! + + + + Generated (not accepted) + Сгенерированно (не подтверждено) + + + + From: + Отправитель: + + + + Received with: + Получатель: + + + + Payment to yourself + Отправлено себе + + + + To: + Получатель: + + + + Generating + Генерация + + + + (not connected) + (не подключено) + + + + %d connections %d blocks %d transactions + %d подключений %d блоков %d транзакций + + + + Wallet already encrypted. + Бумажник уже зашифрован. + + + + Enter the new passphrase to the wallet. +Please use a passphrase of 10 or more random characters, or eight or more words. + Введите новый пароль для бумажника. +Пожалуйста, используейте пароль из 10 и более случайных символов или из 8 и более слов. + + + + Error: The supplied passphrase was too short. + ОШИБКА: Указанный пароль слишком короткий. + + + + WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS! +Are you sure you wish to encrypt your wallet? + ВНИМАНИЕ: Если Вы зашифруете Ваш бумажник и потеряете Ваш пароль — Вы ПОТЕРЯЕТЕ ВСЕ ВАШИ БИТКОИНЫ!!! +Вы уверены, что хотите зашифровать бумажник? + + + + Please re-enter your new wallet passphrase. + Пожалуйста, повторите ввод нового пароля. + + + + Error: the supplied passphrases didn't match. + ОШИБКА: указанные пароли не совпадают. + + + + Wallet encryption failed. + Шифрование бумажника не удалось. + + + + Wallet Encrypted. +Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + Бумажник зашифрован. +Запомните, что шифрование Вашего бумажника не может ПОЛНОСТЬЮ гарантировать защиту Ваших биткоинов от того, чтобы быть украденными с помощью шпионского ПО на Вашем компьютере. Пожалуйста, следите за безопасностью Вашего компьютера самостоятельно. + + + + Wallet is unencrypted, please encrypt it first. + Бумажник не зашифрован. Сначала зашифруйте его. + + + + Enter the new passphrase for the wallet. + Введите новый пароль для бумажника. + + + + Re-enter the new passphrase for the wallet. + Пожалуйста, повторите ввод нового пароля. + + + + Wallet Passphrase Changed. + Пароль от бумажника изменён. + + + + New Receiving Address + Новый адрес для получения + + + + You should use a new address for each payment you receive. + +Label + Вы должны использовать новый адрес для каждого платежа, который Вы получаете. + +Метка + + + + <b>Status:</b> + <b>Статус:</b> + + + + , has not been successfully broadcast yet + , ещё не было успешно разослано + + + + , broadcast through %d node + , разослано через %d узел + + + + , broadcast through %d nodes + , разослано через %d узлов + + + + <b>Date:</b> + <b>Дата:</b> + + + + <b>Source:</b> Generated<br> + <b>Источник:</b> [сгенерированно]<br> + + + + <b>From:</b> + <b>Отправитель:</b> + + + + unknown + неизвестно + + + + <b>To:</b> + <b>Получатель:</b> + + + + (yours, label: + (Ваш, метка: + + + + (yours) + (ваш) + + + + <b>Credit:</b> + <b>Кредит:</b> + + + + (%s matures in %d more blocks) + (%s «созреет» через %d блоков) + + + + (not accepted) + (не принято) + + + + <b>Debit:</b> + <b>Дебет:</b> + + + + <b>Transaction fee:</b> + <b>Комиссия:</b> + + + + <b>Net amount:</b> + <b>Общая сумма:</b> + + + + Message: + Сообщение: + + + + Comment: + Комментарий: + + + + Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to "not accepted" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. + Сгенерированные монеты должны подождать 120 блоков прежде, чем они смогут быть отправлены. Когда Вы сгенерировали этот блок он был отправлен в сеть, чтобы он был добавлен к цепочке блоков. Если данная процедура не удастся, статус изменится на «не подтверждено» и монеты будут непередаваемыми. Такое может случайно происходить в случае, если другой узел сгенерирует блок на несколько секунд раньше. + + + + Cannot write autostart/bitcoin.desktop file + Не возможно записать файл autostart/bitcoin.desktop + + + + Main + Основное + + + + &Start Bitcoin on window system startup + &Запускать бумажник при входе в систему + + + + &Minimize on close + С&ворачивать вместо закрытия + + + + version %s + версия %s + + + + Error in amount + Ошибка в количестве + + + + Send Coins + Отправка + + + + Amount exceeds your balance + Сумма превышает Ваш баланс + + + + Total exceeds your balance when the + Общая сумма превысит Ваш баланс, если к транзакции будет добавлено ещё + + + + transaction fee is included + в качестве комиссии + + + + Payment sent + Платёж отправлен + + + + Invalid address + Ошибочный адрес + + + + Sending %s to %s + Отправка %s адресату %s + + + + CANCELLED + ОТМЕНЕНО + + + + Cancelled + Отменено + + + + Transfer cancelled + Транзакция отменена + + + + Error: + ОШИБКА: + + + + Connecting... + Подключение... + + + + Unable to connect + Невозможно подключиться + + + + Requesting public key... + Запрашивается открытый ключ... + + + + Received public key... + Получается публичный ключ... + + + + Recipient is not accepting transactions sent by IP address + Получатель не принимает транзакции, отправленные на IP адрес + + + + Transfer was not accepted + Передача была отвергнута + + + + Invalid response received + Получен неверный ответ + + + + Creating transaction... + Создание транзакции... + + + + This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds + Данная транзакция требует добавления комиссии (по крайней мере в %s) из-за её размера, сложности, или из-за использования недавно полученных монет + + + + Transaction creation failed + Создание транзакции провалилось + + + + Transaction aborted + Транзакция отменена + + + + Lost connection, transaction cancelled + Потеряно соединение, транзакция отменена + + + + Sending payment... + Отправка платежа... + + + + 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. + В транзакции отказано. Такое может произойти, если некоторые монеты уже были потрачены, например, если Вы используете одну копию бумажника (wallet.dat), а монеты были потрачены из другой копии, но не были отмечены как потраченные в этой. Или в случае кражи (компрометации) Вашего бумажника. + + + + Waiting for confirmation... + Ожидание подтверждения... + + + + The payment was sent, but the recipient was unable to verify it. +The transaction is recorded and will credit to the recipient, +but the comment information will be blank. + Платёж был отправлен, но получатель не смог подтвердить его. +Транзакция записана и будет зачислена получателю, +но комментарий к платежу будет пустым. + + + + Payment was sent, but an invalid response was received + Платёж был отправлен, но был получен неверный ответ + + + + Payment completed + Платёж завершён + + + + Name + Имя + + + + Address + Адрес + + + + Label + Метка + + + + Bitcoin Address + Bitcoin-адрес + + + + This is one of your own addresses for receiving payments and cannot be entered in the address book. + Это один из Ваших личных адресов для получения платежей. Он не может быть добавлен в адресную книгу. + + + + Edit Address + Изменить адрес + + + + Edit Address Label + Изменить метку + + + + Add Address + Добавить адрес + + + + Bitcoin + + + + + Bitcoin - Generating + Bitcoin - Генерация + + + + Bitcoin - (not connected) + Bitcoin - (нет связи) + + + + &Open Bitcoin + &Показать бумажник + + + + &Send Bitcoins + Отп&равка + + + + O&ptions... + Оп&ции... + + + + E&xit + Вы&ход + + + + Program has crashed and will terminate. + Программа экстренно завершилась и будет уничтожена. + + + + beta + бета + + + + Sending... + Отправка... + + + + Insufficient funds + Недостаточно монет + + + + Unable to bind to port %d on this computer. Bitcoin is probably already running. + Невозможно забиндить порт %d на данном компьютере. Возможно, бумажник ужк запущен. + + + + Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly. + ВНИМАНИЕ: Проверьте дату и время, установленные на Вашем компьютере. Если Ваши часы идут не правильно Bitcoin может наботать не корректно. diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp index 0b2a3e609..b2777b7b2 100644 --- a/src/qt/transactionview.cpp +++ b/src/qt/transactionview.cpp @@ -71,13 +71,13 @@ TransactionView::TransactionView(QWidget *parent) : addressWidget = new QLineEdit(this); #if QT_VERSION >= 0x040700 - addressWidget->setPlaceholderText("Enter address or label to search"); + addressWidget->setPlaceholderText(tr("Enter address or label to search")); #endif hlayout->addWidget(addressWidget); amountWidget = new QLineEdit(this); #if QT_VERSION >= 0x040700 - amountWidget->setPlaceholderText("Min amount"); + amountWidget->setPlaceholderText(tr("Min amount")); #endif amountWidget->setMaximumWidth(100); amountWidget->setMinimumWidth(100); @@ -105,10 +105,10 @@ TransactionView::TransactionView(QWidget *parent) : transactionView = view; // Actions - QAction *copyAddressAction = new QAction("Copy address", this); - QAction *copyLabelAction = new QAction("Copy label", this); - QAction *editLabelAction = new QAction("Edit label", this); - QAction *showDetailsAction = new QAction("Show details...", this); + QAction *copyAddressAction = new QAction(tr("Copy address"), this); + QAction *copyLabelAction = new QAction(tr("Copy label"), this); + QAction *editLabelAction = new QAction(tr("Edit label"), this); + QAction *showDetailsAction = new QAction(tr("Show details..."), this); contextMenu = new QMenu(); contextMenu->addAction(copyAddressAction); @@ -251,13 +251,13 @@ void TransactionView::exportClicked() // name, column, role writer.setModel(transactionProxyModel); - writer.addColumn("Confirmed", 0, TransactionTableModel::ConfirmedRole); - writer.addColumn("Date", 0, TransactionTableModel::DateRole); - writer.addColumn("Type", TransactionTableModel::Type, Qt::EditRole); - writer.addColumn("Label", 0, TransactionTableModel::LabelRole); - writer.addColumn("Address", 0, TransactionTableModel::AddressRole); - writer.addColumn("Amount", 0, TransactionTableModel::FormattedAmountRole); - writer.addColumn("ID", 0, TransactionTableModel::TxIDRole); + writer.addColumn(tr("Confirmed"), 0, TransactionTableModel::ConfirmedRole); + writer.addColumn(tr("Date"), 0, TransactionTableModel::DateRole); + writer.addColumn(tr("Type"), TransactionTableModel::Type, Qt::EditRole); + writer.addColumn(tr("Label"), 0, TransactionTableModel::LabelRole); + writer.addColumn(tr("Address"), 0, TransactionTableModel::AddressRole); + writer.addColumn(tr("Amount"), 0, TransactionTableModel::FormattedAmountRole); + writer.addColumn(tr("ID"), 0, TransactionTableModel::TxIDRole); if(!writer.write()) { @@ -349,7 +349,7 @@ QWidget *TransactionView::createDateRangeWidget() QHBoxLayout *layout = new QHBoxLayout(dateRangeWidget); layout->setContentsMargins(0,0,0,0); layout->addSpacing(23); - layout->addWidget(new QLabel("Range:")); + layout->addWidget(new QLabel(tr("Range:"))); dateFrom = new QDateTimeEdit(this); dateFrom->setDisplayFormat("dd/MM/yy"); @@ -357,7 +357,7 @@ QWidget *TransactionView::createDateRangeWidget() dateFrom->setMinimumWidth(100); dateFrom->setDate(QDate::currentDate().addDays(-7)); layout->addWidget(dateFrom); - layout->addWidget(new QLabel("to")); + layout->addWidget(new QLabel(tr("to"))); dateTo = new QDateTimeEdit(this); dateTo->setDisplayFormat("dd/MM/yy");