diff options
Diffstat (limited to 'src')
115 files changed, 17626 insertions, 2699 deletions
diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include index 3ac21b1326..17ba0780e6 100644 --- a/src/Makefile.qt_locale.include +++ b/src/Makefile.qt_locale.include @@ -27,6 +27,7 @@ QT_TS = \ qt/locale/bitcoin_fi.ts \ qt/locale/bitcoin_fil.ts \ qt/locale/bitcoin_fr.ts \ + qt/locale/bitcoin_gl_ES.ts \ qt/locale/bitcoin_he.ts \ qt/locale/bitcoin_hi.ts \ qt/locale/bitcoin_hr.ts \ @@ -71,7 +72,6 @@ QT_TS = \ qt/locale/bitcoin_ta.ts \ qt/locale/bitcoin_te.ts \ qt/locale/bitcoin_th.ts \ - qt/locale/bitcoin_tr.ts \ qt/locale/bitcoin_uk.ts \ qt/locale/bitcoin_ur.ts \ qt/locale/bitcoin_uz@Cyrl.ts \ @@ -82,4 +82,5 @@ QT_TS = \ qt/locale/bitcoin_zh.ts \ qt/locale/bitcoin_zh_CN.ts \ qt/locale/bitcoin_zh_HK.ts \ - qt/locale/bitcoin_zh_TW.ts + qt/locale/bitcoin_zh_TW.ts \ + qt/locale/bitcoin_zu.ts diff --git a/src/bench/checkblock.cpp b/src/bench/checkblock.cpp index dc0aa4031c..a9f3f5f84d 100644 --- a/src/bench/checkblock.cpp +++ b/src/bench/checkblock.cpp @@ -34,7 +34,8 @@ static void DeserializeAndCheckBlockTest(benchmark::Bench& bench) char a = '\0'; stream.write(&a, 1); // Prevent compaction - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + ArgsManager bench_args; + const auto chainParams = CreateChainParams(bench_args, CBaseChainParams::MAIN); bench.unit("block").run([&] { CBlock block; // Note that CBlock caches its checked state, so we need to recreate it here diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index e94d4dff49..28394e7041 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -51,6 +51,7 @@ static void SetupCliArgs(ArgsManager& argsman) const auto defaultBaseParams = CreateBaseChainParams(CBaseChainParams::MAIN); const auto testnetBaseParams = CreateBaseChainParams(CBaseChainParams::TESTNET); + const auto signetBaseParams = CreateBaseChainParams(CBaseChainParams::SIGNET); const auto regtestBaseParams = CreateBaseChainParams(CBaseChainParams::REGTEST); argsman.AddArg("-version", "Print version and exit", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); @@ -66,7 +67,7 @@ static void SetupCliArgs(ArgsManager& argsman) argsman.AddArg("-rpcconnect=<ip>", strprintf("Send commands to node running on <ip> (default: %s)", DEFAULT_RPCCONNECT), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-rpccookiefile=<loc>", "Location of the auth cookie. Relative paths will be prefixed by a net-specific datadir location. (default: data dir)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-rpcpassword=<pw>", "Password for JSON-RPC connections", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); - argsman.AddArg("-rpcport=<port>", strprintf("Connect to JSON-RPC on <port> (default: %u, testnet: %u, regtest: %u)", defaultBaseParams->RPCPort(), testnetBaseParams->RPCPort(), regtestBaseParams->RPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::OPTIONS); + argsman.AddArg("-rpcport=<port>", strprintf("Connect to JSON-RPC on <port> (default: %u, testnet: %u, signet: %u, regtest: %u)", defaultBaseParams->RPCPort(), testnetBaseParams->RPCPort(), signetBaseParams->RPCPort(), regtestBaseParams->RPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::OPTIONS); argsman.AddArg("-rpcuser=<user>", "Username for JSON-RPC connections", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-rpcwait", "Wait for RPC server to start", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-rpcwallet=<walletname>", "Send RPC for non-default wallet on RPC server (needs to exactly match corresponding -wallet option passed to bitcoind). This changes the RPC endpoint used, e.g. http://127.0.0.1:8332/wallet/<walletname>", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); @@ -595,6 +596,7 @@ static UniValue CallRPC(BaseRequestHandler* rh, const std::string& strMethod, co assert(output_headers); evhttp_add_header(output_headers, "Host", host.c_str()); evhttp_add_header(output_headers, "Connection", "close"); + evhttp_add_header(output_headers, "Content-Type", "application/json"); evhttp_add_header(output_headers, "Authorization", (std::string("Basic ") + EncodeBase64(strRPCUserColonPass)).c_str()); // Attach request data diff --git a/src/chainparams.cpp b/src/chainparams.cpp index d7f7888ef3..ef501e9de2 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -265,11 +265,21 @@ public: vSeeds.clear(); if (!args.IsArgSet("-signetchallenge")) { - LogPrintf("Using default signet network\n"); bin = ParseHex("512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be430210359ef5021964fe22d6f8e05b2463c9540ce96883fe3b278760f048f5189f2e6c452ae"); vSeeds.emplace_back("178.128.221.177"); vSeeds.emplace_back("2a01:7c8:d005:390::5"); vSeeds.emplace_back("ntv3mtqw5wt63red.onion:38333"); + + consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000000000000000d145533ce"); + consensus.defaultAssumeValid = uint256S("0x00000128807d9175c494e24d805fc7854f7d79aa965cbb128342ad8b70cecfa5"); // 5348 + m_assumed_blockchain_size = 1; + m_assumed_chain_state_size = 0; + chainTxData = ChainTxData{ + // Data from RPC: getchaintxstats 4096 00000128807d9175c494e24d805fc7854f7d79aa965cbb128342ad8b70cecfa5 + /* nTime */ 1601382000, + /* nTxCount */ 5435, + /* dTxRate */ 0.001898346323372538, + }; } else { const auto signet_challenge = args.GetArgs("-signetchallenge"); if (signet_challenge.size() != 1) { @@ -277,6 +287,13 @@ public: } bin = ParseHex(signet_challenge[0]); + m_assumed_blockchain_size = 0; + m_assumed_chain_state_size = 0; + chainTxData = ChainTxData{ + 0, + 0, + 0, + }; LogPrintf("Signet with challenge %s\n", signet_challenge[0]); } @@ -309,12 +326,9 @@ public: h << consensus.signet_challenge; uint256 hash = h.GetHash(); memcpy(pchMessageStart, hash.begin(), 4); - LogPrintf("Signet derived magic (message start): %s\n", HexStr({pchMessageStart, pchMessageStart + 4})); nDefaultPort = 38333; nPruneAfterHeight = 1000; - m_assumed_blockchain_size = 0; - m_assumed_chain_state_size = 0; genesis = CreateGenesisBlock(1598918400, 52613770, 0x1e0377ae, 1, 50 * COIN); consensus.hashGenesisBlock = genesis.GetHash(); @@ -335,12 +349,6 @@ public: fRequireStandard = true; m_is_test_chain = true; m_is_mockable_chain = false; - - chainTxData = ChainTxData{ - 0, - 0, - 0 - }; } }; @@ -485,16 +493,16 @@ const CChainParams &Params() { return *globalChainParams; } -std::unique_ptr<const CChainParams> CreateChainParams(const std::string& chain) +std::unique_ptr<const CChainParams> CreateChainParams(const ArgsManager& args, const std::string& chain) { if (chain == CBaseChainParams::MAIN) { return std::unique_ptr<CChainParams>(new CMainParams()); } else if (chain == CBaseChainParams::TESTNET) { return std::unique_ptr<CChainParams>(new CTestNetParams()); } else if (chain == CBaseChainParams::SIGNET) { - return std::unique_ptr<CChainParams>(new SigNetParams(gArgs)); + return std::unique_ptr<CChainParams>(new SigNetParams(args)); } else if (chain == CBaseChainParams::REGTEST) { - return std::unique_ptr<CChainParams>(new CRegTestParams(gArgs)); + return std::unique_ptr<CChainParams>(new CRegTestParams(args)); } throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain)); } @@ -502,5 +510,5 @@ std::unique_ptr<const CChainParams> CreateChainParams(const std::string& chain) void SelectParams(const std::string& network) { SelectBaseParams(network); - globalChainParams = CreateChainParams(network); + globalChainParams = CreateChainParams(gArgs, network); } diff --git a/src/chainparams.h b/src/chainparams.h index 7aa999fb75..d8b25c7220 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -119,7 +119,7 @@ protected: * @returns a CChainParams* of the chosen chain. * @throws a std::runtime_error if the chain is not supported. */ -std::unique_ptr<const CChainParams> CreateChainParams(const std::string& chain); +std::unique_ptr<const CChainParams> CreateChainParams(const ArgsManager& args, const std::string& chain); /** * Return the currently selected parameters. This won't change after app diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp index 034e897ca6..603969aaea 100644 --- a/src/chainparamsbase.cpp +++ b/src/chainparamsbase.cpp @@ -18,13 +18,13 @@ const std::string CBaseChainParams::REGTEST = "regtest"; void SetupChainParamsBaseOptions(ArgsManager& argsman) { - argsman.AddArg("-chain=<chain>", "Use the chain <chain> (default: main). Allowed values: main, test, regtest", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); + argsman.AddArg("-chain=<chain>", "Use the chain <chain> (default: main). Allowed values: main, test, signet, regtest", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); argsman.AddArg("-regtest", "Enter regression test mode, which uses a special chain in which blocks can be solved instantly. " "This is intended for regression testing tools and app development. Equivalent to -chain=regtest.", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS); argsman.AddArg("-segwitheight=<n>", "Set the activation height of segwit. -1 to disable. (regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::DEBUG_TEST); argsman.AddArg("-testnet", "Use the test chain. Equivalent to -chain=test.", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); argsman.AddArg("-vbparams=deployment:start:end", "Use given start/end times for specified version bits deployment (regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS); - argsman.AddArg("-signet", "Use the signet chain. Note that the network is defined by the -signetchallenge parameter", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); + argsman.AddArg("-signet", "Use the signet chain. Equivalent to -chain=signet. Note that the network is defined by the -signetchallenge parameter", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); argsman.AddArg("-signetchallenge", "Blocks must satisfy the given script to be considered valid (only for signet networks; defaults to the global default signet test network challenge)", ArgsManager::ALLOW_STRING, OptionsCategory::CHAINPARAMS); argsman.AddArg("-signetseednode", "Specify a seed node for the signet network, in the hostname[:port] format, e.g. sig.net:1234 (may be used multiple times to specify multiple seed nodes; defaults to the global default signet test network seed node(s))", ArgsManager::ALLOW_STRING, OptionsCategory::CHAINPARAMS); } @@ -37,16 +37,20 @@ const CBaseChainParams& BaseParams() return *globalChainBaseParams; } +/** + * Port numbers for incoming Tor connections (8334, 18334, 38334, 18445) have + * been chosen arbitrarily to keep ranges of used ports tight. + */ std::unique_ptr<CBaseChainParams> CreateBaseChainParams(const std::string& chain) { if (chain == CBaseChainParams::MAIN) { - return MakeUnique<CBaseChainParams>("", 8332); + return MakeUnique<CBaseChainParams>("", 8332, 8334); } else if (chain == CBaseChainParams::TESTNET) { - return MakeUnique<CBaseChainParams>("testnet3", 18332); + return MakeUnique<CBaseChainParams>("testnet3", 18332, 18334); } else if (chain == CBaseChainParams::SIGNET) { - return MakeUnique<CBaseChainParams>("signet", 38332); + return MakeUnique<CBaseChainParams>("signet", 38332, 38334); } else if (chain == CBaseChainParams::REGTEST) { - return MakeUnique<CBaseChainParams>("regtest", 18443); + return MakeUnique<CBaseChainParams>("regtest", 18443, 18445); } throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain)); } diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h index 9852446b3c..9b4ae2f7ab 100644 --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -26,13 +26,16 @@ public: ///@} const std::string& DataDir() const { return strDataDir; } - int RPCPort() const { return nRPCPort; } + uint16_t RPCPort() const { return m_rpc_port; } + uint16_t OnionServiceTargetPort() const { return m_onion_service_target_port; } CBaseChainParams() = delete; - CBaseChainParams(const std::string& data_dir, int rpc_port) : nRPCPort(rpc_port), strDataDir(data_dir) {} + CBaseChainParams(const std::string& data_dir, uint16_t rpc_port, uint16_t onion_service_target_port) + : m_rpc_port(rpc_port), m_onion_service_target_port(onion_service_target_port), strDataDir(data_dir) {} private: - int nRPCPort; + const uint16_t m_rpc_port; + const uint16_t m_onion_service_target_port; std::string strDataDir; }; diff --git a/src/crypto/common.h b/src/crypto/common.h index 5b4932c992..c1acf8b22e 100644 --- a/src/crypto/common.h +++ b/src/crypto/common.h @@ -53,6 +53,13 @@ void static inline WriteLE64(unsigned char* ptr, uint64_t x) memcpy(ptr, (char*)&v, 8); } +uint16_t static inline ReadBE16(const unsigned char* ptr) +{ + uint16_t x; + memcpy((char*)&x, ptr, 2); + return be16toh(x); +} + uint32_t static inline ReadBE32(const unsigned char* ptr) { uint32_t x; diff --git a/src/init.cpp b/src/init.cpp index 5ad807cbac..1387d6b982 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -37,6 +37,7 @@ #include <policy/fees.h> #include <policy/policy.h> #include <policy/settings.h> +#include <protocol.h> #include <rpc/blockchain.h> #include <rpc/register.h> #include <rpc/server.h> @@ -378,10 +379,12 @@ void SetupServerArgs(NodeContext& node) const auto defaultBaseParams = CreateBaseChainParams(CBaseChainParams::MAIN); const auto testnetBaseParams = CreateBaseChainParams(CBaseChainParams::TESTNET); + const auto signetBaseParams = CreateBaseChainParams(CBaseChainParams::SIGNET); const auto regtestBaseParams = CreateBaseChainParams(CBaseChainParams::REGTEST); - const auto defaultChainParams = CreateChainParams(CBaseChainParams::MAIN); - const auto testnetChainParams = CreateChainParams(CBaseChainParams::TESTNET); - const auto regtestChainParams = CreateChainParams(CBaseChainParams::REGTEST); + const auto defaultChainParams = CreateChainParams(argsman, CBaseChainParams::MAIN); + const auto testnetChainParams = CreateChainParams(argsman, CBaseChainParams::TESTNET); + const auto signetChainParams = CreateChainParams(argsman, CBaseChainParams::SIGNET); + const auto regtestChainParams = CreateChainParams(argsman, CBaseChainParams::REGTEST); // Hidden Options std::vector<std::string> hidden_args = { @@ -393,7 +396,7 @@ void SetupServerArgs(NodeContext& node) #if HAVE_SYSTEM argsman.AddArg("-alertnotify=<cmd>", "Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); #endif - argsman.AddArg("-assumevalid=<hex>", strprintf("If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: %s, testnet: %s)", defaultChainParams->GetConsensus().defaultAssumeValid.GetHex(), testnetChainParams->GetConsensus().defaultAssumeValid.GetHex()), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); + argsman.AddArg("-assumevalid=<hex>", strprintf("If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: %s, testnet: %s, signet: %s)", defaultChainParams->GetConsensus().defaultAssumeValid.GetHex(), testnetChainParams->GetConsensus().defaultAssumeValid.GetHex(), signetChainParams->GetConsensus().defaultAssumeValid.GetHex()), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-blocksdir=<dir>", "Specify directory to hold blocks subdirectory for *.dat files (default: <datadir>)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); #if HAVE_SYSTEM argsman.AddArg("-blocknotify=<cmd>", "Execute command when the best block changes (%s in cmd is replaced by block hash)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); @@ -411,7 +414,7 @@ void SetupServerArgs(NodeContext& node) argsman.AddArg("-maxmempool=<n>", strprintf("Keep the transaction memory pool below <n> megabytes (default: %u)", DEFAULT_MAX_MEMPOOL_SIZE), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-maxorphantx=<n>", strprintf("Keep at most <n> unconnectable transactions in memory (default: %u)", DEFAULT_MAX_ORPHAN_TRANSACTIONS), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-mempoolexpiry=<n>", strprintf("Do not keep transactions in the mempool longer than <n> hours (default: %u)", DEFAULT_MEMPOOL_EXPIRY), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); - argsman.AddArg("-minimumchainwork=<hex>", strprintf("Minimum work assumed to exist on a valid chain in hex (default: %s, testnet: %s)", defaultChainParams->GetConsensus().nMinimumChainWork.GetHex(), testnetChainParams->GetConsensus().nMinimumChainWork.GetHex()), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::OPTIONS); + argsman.AddArg("-minimumchainwork=<hex>", strprintf("Minimum work assumed to exist on a valid chain in hex (default: %s, testnet: %s, signet: %s)", defaultChainParams->GetConsensus().nMinimumChainWork.GetHex(), testnetChainParams->GetConsensus().nMinimumChainWork.GetHex(), signetChainParams->GetConsensus().nMinimumChainWork.GetHex()), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::OPTIONS); argsman.AddArg("-par=<n>", strprintf("Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)", -GetNumCores(), MAX_SCRIPTCHECK_THREADS, DEFAULT_SCRIPTCHECK_THREADS), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-persistmempool", strprintf("Whether to save the mempool on shutdown and load on restart (default: %u)", DEFAULT_PERSIST_MEMPOOL), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); @@ -422,6 +425,9 @@ void SetupServerArgs(NodeContext& node) argsman.AddArg("-reindex", "Rebuild chain state and block index from the blk*.dat files on disk", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-reindex-chainstate", "Rebuild chain state from the currently indexed blocks. When in pruning mode or if blocks on disk might be corrupted, use full -reindex instead.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-settings=<file>", strprintf("Specify path to dynamic settings data file. Can be disabled with -nosettings. File is written at runtime and not meant to be edited by users (use %s instead for custom settings). Relative paths will be prefixed by datadir location. (default: %s)", BITCOIN_CONF_FILENAME, BITCOIN_SETTINGS_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); +#if HAVE_SYSTEM + argsman.AddArg("-startupnotify=<cmd>", "Execute command on startup.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); +#endif #ifndef WIN32 argsman.AddArg("-sysperms", "Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); #else @@ -436,7 +442,7 @@ void SetupServerArgs(NodeContext& node) argsman.AddArg("-addnode=<ip>", "Add a node to connect to and attempt to keep the connection open (see the `addnode` RPC command help for more info). This option can be specified multiple times to add multiple nodes.", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION); argsman.AddArg("-asmap=<file>", strprintf("Specify asn mapping used for bucketing of the peers (default: %s). Relative paths will be prefixed by the net-specific datadir location.", DEFAULT_ASMAP_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); argsman.AddArg("-bantime=<n>", strprintf("Default duration (in seconds) of manually configured bans (default: %u)", DEFAULT_MISBEHAVING_BANTIME), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); - argsman.AddArg("-bind=<addr>", "Bind to given address and always listen on it. Use [host]:port notation for IPv6", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION); + argsman.AddArg("-bind=<addr>[:<port>][=onion]", strprintf("Bind to given address and always listen on it (default: 0.0.0.0). Use [host]:port notation for IPv6. Append =onion to tag any incoming connections to that address and port as incoming Tor connections (default: 127.0.0.1:%u=onion, testnet: 127.0.0.1:%u=onion, signet: 127.0.0.1:%u=onion, regtest: 127.0.0.1:%u=onion)", defaultBaseParams->OnionServiceTargetPort(), testnetBaseParams->OnionServiceTargetPort(), signetBaseParams->OnionServiceTargetPort(), regtestBaseParams->OnionServiceTargetPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION); argsman.AddArg("-connect=<ip>", "Connect only to the specified node; -noconnect disables automatic connections (the rules for this peer are the same as for -addnode). This option can be specified multiple times to connect to multiple nodes.", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION); argsman.AddArg("-discover", "Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); argsman.AddArg("-dns", strprintf("Allow DNS lookups for -addnode, -seednode and -connect (default: %u)", DEFAULT_NAME_LOOKUP), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); @@ -455,7 +461,7 @@ void SetupServerArgs(NodeContext& node) argsman.AddArg("-peerbloomfilters", strprintf("Support filtering of blocks and transaction with bloom filters (default: %u)", DEFAULT_PEERBLOOMFILTERS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); argsman.AddArg("-peerblockfilters", strprintf("Serve compact block filters to peers per BIP 157 (default: %u)", DEFAULT_PEERBLOCKFILTERS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); argsman.AddArg("-permitbaremultisig", strprintf("Relay non-P2SH multisig (default: %u)", DEFAULT_PERMIT_BAREMULTISIG), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); - argsman.AddArg("-port=<port>", strprintf("Listen for connections on <port> (default: %u, testnet: %u, regtest: %u)", defaultChainParams->GetDefaultPort(), testnetChainParams->GetDefaultPort(), regtestChainParams->GetDefaultPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION); + argsman.AddArg("-port=<port>", strprintf("Listen for connections on <port> (default: %u, testnet: %u signet: %u, regtest: %u)", defaultChainParams->GetDefaultPort(), testnetChainParams->GetDefaultPort(), signetChainParams->GetDefaultPort(), regtestChainParams->GetDefaultPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION); argsman.AddArg("-proxy=<ip:port>", "Connect through SOCKS5 proxy, set -noproxy to disable (default: disabled)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); argsman.AddArg("-proxyrandomize", strprintf("Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u)", DEFAULT_PROXYRANDOMIZE), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); argsman.AddArg("-seednode=<ip>", "Connect to a node to retrieve peer addresses, and disconnect. This option can be specified multiple times to connect to multiple nodes.", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION); @@ -565,7 +571,7 @@ void SetupServerArgs(NodeContext& node) argsman.AddArg("-rpcbind=<addr>[:port]", "Bind to given address to listen for JSON-RPC connections. Do not expose the RPC server to untrusted networks such as the public internet! This option is ignored unless -rpcallowip is also passed. Port is optional and overrides -rpcport. Use [host]:port notation for IPv6. This option can be specified multiple times (default: 127.0.0.1 and ::1 i.e., localhost)", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY | ArgsManager::SENSITIVE, OptionsCategory::RPC); argsman.AddArg("-rpccookiefile=<loc>", "Location of the auth cookie. Relative paths will be prefixed by a net-specific datadir location. (default: data dir)", ArgsManager::ALLOW_ANY, OptionsCategory::RPC); argsman.AddArg("-rpcpassword=<pw>", "Password for JSON-RPC connections", ArgsManager::ALLOW_ANY | ArgsManager::SENSITIVE, OptionsCategory::RPC); - argsman.AddArg("-rpcport=<port>", strprintf("Listen for JSON-RPC connections on <port> (default: %u, testnet: %u, regtest: %u)", defaultBaseParams->RPCPort(), testnetBaseParams->RPCPort(), regtestBaseParams->RPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); + argsman.AddArg("-rpcport=<port>", strprintf("Listen for JSON-RPC connections on <port> (default: %u, testnet: %u, signet: %u, regtest: %u)", defaultBaseParams->RPCPort(), testnetBaseParams->RPCPort(), signetBaseParams->RPCPort(), regtestBaseParams->RPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); argsman.AddArg("-rpcserialversion", strprintf("Sets the serialization of raw transaction or block hex returned in non-verbose mode, non-segwit(0) or segwit(1) (default: %d)", DEFAULT_RPC_SERIALIZE_VERSION), ArgsManager::ALLOW_ANY, OptionsCategory::RPC); argsman.AddArg("-rpcservertimeout=<n>", strprintf("Timeout during HTTP requests (default: %d)", DEFAULT_HTTP_SERVER_TIMEOUT), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::RPC); argsman.AddArg("-rpcthreads=<n>", strprintf("Set the number of threads to service RPC calls (default: %d)", DEFAULT_HTTP_THREADS), ArgsManager::ALLOW_ANY, OptionsCategory::RPC); @@ -674,6 +680,17 @@ static void CleanupBlockRevFiles() } } +#if HAVE_SYSTEM +static void StartupNotify(const ArgsManager& args) +{ + std::string cmd = args.GetArg("-startupnotify", ""); + if (!cmd.empty()) { + std::thread t(runCommand, cmd); + t.detach(); // thread runs free + } +} +#endif + static void ThreadImport(ChainstateManager& chainman, std::vector<fs::path> vImportFiles, const ArgsManager& args) { const CChainParams& chainparams = Params(); @@ -950,6 +967,9 @@ bool AppInitParameterInteraction(const ArgsManager& args) // specified in default section of config file, but not overridden // on the command line or in this network's section of the config file. std::string network = args.GetChainName(); + if (network == CBaseChainParams::SIGNET) { + LogPrintf("Signet derived magic (message start): %s\n", HexStr(chainparams.MessageStart())); + } bilingual_str errors; for (const auto& arg : args.GetUnsuitableSectionOnlyArgs()) { errors += strprintf(_("Config setting for %s only applied on %s network when in [%s] section.") + Untranslated("\n"), arg, network, network); @@ -1176,6 +1196,10 @@ bool AppInitParameterInteraction(const ArgsManager& args) nMaxTipAge = args.GetArg("-maxtipage", DEFAULT_MAX_TIP_AGE); + if (args.IsArgSet("-proxy") && args.GetArg("-proxy", "").empty()) { + return InitError(_("No proxy server specified. Use -proxy=<ip> or -proxy=<ip:port>.")); + } + return true; } @@ -1618,7 +1642,6 @@ bool AppInitMain(const util::Ref& context, NodeContext& node, interfaces::BlockA bool failed_chainstate_init = false; for (CChainState* chainstate : chainman.GetAll()) { - LogPrintf("Initializing chainstate %s\n", chainstate->ToString()); chainstate->InitCoinsDB( /* cache_size_bytes */ nCoinDBCache, /* in_memory */ false, @@ -1895,9 +1918,6 @@ bool AppInitMain(const util::Ref& context, NodeContext& node, interfaces::BlockA } LogPrintf("nBestHeight = %d\n", chain_active_height); - if (args.GetBoolArg("-listenonion", DEFAULT_LISTEN_ONION)) - StartTorControl(); - Discover(); // Map ports with UPnP @@ -1924,13 +1944,39 @@ bool AppInitMain(const util::Ref& context, NodeContext& node, interfaces::BlockA connOptions.nMaxOutboundLimit = nMaxOutboundLimit; connOptions.m_peer_connect_timeout = peer_connect_timeout; - for (const std::string& strBind : args.GetArgs("-bind")) { - CService addrBind; - if (!Lookup(strBind, addrBind, GetListenPort(), false)) { - return InitError(ResolveErrMsg("bind", strBind)); + for (const std::string& bind_arg : args.GetArgs("-bind")) { + CService bind_addr; + const size_t index = bind_arg.rfind('='); + if (index == std::string::npos) { + if (Lookup(bind_arg, bind_addr, GetListenPort(), false)) { + connOptions.vBinds.push_back(bind_addr); + continue; + } + } else { + const std::string network_type = bind_arg.substr(index + 1); + if (network_type == "onion") { + const std::string truncated_bind_arg = bind_arg.substr(0, index); + if (Lookup(truncated_bind_arg, bind_addr, BaseParams().OnionServiceTargetPort(), false)) { + connOptions.onion_binds.push_back(bind_addr); + continue; + } + } + } + return InitError(ResolveErrMsg("bind", bind_arg)); + } + + if (connOptions.onion_binds.empty()) { + connOptions.onion_binds.push_back(DefaultOnionServiceTarget()); + } + + if (args.GetBoolArg("-listenonion", DEFAULT_LISTEN_ONION)) { + const auto bind_addr = connOptions.onion_binds.front(); + if (connOptions.onion_binds.size() > 1) { + InitWarning(strprintf(_("More than one onion bind address is provided. Using %s for the automatically created Tor onion service."), bind_addr.ToStringIPPort())); } - connOptions.vBinds.push_back(addrBind); + StartTorControl(bind_addr); } + for (const std::string& strBind : args.GetArgs("-whitebind")) { NetWhitebindPermissions whitebind; bilingual_str error; @@ -1973,5 +2019,9 @@ bool AppInitMain(const util::Ref& context, NodeContext& node, interfaces::BlockA banman->DumpBanlist(); }, DUMP_BANS_INTERVAL); +#if HAVE_SYSTEM + StartupNotify(args); +#endif + return true; } diff --git a/src/interfaces/wallet.cpp b/src/interfaces/wallet.cpp index 94c63da84e..f68016b557 100644 --- a/src/interfaces/wallet.cpp +++ b/src/interfaces/wallet.cpp @@ -231,8 +231,9 @@ public: { LOCK(m_wallet->cs_wallet); CTransactionRef tx; + FeeCalculation fee_calc_out; if (!m_wallet->CreateTransaction(recipients, tx, fee, change_pos, - fail_reason, coin_control, sign)) { + fail_reason, coin_control, fee_calc_out, sign)) { return {}; } return tx; diff --git a/src/net.cpp b/src/net.cpp index e7d3a146ff..95ba6da819 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -10,7 +10,6 @@ #include <net.h> #include <banman.h> -#include <chainparams.h> #include <clientversion.h> #include <consensus/consensus.h> #include <crypto/sha256.h> @@ -84,6 +83,11 @@ enum BindFlags { BF_NONE = 0, BF_EXPLICIT = (1U << 0), BF_REPORT_ERROR = (1U << 1), + /** + * Do not call AddLocal() for our special addresses, e.g., for incoming + * Tor connections, to prevent gossiping them over the network. + */ + BF_DONT_ADVERTISE = (1U << 2), }; // The set of sockets cannot be modified while waiting @@ -488,6 +492,26 @@ void CConnman::AddWhitelistPermissionFlags(NetPermissionFlags& flags, const CNet } } +std::string CNode::ConnectionTypeAsString() const +{ + switch (m_conn_type) { + case ConnectionType::INBOUND: + return "inbound"; + case ConnectionType::MANUAL: + return "manual"; + case ConnectionType::FEELER: + return "feeler"; + case ConnectionType::OUTBOUND_FULL_RELAY: + return "outbound-full-relay"; + case ConnectionType::BLOCK_RELAY: + return "block-relay-only"; + case ConnectionType::ADDR_FETCH: + return "addr-fetch"; + } // no default case, so the compiler can warn about missing cases + + assert(false); +} + std::string CNode::GetAddrName() const { LOCK(cs_addrName); return addrName; @@ -582,9 +606,21 @@ void CNode::copyStats(CNodeStats &stats, const std::vector<bool> &m_asmap) // Leave string empty if addrLocal invalid (not filled in yet) CService addrLocalUnlocked = GetAddrLocal(); stats.addrLocal = addrLocalUnlocked.IsValid() ? addrLocalUnlocked.ToString() : ""; + + stats.m_conn_type_string = ConnectionTypeAsString(); } #undef X +/** + * Receive bytes from the buffer and deserialize them into messages. + * + * @param[in] pch A pointer to the raw data + * @param[in] nBytes Size of the data + * @param[out] complete Set True if at least one message has been + * deserialized and is ready to be processed + * @return True if the peer should stay connected, + * False if the peer should be disconnected from. + */ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes, bool& complete) { complete = false; @@ -595,25 +631,35 @@ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes, bool& complete while (nBytes > 0) { // absorb network data int handled = m_deserializer->Read(pch, nBytes); - if (handled < 0) return false; + if (handled < 0) { + // Serious header problem, disconnect from the peer. + return false; + } pch += handled; nBytes -= handled; if (m_deserializer->Complete()) { // decompose a transport agnostic CNetMessage from the deserializer - CNetMessage msg = m_deserializer->GetMessage(Params().MessageStart(), time); + uint32_t out_err_raw_size{0}; + Optional<CNetMessage> result{m_deserializer->GetMessage(time, out_err_raw_size)}; + if (!result) { + // Message deserialization failed. Drop the message but don't disconnect the peer. + // store the size of the corrupt message + mapRecvBytesPerMsgCmd.find(NET_MESSAGE_COMMAND_OTHER)->second += out_err_raw_size; + continue; + } //store received bytes per message command //to prevent a memory DOS, only allow valid commands - mapMsgCmdSize::iterator i = mapRecvBytesPerMsgCmd.find(msg.m_command); + mapMsgCmdSize::iterator i = mapRecvBytesPerMsgCmd.find(result->m_command); if (i == mapRecvBytesPerMsgCmd.end()) i = mapRecvBytesPerMsgCmd.find(NET_MESSAGE_COMMAND_OTHER); assert(i != mapRecvBytesPerMsgCmd.end()); - i->second += msg.m_raw_message_size; + i->second += result->m_raw_message_size; // push the message to the process queue, - vRecvMsg.push_back(std::move(msg)); + vRecvMsg.push_back(std::move(*result)); complete = true; } @@ -640,11 +686,19 @@ int V1TransportDeserializer::readHeader(const char *pch, unsigned int nBytes) hdrbuf >> hdr; } catch (const std::exception&) { + LogPrint(BCLog::NET, "HEADER ERROR - UNABLE TO DESERIALIZE, peer=%d\n", m_node_id); + return -1; + } + + // Check start string, network magic + if (memcmp(hdr.pchMessageStart, m_chain_params.MessageStart(), CMessageHeader::MESSAGE_START_SIZE) != 0) { + LogPrint(BCLog::NET, "HEADER ERROR - MESSAGESTART (%s, %u bytes), received %s, peer=%d\n", hdr.GetCommand(), hdr.nMessageSize, HexStr(hdr.pchMessageStart), m_node_id); return -1; } // reject messages larger than MAX_SIZE or MAX_PROTOCOL_MESSAGE_LENGTH if (hdr.nMessageSize > MAX_SIZE || hdr.nMessageSize > MAX_PROTOCOL_MESSAGE_LENGTH) { + LogPrint(BCLog::NET, "HEADER ERROR - SIZE (%s, %u bytes), peer=%d\n", hdr.GetCommand(), hdr.nMessageSize, m_node_id); return -1; } @@ -679,36 +733,39 @@ const uint256& V1TransportDeserializer::GetMessageHash() const return data_hash; } -CNetMessage V1TransportDeserializer::GetMessage(const CMessageHeader::MessageStartChars& message_start, const std::chrono::microseconds time) +Optional<CNetMessage> V1TransportDeserializer::GetMessage(const std::chrono::microseconds time, uint32_t& out_err_raw_size) { // decompose a single CNetMessage from the TransportDeserializer - CNetMessage msg(std::move(vRecv)); + Optional<CNetMessage> msg(std::move(vRecv)); - // store state about valid header, netmagic and checksum - msg.m_valid_header = hdr.IsValid(message_start); - msg.m_valid_netmagic = (memcmp(hdr.pchMessageStart, message_start, CMessageHeader::MESSAGE_START_SIZE) == 0); - uint256 hash = GetMessageHash(); + // store command string, time, and sizes + msg->m_command = hdr.GetCommand(); + msg->m_time = time; + msg->m_message_size = hdr.nMessageSize; + msg->m_raw_message_size = hdr.nMessageSize + CMessageHeader::HEADER_SIZE; - // store command string, payload size - msg.m_command = hdr.GetCommand(); - msg.m_message_size = hdr.nMessageSize; - msg.m_raw_message_size = hdr.nMessageSize + CMessageHeader::HEADER_SIZE; + uint256 hash = GetMessageHash(); // We just received a message off the wire, harvest entropy from the time (and the message checksum) RandAddEvent(ReadLE32(hash.begin())); - msg.m_valid_checksum = (memcmp(hash.begin(), hdr.pchChecksum, CMessageHeader::CHECKSUM_SIZE) == 0); - if (!msg.m_valid_checksum) { - LogPrint(BCLog::NET, "CHECKSUM ERROR (%s, %u bytes), expected %s was %s\n", - SanitizeString(msg.m_command), msg.m_message_size, + // Check checksum and header command string + if (memcmp(hash.begin(), hdr.pchChecksum, CMessageHeader::CHECKSUM_SIZE) != 0) { + LogPrint(BCLog::NET, "CHECKSUM ERROR (%s, %u bytes), expected %s was %s, peer=%d\n", + SanitizeString(msg->m_command), msg->m_message_size, HexStr(Span<uint8_t>(hash.begin(), hash.begin() + CMessageHeader::CHECKSUM_SIZE)), - HexStr(hdr.pchChecksum)); - } - - // store receive time - msg.m_time = time; - - // reset the network deserializer (prepare for the next message) + HexStr(hdr.pchChecksum), + m_node_id); + out_err_raw_size = msg->m_raw_message_size; + msg = nullopt; + } else if (!hdr.IsCommandValid()) { + LogPrint(BCLog::NET, "HEADER ERROR - COMMAND (%s, %u bytes), peer=%d\n", + hdr.GetCommand(), msg->m_message_size, m_node_id); + out_err_raw_size = msg->m_raw_message_size; + msg = nullopt; + } + + // Always reset the network deserializer (prepare for the next message) Reset(); return msg; } @@ -1759,7 +1816,7 @@ void CConnman::SetTryNewOutboundPeer(bool flag) // Return the number of peers we have over our outbound connection limit // Exclude peers that are marked for disconnect, or are going to be -// disconnected soon (eg one-shots and feelers) +// disconnected soon (eg ADDR_FETCH and FEELER) // Also exclude peers that haven't finished initial connection handshake yet // (so that we don't decide we're over our desired connection limit, and then // evict some peer that has finished the handshake) @@ -2189,10 +2246,6 @@ bool CConnman::BindListenPort(const CService& addrBind, bilingual_str& strError, } vhListenSocket.push_back(ListenSocket(hListenSocket, permissions)); - - if (addrBind.IsRoutable() && fDiscover && (permissions & PF_NOBAN) == 0) - AddLocal(addrBind, LOCAL_BIND); - return true; } @@ -2286,10 +2339,18 @@ bool CConnman::Bind(const CService &addr, unsigned int flags, NetPermissionFlags } return false; } + + if (addr.IsRoutable() && fDiscover && !(flags & BF_DONT_ADVERTISE) && !(permissions & PF_NOBAN)) { + AddLocal(addr, LOCAL_BIND); + } + return true; } -bool CConnman::InitBinds(const std::vector<CService>& binds, const std::vector<NetWhitebindPermissions>& whiteBinds) +bool CConnman::InitBinds( + const std::vector<CService>& binds, + const std::vector<NetWhitebindPermissions>& whiteBinds, + const std::vector<CService>& onion_binds) { bool fBound = false; for (const auto& addrBind : binds) { @@ -2300,11 +2361,16 @@ bool CConnman::InitBinds(const std::vector<CService>& binds, const std::vector<N } if (binds.empty() && whiteBinds.empty()) { struct in_addr inaddr_any; - inaddr_any.s_addr = INADDR_ANY; + inaddr_any.s_addr = htonl(INADDR_ANY); struct in6_addr inaddr6_any = IN6ADDR_ANY_INIT; fBound |= Bind(CService(inaddr6_any, GetListenPort()), BF_NONE, NetPermissionFlags::PF_NONE); fBound |= Bind(CService(inaddr_any, GetListenPort()), !fBound ? BF_REPORT_ERROR : BF_NONE, NetPermissionFlags::PF_NONE); } + + for (const auto& addr_bind : onion_binds) { + fBound |= Bind(addr_bind, BF_EXPLICIT | BF_DONT_ADVERTISE, NetPermissionFlags::PF_NONE); + } + return fBound; } @@ -2323,7 +2389,7 @@ bool CConnman::Start(CScheduler& scheduler, const Options& connOptions) nMaxOutboundCycleStartTime = 0; } - if (fListen && !InitBinds(connOptions.vBinds, connOptions.vWhiteBinds)) { + if (fListen && !InitBinds(connOptions.vBinds, connOptions.vWhiteBinds, connOptions.onion_binds)) { if (clientInterface) { clientInterface->ThreadSafeMessageBox( _("Failed to listen on any port. Use -listen=0 if you want this."), @@ -2828,7 +2894,7 @@ CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn LogPrint(BCLog::NET, "Added connection peer=%d\n", id); } - m_deserializer = MakeUnique<V1TransportDeserializer>(V1TransportDeserializer(Params().MessageStart(), SER_NETWORK, INIT_PROTO_VERSION)); + m_deserializer = MakeUnique<V1TransportDeserializer>(V1TransportDeserializer(Params(), GetId(), SER_NETWORK, INIT_PROTO_VERSION)); m_serializer = MakeUnique<V1TransportSerializer>(V1TransportSerializer()); } @@ -10,12 +10,14 @@ #include <addrman.h> #include <amount.h> #include <bloom.h> +#include <chainparams.h> #include <compat.h> #include <crypto/siphash.h> #include <hash.h> #include <limitedmap.h> -#include <netaddress.h> #include <net_permissions.h> +#include <netaddress.h> +#include <optional.h> #include <policy/feerate.h> #include <protocol.h> #include <random.h> @@ -114,6 +116,14 @@ struct CSerializedNetMsg std::string m_type; }; +const std::vector<std::string> CONNECTION_TYPE_DOC{ + "outbound-full-relay (default automatic connections)", + "block-relay-only (does not relay transactions or addresses)", + "inbound (initiated by the peer)", + "manual (added via addnode RPC or -addnode/-connect configuration options)", + "addr-fetch (short-lived automatic connection for soliciting addresses)", + "feeler (short-lived automatic connection for testing addresses)"}; + /** Different types of connections to a peer. This enum encapsulates the * information we have available at the time of opening or accepting the * connection. Aside from INBOUND, all types are initiated by us. */ @@ -143,10 +153,19 @@ enum class ConnectionType { MANUAL, /** - * Feeler connections are short lived connections used to increase the - * number of connectable addresses in our AddrMan. Approximately every - * FEELER_INTERVAL, we attempt to connect to a random address from the new - * table. If successful, we add it to the tried table. + * Feeler connections are short-lived connections made to check that a node + * is alive. They can be useful for: + * - test-before-evict: if one of the peers is considered for eviction from + * our AddrMan because another peer is mapped to the same slot in the tried table, + * evict only if this longer-known peer is offline. + * - move node addresses from New to Tried table, so that we have more + * connectable addresses in our AddrMan. + * Note that in the literature ("Eclipse Attacks on Bitcoin’s Peer-to-Peer Network") + * only the latter feature is referred to as "feeler connections", + * although in our codebase feeler connections encompass test-before-evict as well. + * We make these connections approximately every FEELER_INTERVAL: + * first we resolve previously found collisions if they exist (test-before-evict), + * otherwise connect to a node from the new table. */ FEELER, @@ -201,6 +220,7 @@ public: std::vector<NetWhitelistPermissions> vWhitelistedRange; std::vector<NetWhitebindPermissions> vWhiteBinds; std::vector<CService> vBinds; + std::vector<CService> onion_binds; bool m_use_addrman_outgoing = true; std::vector<std::string> m_specified_outgoing; std::vector<std::string> m_added_nodes; @@ -398,7 +418,11 @@ private: bool BindListenPort(const CService& bindAddr, bilingual_str& strError, NetPermissionFlags permissions); bool Bind(const CService& addr, unsigned int flags, NetPermissionFlags permissions); - bool InitBinds(const std::vector<CService>& binds, const std::vector<NetWhitebindPermissions>& whiteBinds); + bool InitBinds( + const std::vector<CService>& binds, + const std::vector<NetWhitebindPermissions>& whiteBinds, + const std::vector<CService>& onion_binds); + void ThreadOpenAddedConnections(); void AddAddrFetch(const std::string& strDest); void ProcessAddrFetch(); @@ -691,6 +715,7 @@ public: // Bind address of our side of the connection CAddress addrBind; uint32_t m_mapped_as; + std::string m_conn_type_string; }; @@ -703,11 +728,8 @@ class CNetMessage { public: CDataStream m_recv; //!< received message data std::chrono::microseconds m_time{0}; //!< time of message receipt - bool m_valid_netmagic = false; - bool m_valid_header = false; - bool m_valid_checksum = false; - uint32_t m_message_size{0}; //!< size of the payload - uint32_t m_raw_message_size{0}; //!< used wire size of the message (including header/checksum) + uint32_t m_message_size{0}; //!< size of the payload + uint32_t m_raw_message_size{0}; //!< used wire size of the message (including header/checksum) std::string m_command; CNetMessage(CDataStream&& recv_in) : m_recv(std::move(recv_in)) {} @@ -731,13 +753,15 @@ public: // read and deserialize data virtual int Read(const char *data, unsigned int bytes) = 0; // decomposes a message from the context - virtual CNetMessage GetMessage(const CMessageHeader::MessageStartChars& message_start, std::chrono::microseconds time) = 0; + virtual Optional<CNetMessage> GetMessage(std::chrono::microseconds time, uint32_t& out_err) = 0; virtual ~TransportDeserializer() {} }; class V1TransportDeserializer final : public TransportDeserializer { private: + const CChainParams& m_chain_params; + const NodeId m_node_id; // Only for logging mutable CHash256 hasher; mutable uint256 data_hash; bool in_data; // parsing header (false) or data (true) @@ -763,8 +787,12 @@ private: } public: - - V1TransportDeserializer(const CMessageHeader::MessageStartChars& pchMessageStartIn, int nTypeIn, int nVersionIn) : hdrbuf(nTypeIn, nVersionIn), hdr(pchMessageStartIn), vRecv(nTypeIn, nVersionIn) { + V1TransportDeserializer(const CChainParams& chain_params, const NodeId node_id, int nTypeIn, int nVersionIn) + : m_chain_params(chain_params), + m_node_id(node_id), + hdrbuf(nTypeIn, nVersionIn), + vRecv(nTypeIn, nVersionIn) + { Reset(); } @@ -784,7 +812,7 @@ public: if (ret < 0) Reset(); return ret; } - CNetMessage GetMessage(const CMessageHeader::MessageStartChars& message_start, std::chrono::microseconds time) override; + Optional<CNetMessage> GetMessage(std::chrono::microseconds time, uint32_t& out_err_raw_size) override; }; /** The TransportSerializer prepares messages for the network transport @@ -1144,6 +1172,8 @@ public: std::string GetAddrName() const; //! Sets the addrName only if it was not previously set void MaybeSetAddrName(const std::string& addrNameIn); + + std::string ConnectionTypeAsString() const; }; /** Return a timestamp in the future (in microseconds) for exponentially distributed events. */ diff --git a/src/net_processing.cpp b/src/net_processing.cpp index f3f30285d8..9603d098a4 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -153,8 +153,14 @@ struct COrphanTx { int64_t nTimeExpire; size_t list_pos; }; + +/** Guards orphan transactions and extra txs for compact blocks */ RecursiveMutex g_cs_orphans; +/** Map from txid to orphan transaction record. Limited by + * -maxorphantx/DEFAULT_MAX_ORPHAN_TRANSACTIONS */ std::map<uint256, COrphanTx> mapOrphanTransactions GUARDED_BY(g_cs_orphans); +/** Index from wtxid into the mapOrphanTransactions to lookup orphan + * transactions using their witness ids. */ std::map<uint256, std::map<uint256, COrphanTx>::iterator> g_orphans_by_wtxid GUARDED_BY(g_cs_orphans); void EraseOrphansFor(NodeId peer); @@ -258,12 +264,19 @@ namespace { return &(*a) < &(*b); } }; - std::map<COutPoint, std::set<std::map<uint256, COrphanTx>::iterator, IteratorComparator>> mapOrphanTransactionsByPrev GUARDED_BY(g_cs_orphans); - std::vector<std::map<uint256, COrphanTx>::iterator> g_orphan_list GUARDED_BY(g_cs_orphans); //! For random eviction + /** Index from the parents' COutPoint into the mapOrphanTransactions. Used + * to remove orphan transactions from the mapOrphanTransactions */ + std::map<COutPoint, std::set<std::map<uint256, COrphanTx>::iterator, IteratorComparator>> mapOrphanTransactionsByPrev GUARDED_BY(g_cs_orphans); + /** Orphan transactions in vector for quick random eviction */ + std::vector<std::map<uint256, COrphanTx>::iterator> g_orphan_list GUARDED_BY(g_cs_orphans); - static size_t vExtraTxnForCompactIt GUARDED_BY(g_cs_orphans) = 0; + /** Orphan/conflicted/etc transactions that are kept for compact block reconstruction. + * The last -blockreconstructionextratxn/DEFAULT_BLOCK_RECONSTRUCTION_EXTRA_TXN of + * these are kept in a ring buffer */ static std::vector<std::pair<uint256, CTransactionRef>> vExtraTxnForCompact GUARDED_BY(g_cs_orphans); + /** Offset into vExtraTxnForCompact to insert the next tx */ + static size_t vExtraTxnForCompactIt GUARDED_BY(g_cs_orphans) = 0; } // namespace namespace { @@ -321,10 +334,17 @@ struct CNodeState { */ bool fSupportsDesiredCmpctVersion; - /** State used to enforce CHAIN_SYNC_TIMEOUT - * Only in effect for outbound, non-manual, full-relay connections, with - * m_protect == false - * Algorithm: if a peer's best known block has less work than our tip, + /** State used to enforce CHAIN_SYNC_TIMEOUT and EXTRA_PEER_CHECK_INTERVAL logic. + * + * Both are only in effect for outbound, non-manual, non-protected connections. + * Any peer protected (m_protect = true) is not chosen for eviction. A peer is + * marked as protected if all of these are true: + * - its connection type is IsBlockOnlyConn() == false + * - it gave us a valid connecting header + * - we haven't reached MAX_OUTBOUND_PEERS_TO_PROTECT_FROM_DISCONNECT yet + * - it has a better chain than we have + * + * CHAIN_SYNC_TIMEOUT: if a peer's best known block has less work than our tip, * set a timeout CHAIN_SYNC_TIMEOUT seconds in the future: * - If at timeout their best known block now has more work than our tip * when the timeout was set, then either reset the timeout or clear it @@ -334,6 +354,9 @@ struct CNodeState { * and set a shorter timeout, HEADERS_RESPONSE_TIME seconds in future. * If their best known block is still behind when that new timeout is * reached, disconnect. + * + * EXTRA_PEER_CHECK_INTERVAL: after each interval, if we have too many outbound peers, + * drop the outbound one that least recently announced us a new block. */ struct ChainSyncTimeoutState { //! A timeout used for checking whether our peer has sufficiently synced @@ -2005,11 +2028,12 @@ void PeerManager::ProcessHeadersMessage(CNode& pfrom, const std::vector<CBlockHe } } + // If this is an outbound full-relay peer, check to see if we should protect + // it from the bad/lagging chain logic. + // Note that outbound block-relay peers are excluded from this protection, and + // thus always subject to eviction under the bad/lagging chain logic. + // See ChainSyncTimeoutState. if (!pfrom.fDisconnect && pfrom.IsFullOutboundConn() && nodestate->pindexBestKnownBlock != nullptr) { - // If this is an outbound full-relay peer, check to see if we should protect - // it from the bad/lagging chain logic. - // Note that block-relay-only peers are already implicitly protected, so we - // only consider setting m_protect for the full-relay peers. if (g_outbound_peers_with_protect_from_disconnect < MAX_OUTBOUND_PEERS_TO_PROTECT_FROM_DISCONNECT && nodestate->pindexBestKnownBlock->nChainWork >= ::ChainActive().Tip()->nChainWork && !nodestate->m_chain_sync.m_protect) { LogPrint(BCLog::NET, "Protecting outbound peer=%d from eviction\n", pfrom.GetId()); nodestate->m_chain_sync.m_protect = true; @@ -2021,13 +2045,20 @@ void PeerManager::ProcessHeadersMessage(CNode& pfrom, const std::vector<CBlockHe return; } -void PeerManager::ProcessOrphanTx(std::set<uint256>& orphan_work_set, std::list<CTransactionRef>& removed_txn) +/** + * Reconsider orphan transactions after a parent has been accepted to the mempool. + * + * @param[in/out] orphan_work_set The set of orphan transactions to reconsider. Generally only one + * orphan will be reconsidered on each call of this function. This set + * may be added to if accepting an orphan causes its children to be + * reconsidered. + */ +void PeerManager::ProcessOrphanTx(std::set<uint256>& orphan_work_set) { AssertLockHeld(cs_main); AssertLockHeld(g_cs_orphans); - std::set<NodeId> setMisbehaving; - bool done = false; - while (!done && !orphan_work_set.empty()) { + + while (!orphan_work_set.empty()) { const uint256 orphanHash = *orphan_work_set.begin(); orphan_work_set.erase(orphan_work_set.begin()); @@ -2035,18 +2066,13 @@ void PeerManager::ProcessOrphanTx(std::set<uint256>& orphan_work_set, std::list< if (orphan_it == mapOrphanTransactions.end()) continue; const CTransactionRef porphanTx = orphan_it->second.tx; - const CTransaction& orphanTx = *porphanTx; - NodeId fromPeer = orphan_it->second.fromPeer; - // Use a new TxValidationState because orphans come from different peers (and we call - // MaybePunishNodeForTx based on the source peer from the orphan map, not based on the peer - // that relayed the previous transaction). - TxValidationState orphan_state; - - if (setMisbehaving.count(fromPeer)) continue; - if (AcceptToMemoryPool(m_mempool, orphan_state, porphanTx, &removed_txn, false /* bypass_limits */, 0 /* nAbsurdFee */)) { + TxValidationState state; + std::list<CTransactionRef> removed_txn; + + if (AcceptToMemoryPool(m_mempool, state, porphanTx, &removed_txn, false /* bypass_limits */, 0 /* nAbsurdFee */)) { LogPrint(BCLog::MEMPOOL, " accepted orphan tx %s\n", orphanHash.ToString()); RelayTransaction(orphanHash, porphanTx->GetWitnessHash(), m_connman); - for (unsigned int i = 0; i < orphanTx.vout.size(); i++) { + for (unsigned int i = 0; i < porphanTx->vout.size(); i++) { auto it_by_prev = mapOrphanTransactionsByPrev.find(COutPoint(orphanHash, i)); if (it_by_prev != mapOrphanTransactionsByPrev.end()) { for (const auto& elem : it_by_prev->second) { @@ -2055,22 +2081,23 @@ void PeerManager::ProcessOrphanTx(std::set<uint256>& orphan_work_set, std::list< } } EraseOrphanTx(orphanHash); - done = true; - } else if (orphan_state.GetResult() != TxValidationResult::TX_MISSING_INPUTS) { - if (orphan_state.IsInvalid()) { - // Punish peer that gave us an invalid orphan tx - if (MaybePunishNodeForTx(fromPeer, orphan_state)) { - setMisbehaving.insert(fromPeer); - } + for (const CTransactionRef& removedTx : removed_txn) { + AddToCompactExtraTransactions(removedTx); + } + break; + } else if (state.GetResult() != TxValidationResult::TX_MISSING_INPUTS) { + if (state.IsInvalid()) { LogPrint(BCLog::MEMPOOL, " invalid orphan tx %s from peer=%d. %s\n", orphanHash.ToString(), - fromPeer, - orphan_state.ToString()); + orphan_it->second.fromPeer, + state.ToString()); + // Maybe punish peer that gave us an invalid orphan tx + MaybePunishNodeForTx(orphan_it->second.fromPeer, state); } // Has inputs but not accepted to mempool // Probably non-standard or insufficient fee LogPrint(BCLog::MEMPOOL, " removed orphan tx %s\n", orphanHash.ToString()); - if (orphan_state.GetResult() != TxValidationResult::TX_WITNESS_STRIPPED) { + if (state.GetResult() != TxValidationResult::TX_WITNESS_STRIPPED) { // We can add the wtxid of this transaction to our reject filter. // Do not add txids of witness transactions or witness-stripped // transactions to the filter, as they can have been malleated; @@ -2085,7 +2112,7 @@ void PeerManager::ProcessOrphanTx(std::set<uint256>& orphan_work_set, std::list< // for concerns around weakening security of unupgraded nodes // if we start doing this too early. assert(recentRejects); - recentRejects->insert(orphanTx.GetWitnessHash()); + recentRejects->insert(porphanTx->GetWitnessHash()); // If the transaction failed for TX_INPUTS_NOT_STANDARD, // then we know that the witness was irrelevant to the policy // failure, since this check depends only on the txid @@ -2094,17 +2121,17 @@ void PeerManager::ProcessOrphanTx(std::set<uint256>& orphan_work_set, std::list< // processing of this transaction in the event that child // transactions are later received (resulting in // parent-fetching by txid via the orphan-handling logic). - if (orphan_state.GetResult() == TxValidationResult::TX_INPUTS_NOT_STANDARD && orphanTx.GetWitnessHash() != orphanTx.GetHash()) { + if (state.GetResult() == TxValidationResult::TX_INPUTS_NOT_STANDARD && porphanTx->GetWitnessHash() != porphanTx->GetHash()) { // We only add the txid if it differs from the wtxid, to // avoid wasting entries in the rolling bloom filter. - recentRejects->insert(orphanTx.GetHash()); + recentRejects->insert(porphanTx->GetHash()); } } EraseOrphanTx(orphanHash); - done = true; + break; } - m_mempool.check(&::ChainstateActive().CoinsTip()); } + m_mempool.check(&::ChainstateActive().CoinsTip()); } /** @@ -3017,8 +3044,12 @@ void PeerManager::ProcessMessage(CNode& pfrom, const std::string& msg_type, CDat tx.GetHash().ToString(), m_mempool.size(), m_mempool.DynamicMemoryUsage() / 1000); + for (const CTransactionRef& removedTx : lRemovedTxn) { + AddToCompactExtraTransactions(removedTx); + } + // Recursively process any orphan transactions that depended on this one - ProcessOrphanTx(pfrom.orphan_work_set, lRemovedTxn); + ProcessOrphanTx(pfrom.orphan_work_set); } else if (state.GetResult() == TxValidationResult::TX_MISSING_INPUTS) { @@ -3119,9 +3150,6 @@ void PeerManager::ProcessMessage(CNode& pfrom, const std::string& msg_type, CDat } } - for (const CTransactionRef& removedTx : lRemovedTxn) - AddToCompactExtraTransactions(removedTx); - // If a tx has been detected by recentRejects, we will have reached // this point and the tx will have been ignored. Because we haven't run // the tx through AcceptToMemoryPool, we won't have computed a DoS @@ -3520,11 +3548,7 @@ void PeerManager::ProcessMessage(CNode& pfrom, const std::string& msg_type, CDat // Making nodes which are behind NAT and can only make outgoing connections ignore // the getaddr message mitigates the attack. if (!pfrom.IsInboundConn()) { - LogPrint(BCLog::NET, "Ignoring \"getaddr\" from outbound connection. peer=%d\n", pfrom.GetId()); - return; - } - if (!pfrom.RelayAddrsWithConn()) { - LogPrint(BCLog::NET, "Ignoring \"getaddr\" from block-relay-only connection. peer=%d\n", pfrom.GetId()); + LogPrint(BCLog::NET, "Ignoring \"getaddr\" from %s connection. peer=%d\n", pfrom.ConnectionTypeAsString(), pfrom.GetId()); return; } @@ -3819,26 +3843,14 @@ bool PeerManager::MaybeDiscourageAndDisconnect(CNode& pnode) bool PeerManager::ProcessMessages(CNode* pfrom, std::atomic<bool>& interruptMsgProc) { - // - // Message format - // (4) message start - // (12) command - // (4) size - // (4) checksum - // (x) data - // bool fMoreWork = false; if (!pfrom->vRecvGetData.empty()) ProcessGetData(*pfrom, m_chainparams, m_connman, m_mempool, interruptMsgProc); if (!pfrom->orphan_work_set.empty()) { - std::list<CTransactionRef> removed_txn; LOCK2(cs_main, g_cs_orphans); - ProcessOrphanTx(pfrom->orphan_work_set, removed_txn); - for (const CTransactionRef& removedTx : removed_txn) { - AddToCompactExtraTransactions(removedTx); - } + ProcessOrphanTx(pfrom->orphan_work_set); } if (pfrom->fDisconnect) @@ -3867,35 +3879,13 @@ bool PeerManager::ProcessMessages(CNode* pfrom, std::atomic<bool>& interruptMsgP CNetMessage& msg(msgs.front()); msg.SetVersion(pfrom->GetCommonVersion()); - // Check network magic - if (!msg.m_valid_netmagic) { - LogPrint(BCLog::NET, "PROCESSMESSAGE: INVALID MESSAGESTART %s peer=%d\n", SanitizeString(msg.m_command), pfrom->GetId()); - pfrom->fDisconnect = true; - return false; - } - - // Check header - if (!msg.m_valid_header) - { - LogPrint(BCLog::NET, "PROCESSMESSAGE: ERRORS IN HEADER %s peer=%d\n", SanitizeString(msg.m_command), pfrom->GetId()); - return fMoreWork; - } const std::string& msg_type = msg.m_command; // Message size unsigned int nMessageSize = msg.m_message_size; - // Checksum - CDataStream& vRecv = msg.m_recv; - if (!msg.m_valid_checksum) - { - LogPrint(BCLog::NET, "%s(%s, %u bytes): CHECKSUM ERROR peer=%d\n", __func__, - SanitizeString(msg_type), nMessageSize, pfrom->GetId()); - return fMoreWork; - } - try { - ProcessMessage(*pfrom, msg_type, vRecv, msg.m_time, interruptMsgProc); + ProcessMessage(*pfrom, msg_type, msg.m_recv, msg.m_time, interruptMsgProc); if (interruptMsgProc) return false; if (!pfrom->vRecvGetData.empty()) diff --git a/src/net_processing.h b/src/net_processing.h index 3e748c0c5b..946a5f4715 100644 --- a/src/net_processing.h +++ b/src/net_processing.h @@ -121,8 +121,7 @@ private: */ bool MaybeDiscourageAndDisconnect(CNode& pnode); - void ProcessOrphanTx(std::set<uint256>& orphan_work_set, std::list<CTransactionRef>& removed_txn) - EXCLUSIVE_LOCKS_REQUIRED(cs_main, g_cs_orphans); + void ProcessOrphanTx(std::set<uint256>& orphan_work_set) EXCLUSIVE_LOCKS_REQUIRED(cs_main, g_cs_orphans); /** Process a single headers message from a peer. */ void ProcessHeadersMessage(CNode& pfrom, const std::vector<CBlockHeader>& headers, bool via_compact_block); diff --git a/src/netaddress.cpp b/src/netaddress.cpp index b50cf74069..0c4c0a339b 100644 --- a/src/netaddress.cpp +++ b/src/netaddress.cpp @@ -5,18 +5,112 @@ #include <netaddress.h> +#include <crypto/common.h> +#include <crypto/sha3.h> #include <hash.h> +#include <prevector.h> #include <tinyformat.h> -#include <util/strencodings.h> #include <util/asmap.h> +#include <util/strencodings.h> +#include <util/string.h> #include <algorithm> #include <array> #include <cstdint> +#include <ios> #include <iterator> #include <tuple> constexpr size_t CNetAddr::V1_SERIALIZATION_SIZE; +constexpr size_t CNetAddr::MAX_ADDRV2_SIZE; + +CNetAddr::BIP155Network CNetAddr::GetBIP155Network() const +{ + switch (m_net) { + case NET_IPV4: + return BIP155Network::IPV4; + case NET_IPV6: + return BIP155Network::IPV6; + case NET_ONION: + switch (m_addr.size()) { + case ADDR_TORV2_SIZE: + return BIP155Network::TORV2; + case ADDR_TORV3_SIZE: + return BIP155Network::TORV3; + default: + assert(false); + } + case NET_I2P: + return BIP155Network::I2P; + case NET_CJDNS: + return BIP155Network::CJDNS; + case NET_INTERNAL: // should have been handled before calling this function + case NET_UNROUTABLE: // m_net is never and should not be set to NET_UNROUTABLE + case NET_MAX: // m_net is never and should not be set to NET_MAX + assert(false); + } // no default case, so the compiler can warn about missing cases + + assert(false); +} + +bool CNetAddr::SetNetFromBIP155Network(uint8_t possible_bip155_net, size_t address_size) +{ + switch (possible_bip155_net) { + case BIP155Network::IPV4: + if (address_size == ADDR_IPV4_SIZE) { + m_net = NET_IPV4; + return true; + } + throw std::ios_base::failure( + strprintf("BIP155 IPv4 address with length %u (should be %u)", address_size, + ADDR_IPV4_SIZE)); + case BIP155Network::IPV6: + if (address_size == ADDR_IPV6_SIZE) { + m_net = NET_IPV6; + return true; + } + throw std::ios_base::failure( + strprintf("BIP155 IPv6 address with length %u (should be %u)", address_size, + ADDR_IPV6_SIZE)); + case BIP155Network::TORV2: + if (address_size == ADDR_TORV2_SIZE) { + m_net = NET_ONION; + return true; + } + throw std::ios_base::failure( + strprintf("BIP155 TORv2 address with length %u (should be %u)", address_size, + ADDR_TORV2_SIZE)); + case BIP155Network::TORV3: + if (address_size == ADDR_TORV3_SIZE) { + m_net = NET_ONION; + return true; + } + throw std::ios_base::failure( + strprintf("BIP155 TORv3 address with length %u (should be %u)", address_size, + ADDR_TORV3_SIZE)); + case BIP155Network::I2P: + if (address_size == ADDR_I2P_SIZE) { + m_net = NET_I2P; + return true; + } + throw std::ios_base::failure( + strprintf("BIP155 I2P address with length %u (should be %u)", address_size, + ADDR_I2P_SIZE)); + case BIP155Network::CJDNS: + if (address_size == ADDR_CJDNS_SIZE) { + m_net = NET_CJDNS; + return true; + } + throw std::ios_base::failure( + strprintf("BIP155 CJDNS address with length %u (should be %u)", address_size, + ADDR_CJDNS_SIZE)); + } + + // Don't throw on addresses with unknown network ids (maybe from the future). + // Instead silently drop them and have the unserialization code consume + // subsequent ones which may be known to us. + return false; +} /** * Construct an unspecified IPv6 network address (::/128). @@ -36,7 +130,13 @@ void CNetAddr::SetIP(const CNetAddr& ipIn) assert(ipIn.m_addr.size() == ADDR_IPV6_SIZE); break; case NET_ONION: - assert(ipIn.m_addr.size() == ADDR_TORV2_SIZE); + assert(ipIn.m_addr.size() == ADDR_TORV2_SIZE || ipIn.m_addr.size() == ADDR_TORV3_SIZE); + break; + case NET_I2P: + assert(ipIn.m_addr.size() == ADDR_I2P_SIZE); + break; + case NET_CJDNS: + assert(ipIn.m_addr.size() == ADDR_CJDNS_SIZE); break; case NET_INTERNAL: assert(ipIn.m_addr.size() == ADDR_INTERNAL_SIZE); @@ -50,13 +150,6 @@ void CNetAddr::SetIP(const CNetAddr& ipIn) m_addr = ipIn.m_addr; } -template <typename T1, size_t PREFIX_LEN> -inline bool HasPrefix(const T1& obj, const std::array<uint8_t, PREFIX_LEN>& prefix) -{ - return obj.size() >= PREFIX_LEN && - std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); -} - void CNetAddr::SetLegacyIPv6(Span<const uint8_t> ipv6) { assert(ipv6.size() == ADDR_IPV6_SIZE); @@ -101,24 +194,80 @@ bool CNetAddr::SetInternal(const std::string &name) return true; } +namespace torv3 { +// https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt#n2135 +static constexpr size_t CHECKSUM_LEN = 2; +static const unsigned char VERSION[] = {3}; +static constexpr size_t TOTAL_LEN = ADDR_TORV3_SIZE + CHECKSUM_LEN + sizeof(VERSION); + +static void Checksum(Span<const uint8_t> addr_pubkey, uint8_t (&checksum)[CHECKSUM_LEN]) +{ + // TORv3 CHECKSUM = H(".onion checksum" | PUBKEY | VERSION)[:2] + static const unsigned char prefix[] = ".onion checksum"; + static constexpr size_t prefix_len = 15; + + SHA3_256 hasher; + + hasher.Write(MakeSpan(prefix).first(prefix_len)); + hasher.Write(addr_pubkey); + hasher.Write(VERSION); + + uint8_t checksum_full[SHA3_256::OUTPUT_SIZE]; + + hasher.Finalize(checksum_full); + + memcpy(checksum, checksum_full, sizeof(checksum)); +} + +}; // namespace torv3 + /** - * Parse a TORv2 address and set this object to it. + * Parse a TOR address and set this object to it. * * @returns Whether or not the operation was successful. * * @see CNetAddr::IsTor() */ -bool CNetAddr::SetSpecial(const std::string &strName) +bool CNetAddr::SetSpecial(const std::string& str) { - if (strName.size()>6 && strName.substr(strName.size() - 6, 6) == ".onion") { - std::vector<unsigned char> vchAddr = DecodeBase32(strName.substr(0, strName.size() - 6).c_str()); - if (vchAddr.size() != ADDR_TORV2_SIZE) { + static const char* suffix{".onion"}; + static constexpr size_t suffix_len{6}; + + if (!ValidAsCString(str) || str.size() <= suffix_len || + str.substr(str.size() - suffix_len) != suffix) { + return false; + } + + bool invalid; + const auto& input = DecodeBase32(str.substr(0, str.size() - suffix_len).c_str(), &invalid); + + if (invalid) { + return false; + } + + switch (input.size()) { + case ADDR_TORV2_SIZE: + m_net = NET_ONION; + m_addr.assign(input.begin(), input.end()); + return true; + case torv3::TOTAL_LEN: { + Span<const uint8_t> input_pubkey{input.data(), ADDR_TORV3_SIZE}; + Span<const uint8_t> input_checksum{input.data() + ADDR_TORV3_SIZE, torv3::CHECKSUM_LEN}; + Span<const uint8_t> input_version{input.data() + ADDR_TORV3_SIZE + torv3::CHECKSUM_LEN, sizeof(torv3::VERSION)}; + + uint8_t calculated_checksum[torv3::CHECKSUM_LEN]; + torv3::Checksum(input_pubkey, calculated_checksum); + + if (input_checksum != calculated_checksum || input_version != torv3::VERSION) { return false; } + m_net = NET_ONION; - m_addr.assign(vchAddr.begin(), vchAddr.end()); + m_addr.assign(input_pubkey.begin(), input_pubkey.end()); return true; } + } + return false; } @@ -132,7 +281,7 @@ CNetAddr::CNetAddr(const struct in_addr& ipv4Addr) CNetAddr::CNetAddr(const struct in6_addr& ipv6Addr, const uint32_t scope) { SetLegacyIPv6(Span<const uint8_t>(reinterpret_cast<const uint8_t*>(&ipv6Addr), sizeof(ipv6Addr))); - scopeId = scope; + m_scope_id = scope; } bool CNetAddr::IsBindAny() const @@ -235,13 +384,21 @@ bool CNetAddr::IsHeNet() const } /** - * @returns Whether or not this is a dummy address that maps an onion address - * into IPv6. - * + * Check whether this object represents a TOR address. * @see CNetAddr::SetSpecial(const std::string &) */ bool CNetAddr::IsTor() const { return m_net == NET_ONION; } +/** + * Check whether this object represents an I2P address. + */ +bool CNetAddr::IsI2P() const { return m_net == NET_I2P; } + +/** + * Check whether this object represents a CJDNS address. + */ +bool CNetAddr::IsCJDNS() const { return m_net == NET_CJDNS; } + bool CNetAddr::IsLocal() const { // IPv4 loopback (127.0.0.0/8 or 0.0.0.0/8) @@ -328,28 +485,72 @@ enum Network CNetAddr::GetNetwork() const return m_net; } +static std::string IPv6ToString(Span<const uint8_t> a) +{ + assert(a.size() == ADDR_IPV6_SIZE); + // clang-format off + return strprintf("%x:%x:%x:%x:%x:%x:%x:%x", + ReadBE16(&a[0]), + ReadBE16(&a[2]), + ReadBE16(&a[4]), + ReadBE16(&a[6]), + ReadBE16(&a[8]), + ReadBE16(&a[10]), + ReadBE16(&a[12]), + ReadBE16(&a[14])); + // clang-format on +} + std::string CNetAddr::ToStringIP() const { - if (IsTor()) - return EncodeBase32(m_addr) + ".onion"; - if (IsInternal()) + switch (m_net) { + case NET_IPV4: + case NET_IPV6: { + CService serv(*this, 0); + struct sockaddr_storage sockaddr; + socklen_t socklen = sizeof(sockaddr); + if (serv.GetSockAddr((struct sockaddr*)&sockaddr, &socklen)) { + char name[1025] = ""; + if (!getnameinfo((const struct sockaddr*)&sockaddr, socklen, name, + sizeof(name), nullptr, 0, NI_NUMERICHOST)) + return std::string(name); + } + if (m_net == NET_IPV4) { + return strprintf("%u.%u.%u.%u", m_addr[0], m_addr[1], m_addr[2], m_addr[3]); + } + return IPv6ToString(m_addr); + } + case NET_ONION: + switch (m_addr.size()) { + case ADDR_TORV2_SIZE: + return EncodeBase32(m_addr) + ".onion"; + case ADDR_TORV3_SIZE: { + + uint8_t checksum[torv3::CHECKSUM_LEN]; + torv3::Checksum(m_addr, checksum); + + // TORv3 onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion" + prevector<torv3::TOTAL_LEN, uint8_t> address{m_addr.begin(), m_addr.end()}; + address.insert(address.end(), checksum, checksum + torv3::CHECKSUM_LEN); + address.insert(address.end(), torv3::VERSION, torv3::VERSION + sizeof(torv3::VERSION)); + + return EncodeBase32(address) + ".onion"; + } + default: + assert(false); + } + case NET_I2P: + return EncodeBase32(m_addr, false /* don't pad with = */) + ".b32.i2p"; + case NET_CJDNS: + return IPv6ToString(m_addr); + case NET_INTERNAL: return EncodeBase32(m_addr) + ".internal"; - CService serv(*this, 0); - struct sockaddr_storage sockaddr; - socklen_t socklen = sizeof(sockaddr); - if (serv.GetSockAddr((struct sockaddr*)&sockaddr, &socklen)) { - char name[1025] = ""; - if (!getnameinfo((const struct sockaddr*)&sockaddr, socklen, name, sizeof(name), nullptr, 0, NI_NUMERICHOST)) - return std::string(name); - } - if (IsIPv4()) - return strprintf("%u.%u.%u.%u", m_addr[0], m_addr[1], m_addr[2], m_addr[3]); - assert(IsIPv6()); - return strprintf("%x:%x:%x:%x:%x:%x:%x:%x", - m_addr[0] << 8 | m_addr[1], m_addr[2] << 8 | m_addr[3], - m_addr[4] << 8 | m_addr[5], m_addr[6] << 8 | m_addr[7], - m_addr[8] << 8 | m_addr[9], m_addr[10] << 8 | m_addr[11], - m_addr[12] << 8 | m_addr[13], m_addr[14] << 8 | m_addr[15]); + case NET_UNROUTABLE: // m_net is never and should not be set to NET_UNROUTABLE + case NET_MAX: // m_net is never and should not be set to NET_MAX + assert(false); + } // no default case, so the compiler can warn about missing cases + + assert(false); } std::string CNetAddr::ToString() const @@ -428,21 +629,22 @@ uint32_t CNetAddr::GetLinkedIPv4() const assert(false); } -uint32_t CNetAddr::GetNetClass() const { - uint32_t net_class = NET_IPV6; - if (IsLocal()) { - net_class = 255; - } +uint32_t CNetAddr::GetNetClass() const +{ + // Make sure that if we return NET_IPV6, then IsIPv6() is true. The callers expect that. + + // Check for "internal" first because such addresses are also !IsRoutable() + // and we don't want to return NET_UNROUTABLE in that case. if (IsInternal()) { - net_class = NET_INTERNAL; - } else if (!IsRoutable()) { - net_class = NET_UNROUTABLE; - } else if (HasLinkedIPv4()) { - net_class = NET_IPV4; - } else if (IsTor()) { - net_class = NET_ONION; + return NET_INTERNAL; } - return net_class; + if (!IsRoutable()) { + return NET_UNROUTABLE; + } + if (HasLinkedIPv4()) { + return NET_IPV4; + } + return m_net; } uint32_t CNetAddr::GetMappedAS(const std::vector<bool> &asmap) const { @@ -517,7 +719,7 @@ std::vector<unsigned char> CNetAddr::GetGroup(const std::vector<bool> &asmap) co vchRet.push_back((ipv4 >> 24) & 0xFF); vchRet.push_back((ipv4 >> 16) & 0xFF); return vchRet; - } else if (IsTor()) { + } else if (IsTor() || IsI2P() || IsCJDNS()) { nBits = 4; } else if (IsHeNet()) { // for he.net, use /36 groups @@ -716,7 +918,7 @@ bool CService::GetSockAddr(struct sockaddr* paddr, socklen_t *addrlen) const memset(paddrin6, 0, *addrlen); if (!GetIn6Addr(&paddrin6->sin6_addr)) return false; - paddrin6->sin6_scope_id = scopeId; + paddrin6->sin6_scope_id = m_scope_id; paddrin6->sin6_family = AF_INET6; paddrin6->sin6_port = htons(port); return true; @@ -742,7 +944,7 @@ std::string CService::ToStringPort() const std::string CService::ToStringIPPort() const { - if (IsIPv4() || IsTor() || IsInternal()) { + if (IsIPv4() || IsTor() || IsI2P() || IsInternal()) { return ToStringIP() + ":" + ToStringPort(); } else { return "[" + ToStringIP() + "]:" + ToStringPort(); diff --git a/src/netaddress.h b/src/netaddress.h index d00f5a6f55..78e7e1b4b3 100644 --- a/src/netaddress.h +++ b/src/netaddress.h @@ -13,13 +13,25 @@ #include <compat.h> #include <prevector.h> #include <serialize.h> +#include <tinyformat.h> +#include <util/strencodings.h> +#include <util/string.h> #include <array> #include <cstdint> +#include <ios> #include <string> #include <vector> /** + * A flag that is ORed into the protocol version to designate that addresses + * should be serialized in (unserialized from) v2 format (BIP155). + * Make sure that this does not collide with any of the values in `version.h` + * or with `SERIALIZE_TRANSACTION_NO_WITNESS`. + */ +static const int ADDRV2_FORMAT = 0x20000000; + +/** * A network type. * @note An address may belong to more than one network, for example `10.0.0.1` * belongs to both `NET_UNROUTABLE` and `NET_IPV4`. @@ -39,9 +51,15 @@ enum Network /// IPv6 NET_IPV6, - /// TORv2 + /// TOR (v2 or v3) NET_ONION, + /// I2P + NET_I2P, + + /// CJDNS + NET_CJDNS, + /// A set of addresses that represent the hash of a string or FQDN. We use /// them in CAddrMan to keep track of which DNS seeds were used. NET_INTERNAL, @@ -82,6 +100,16 @@ static constexpr size_t ADDR_IPV6_SIZE = 16; /// Size of TORv2 address (in bytes). static constexpr size_t ADDR_TORV2_SIZE = 10; +/// Size of TORv3 address (in bytes). This is the length of just the address +/// as used in BIP155, without the checksum and the version byte. +static constexpr size_t ADDR_TORV3_SIZE = 32; + +/// Size of I2P address (in bytes). +static constexpr size_t ADDR_I2P_SIZE = 32; + +/// Size of CJDNS address (in bytes). +static constexpr size_t ADDR_CJDNS_SIZE = 16; + /// Size of "internal" (NET_INTERNAL) address (in bytes). static constexpr size_t ADDR_INTERNAL_SIZE = 10; @@ -102,7 +130,11 @@ class CNetAddr */ Network m_net{NET_IPV6}; - uint32_t scopeId{0}; // for scoped/link-local ipv6 addresses + /** + * Scope id if scoped/link-local IPV6 address. + * See https://tools.ietf.org/html/rfc4007 + */ + uint32_t m_scope_id{0}; public: CNetAddr(); @@ -139,6 +171,8 @@ class CNetAddr bool IsRFC6145() const; // IPv6 IPv4-translated address (::FFFF:0:0:0/96) (actually defined in RFC2765) bool IsHeNet() const; // IPv6 Hurricane Electric - https://he.net (2001:0470::/36) bool IsTor() const; + bool IsI2P() const; + bool IsCJDNS() const; bool IsLocal() const; bool IsRoutable() const; bool IsInternal() const; @@ -177,7 +211,11 @@ class CNetAddr template <typename Stream> void Serialize(Stream& s) const { - SerializeV1Stream(s); + if (s.GetVersion() & ADDRV2_FORMAT) { + SerializeV2Stream(s); + } else { + SerializeV1Stream(s); + } } /** @@ -186,20 +224,58 @@ class CNetAddr template <typename Stream> void Unserialize(Stream& s) { - UnserializeV1Stream(s); + if (s.GetVersion() & ADDRV2_FORMAT) { + UnserializeV2Stream(s); + } else { + UnserializeV1Stream(s); + } } friend class CSubNet; private: /** + * BIP155 network ids recognized by this software. + */ + enum BIP155Network : uint8_t { + IPV4 = 1, + IPV6 = 2, + TORV2 = 3, + TORV3 = 4, + I2P = 5, + CJDNS = 6, + }; + + /** * Size of CNetAddr when serialized as ADDRv1 (pre-BIP155) (in bytes). */ static constexpr size_t V1_SERIALIZATION_SIZE = ADDR_IPV6_SIZE; /** + * Maximum size of an address as defined in BIP155 (in bytes). + * This is only the size of the address, not the entire CNetAddr object + * when serialized. + */ + static constexpr size_t MAX_ADDRV2_SIZE = 512; + + /** + * Get the BIP155 network id of this address. + * Must not be called for IsInternal() objects. + * @returns BIP155 network id + */ + BIP155Network GetBIP155Network() const; + + /** + * Set `m_net` from the provided BIP155 network id and size after validation. + * @retval true the network was recognized, is valid and `m_net` was set + * @retval false not recognised (from future?) and should be silently ignored + * @throws std::ios_base::failure if the network is one of the BIP155 founding + * networks (id 1..6) with wrong address size. + */ + bool SetNetFromBIP155Network(uint8_t possible_bip155_net, size_t address_size); + + /** * Serialize in pre-ADDRv2/BIP155 format to an array. - * Some addresses (e.g. TORv3) cannot be serialized in pre-BIP155 format. */ void SerializeV1Array(uint8_t (&arr)[V1_SERIALIZATION_SIZE]) const { @@ -217,6 +293,9 @@ class CNetAddr memcpy(arr + prefix_size, m_addr.data(), m_addr.size()); return; case NET_ONION: + if (m_addr.size() == ADDR_TORV3_SIZE) { + break; + } prefix_size = sizeof(TORV2_IN_IPV6_PREFIX); assert(prefix_size + m_addr.size() == sizeof(arr)); memcpy(arr, TORV2_IN_IPV6_PREFIX.data(), prefix_size); @@ -228,17 +307,21 @@ class CNetAddr memcpy(arr, INTERNAL_IN_IPV6_PREFIX.data(), prefix_size); memcpy(arr + prefix_size, m_addr.data(), m_addr.size()); return; + case NET_I2P: + break; + case NET_CJDNS: + break; case NET_UNROUTABLE: case NET_MAX: assert(false); } // no default case, so the compiler can warn about missing cases - assert(false); + // Serialize TORv3, I2P and CJDNS as all-zeros. + memset(arr, 0x0, V1_SERIALIZATION_SIZE); } /** * Serialize in pre-ADDRv2/BIP155 format to a stream. - * Some addresses (e.g. TORv3) cannot be serialized in pre-BIP155 format. */ template <typename Stream> void SerializeV1Stream(Stream& s) const @@ -251,6 +334,25 @@ class CNetAddr } /** + * Serialize as ADDRv2 / BIP155. + */ + template <typename Stream> + void SerializeV2Stream(Stream& s) const + { + if (IsInternal()) { + // Serialize NET_INTERNAL as embedded in IPv6. We need to + // serialize such addresses from addrman. + s << static_cast<uint8_t>(BIP155Network::IPV6); + s << COMPACTSIZE(ADDR_IPV6_SIZE); + SerializeV1Stream(s); + return; + } + + s << static_cast<uint8_t>(GetBIP155Network()); + s << m_addr; + } + + /** * Unserialize from a pre-ADDRv2/BIP155 format from an array. */ void UnserializeV1Array(uint8_t (&arr)[V1_SERIALIZATION_SIZE]) @@ -272,6 +374,65 @@ class CNetAddr UnserializeV1Array(serialized); } + + /** + * Unserialize from a ADDRv2 / BIP155 format. + */ + template <typename Stream> + void UnserializeV2Stream(Stream& s) + { + uint8_t bip155_net; + s >> bip155_net; + + size_t address_size; + s >> COMPACTSIZE(address_size); + + if (address_size > MAX_ADDRV2_SIZE) { + throw std::ios_base::failure(strprintf( + "Address too long: %u > %u", address_size, MAX_ADDRV2_SIZE)); + } + + m_scope_id = 0; + + if (SetNetFromBIP155Network(bip155_net, address_size)) { + m_addr.resize(address_size); + s >> MakeSpan(m_addr); + + if (m_net != NET_IPV6) { + return; + } + + // Do some special checks on IPv6 addresses. + + // Recognize NET_INTERNAL embedded in IPv6, such addresses are not + // gossiped but could be coming from addrman, when unserializing from + // disk. + if (HasPrefix(m_addr, INTERNAL_IN_IPV6_PREFIX)) { + m_net = NET_INTERNAL; + memmove(m_addr.data(), m_addr.data() + INTERNAL_IN_IPV6_PREFIX.size(), + ADDR_INTERNAL_SIZE); + m_addr.resize(ADDR_INTERNAL_SIZE); + return; + } + + if (!HasPrefix(m_addr, IPV4_IN_IPV6_PREFIX) && + !HasPrefix(m_addr, TORV2_IN_IPV6_PREFIX)) { + return; + } + + // IPv4 and TORv2 are not supposed to be embedded in IPv6 (like in V1 + // encoding). Unserialize as !IsValid(), thus ignoring them. + } else { + // If we receive an unknown BIP155 network id (from the future?) then + // ignore the address - unserialize as !IsValid(). + s.ignore(address_size); + } + + // Mimic a default-constructed CNetAddr object which is !IsValid() and thus + // will not be gossiped, but continue reading next addresses from the stream. + m_net = NET_IPV6; + m_addr.assign(ADDR_IPV6_SIZE, 0x0); + } }; class CSubNet diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp index 25458eead2..0f31093dbb 100644 --- a/src/policy/fees.cpp +++ b/src/policy/fees.cpp @@ -55,7 +55,7 @@ private: // Sum the total feerate of all tx's in each bucket // Track the historical moving average of this total over blocks - std::vector<double> avg; + std::vector<double> m_feerate_avg; // Combine the conf counts with tx counts to calculate the confirmation % for each Y,X // Combine the total value with the tx counts to calculate the avg feerate per bucket @@ -114,12 +114,10 @@ public: * @param confTarget target number of confirmations * @param sufficientTxVal required average number of transactions per block in a bucket range * @param minSuccess the success probability we require - * @param requireGreater return the lowest feerate such that all higher values pass minSuccess OR - * return the highest feerate such that all lower values fail minSuccess * @param nBlockHeight the current block height */ double EstimateMedianVal(int confTarget, double sufficientTxVal, - double minSuccess, bool requireGreater, unsigned int nBlockHeight, + double minSuccess, unsigned int nBlockHeight, EstimationResult *result = nullptr) const; /** Return the max number of confirms we're tracking */ @@ -139,22 +137,18 @@ public: TxConfirmStats::TxConfirmStats(const std::vector<double>& defaultBuckets, const std::map<double, unsigned int>& defaultBucketMap, unsigned int maxPeriods, double _decay, unsigned int _scale) - : buckets(defaultBuckets), bucketMap(defaultBucketMap) + : buckets(defaultBuckets), bucketMap(defaultBucketMap), decay(_decay), scale(_scale) { - decay = _decay; assert(_scale != 0 && "_scale must be non-zero"); - scale = _scale; confAvg.resize(maxPeriods); - for (unsigned int i = 0; i < maxPeriods; i++) { - confAvg[i].resize(buckets.size()); - } failAvg.resize(maxPeriods); for (unsigned int i = 0; i < maxPeriods; i++) { + confAvg[i].resize(buckets.size()); failAvg[i].resize(buckets.size()); } txCtAvg.resize(buckets.size()); - avg.resize(buckets.size()); + m_feerate_avg.resize(buckets.size()); resizeInMemoryCounters(buckets.size()); } @@ -172,68 +166,61 @@ void TxConfirmStats::resizeInMemoryCounters(size_t newbuckets) { void TxConfirmStats::ClearCurrent(unsigned int nBlockHeight) { for (unsigned int j = 0; j < buckets.size(); j++) { - oldUnconfTxs[j] += unconfTxs[nBlockHeight%unconfTxs.size()][j]; + oldUnconfTxs[j] += unconfTxs[nBlockHeight % unconfTxs.size()][j]; unconfTxs[nBlockHeight%unconfTxs.size()][j] = 0; } } -void TxConfirmStats::Record(int blocksToConfirm, double val) +void TxConfirmStats::Record(int blocksToConfirm, double feerate) { // blocksToConfirm is 1-based if (blocksToConfirm < 1) return; - int periodsToConfirm = (blocksToConfirm + scale - 1)/scale; - unsigned int bucketindex = bucketMap.lower_bound(val)->second; + int periodsToConfirm = (blocksToConfirm + scale - 1) / scale; + unsigned int bucketindex = bucketMap.lower_bound(feerate)->second; for (size_t i = periodsToConfirm; i <= confAvg.size(); i++) { confAvg[i - 1][bucketindex]++; } txCtAvg[bucketindex]++; - avg[bucketindex] += val; + m_feerate_avg[bucketindex] += feerate; } void TxConfirmStats::UpdateMovingAverages() { + assert(confAvg.size() == failAvg.size()); for (unsigned int j = 0; j < buckets.size(); j++) { - for (unsigned int i = 0; i < confAvg.size(); i++) - confAvg[i][j] = confAvg[i][j] * decay; - for (unsigned int i = 0; i < failAvg.size(); i++) - failAvg[i][j] = failAvg[i][j] * decay; - avg[j] = avg[j] * decay; - txCtAvg[j] = txCtAvg[j] * decay; + for (unsigned int i = 0; i < confAvg.size(); i++) { + confAvg[i][j] *= decay; + failAvg[i][j] *= decay; + } + m_feerate_avg[j] *= decay; + txCtAvg[j] *= decay; } } // returns -1 on error conditions double TxConfirmStats::EstimateMedianVal(int confTarget, double sufficientTxVal, - double successBreakPoint, bool requireGreater, - unsigned int nBlockHeight, EstimationResult *result) const + double successBreakPoint, unsigned int nBlockHeight, + EstimationResult *result) const { // Counters for a bucket (or range of buckets) double nConf = 0; // Number of tx's confirmed within the confTarget double totalNum = 0; // Total number of tx's that were ever confirmed int extraNum = 0; // Number of tx's still in mempool for confTarget or longer double failNum = 0; // Number of tx's that were never confirmed but removed from the mempool after confTarget - int periodTarget = (confTarget + scale - 1)/scale; - - int maxbucketindex = buckets.size() - 1; - - // requireGreater means we are looking for the lowest feerate such that all higher - // values pass, so we start at maxbucketindex (highest feerate) and look at successively - // smaller buckets until we reach failure. Otherwise, we are looking for the highest - // feerate such that all lower values fail, and we go in the opposite direction. - unsigned int startbucket = requireGreater ? maxbucketindex : 0; - int step = requireGreater ? -1 : 1; + const int periodTarget = (confTarget + scale - 1) / scale; + const int maxbucketindex = buckets.size() - 1; // We'll combine buckets until we have enough samples. // The near and far variables will define the range we've combined // The best variables are the last range we saw which still had a high // enough confirmation rate to count as success. // The cur variables are the current range we're counting. - unsigned int curNearBucket = startbucket; - unsigned int bestNearBucket = startbucket; - unsigned int curFarBucket = startbucket; - unsigned int bestFarBucket = startbucket; + unsigned int curNearBucket = maxbucketindex; + unsigned int bestNearBucket = maxbucketindex; + unsigned int curFarBucket = maxbucketindex; + unsigned int bestFarBucket = maxbucketindex; bool foundAnswer = false; unsigned int bins = unconfTxs.size(); @@ -242,8 +229,8 @@ double TxConfirmStats::EstimateMedianVal(int confTarget, double sufficientTxVal, EstimatorBucket passBucket; EstimatorBucket failBucket; - // Start counting from highest(default) or lowest feerate transactions - for (int bucket = startbucket; bucket >= 0 && bucket <= maxbucketindex; bucket += step) { + // Start counting from highest feerate transactions + for (int bucket = maxbucketindex; bucket >= 0; --bucket) { if (newBucketRange) { curNearBucket = bucket; newBucketRange = false; @@ -253,7 +240,7 @@ double TxConfirmStats::EstimateMedianVal(int confTarget, double sufficientTxVal, totalNum += txCtAvg[bucket]; failNum += failAvg[periodTarget - 1][bucket]; for (unsigned int confct = confTarget; confct < GetMaxConfirms(); confct++) - extraNum += unconfTxs[(nBlockHeight - confct)%bins][bucket]; + extraNum += unconfTxs[(nBlockHeight - confct) % bins][bucket]; extraNum += oldUnconfTxs[bucket]; // If we have enough transaction data points in this range of buckets, // we can test for success @@ -263,7 +250,7 @@ double TxConfirmStats::EstimateMedianVal(int confTarget, double sufficientTxVal, double curPct = nConf / (totalNum + failNum + extraNum); // Check to see if we are no longer getting confirmed at the success rate - if ((requireGreater && curPct < successBreakPoint) || (!requireGreater && curPct > successBreakPoint)) { + if (curPct < successBreakPoint) { if (passing == true) { // First time we hit a failure record the failed bucket unsigned int failMinBucket = std::min(curNearBucket, curFarBucket); @@ -317,7 +304,7 @@ double TxConfirmStats::EstimateMedianVal(int confTarget, double sufficientTxVal, if (txCtAvg[j] < txSum) txSum -= txCtAvg[j]; else { // we're in the right bucket - median = avg[j] / txCtAvg[j]; + median = m_feerate_avg[j] / txCtAvg[j]; break; } } @@ -338,13 +325,22 @@ double TxConfirmStats::EstimateMedianVal(int confTarget, double sufficientTxVal, failBucket.leftMempool = failNum; } - LogPrint(BCLog::ESTIMATEFEE, "FeeEst: %d %s%.0f%% decay %.5f: feerate: %g from (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n", - confTarget, requireGreater ? ">" : "<", 100.0 * successBreakPoint, decay, + float passed_within_target_perc = 0.0; + float failed_within_target_perc = 0.0; + if ((passBucket.totalConfirmed + passBucket.inMempool + passBucket.leftMempool)) { + passed_within_target_perc = 100 * passBucket.withinTarget / (passBucket.totalConfirmed + passBucket.inMempool + passBucket.leftMempool); + } + if ((failBucket.totalConfirmed + failBucket.inMempool + failBucket.leftMempool)) { + failed_within_target_perc = 100 * failBucket.withinTarget / (failBucket.totalConfirmed + failBucket.inMempool + failBucket.leftMempool); + } + + LogPrint(BCLog::ESTIMATEFEE, "FeeEst: %d > %.0f%% decay %.5f: feerate: %g from (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n", + confTarget, 100.0 * successBreakPoint, decay, median, passBucket.start, passBucket.end, - 100 * passBucket.withinTarget / (passBucket.totalConfirmed + passBucket.inMempool + passBucket.leftMempool), + passed_within_target_perc, passBucket.withinTarget, passBucket.totalConfirmed, passBucket.inMempool, passBucket.leftMempool, failBucket.start, failBucket.end, - 100 * failBucket.withinTarget / (failBucket.totalConfirmed + failBucket.inMempool + failBucket.leftMempool), + failed_within_target_perc, failBucket.withinTarget, failBucket.totalConfirmed, failBucket.inMempool, failBucket.leftMempool); @@ -361,7 +357,7 @@ void TxConfirmStats::Write(CAutoFile& fileout) const { fileout << decay; fileout << scale; - fileout << avg; + fileout << m_feerate_avg; fileout << txCtAvg; fileout << confAvg; fileout << failAvg; @@ -384,8 +380,8 @@ void TxConfirmStats::Read(CAutoFile& filein, int nFileVersion, size_t numBuckets throw std::runtime_error("Corrupt estimates file. Scale must be non-zero"); } - filein >> avg; - if (avg.size() != numBuckets) { + filein >> m_feerate_avg; + if (m_feerate_avg.size() != numBuckets) { throw std::runtime_error("Corrupt estimates file. Mismatch in feerate average bucket count"); } filein >> txCtAvg; @@ -664,7 +660,7 @@ CFeeRate CBlockPolicyEstimator::estimateRawFee(int confTarget, double successThr if (successThreshold > 1) return CFeeRate(0); - double median = stats->EstimateMedianVal(confTarget, sufficientTxs, successThreshold, true, nBestSeenHeight, result); + double median = stats->EstimateMedianVal(confTarget, sufficientTxs, successThreshold, nBestSeenHeight, result); if (median < 0) return CFeeRate(0); @@ -725,26 +721,26 @@ double CBlockPolicyEstimator::estimateCombinedFee(unsigned int confTarget, doubl if (confTarget >= 1 && confTarget <= longStats->GetMaxConfirms()) { // Find estimate from shortest time horizon possible if (confTarget <= shortStats->GetMaxConfirms()) { // short horizon - estimate = shortStats->EstimateMedianVal(confTarget, SUFFICIENT_TXS_SHORT, successThreshold, true, nBestSeenHeight, result); + estimate = shortStats->EstimateMedianVal(confTarget, SUFFICIENT_TXS_SHORT, successThreshold, nBestSeenHeight, result); } else if (confTarget <= feeStats->GetMaxConfirms()) { // medium horizon - estimate = feeStats->EstimateMedianVal(confTarget, SUFFICIENT_FEETXS, successThreshold, true, nBestSeenHeight, result); + estimate = feeStats->EstimateMedianVal(confTarget, SUFFICIENT_FEETXS, successThreshold, nBestSeenHeight, result); } else { // long horizon - estimate = longStats->EstimateMedianVal(confTarget, SUFFICIENT_FEETXS, successThreshold, true, nBestSeenHeight, result); + estimate = longStats->EstimateMedianVal(confTarget, SUFFICIENT_FEETXS, successThreshold, nBestSeenHeight, result); } if (checkShorterHorizon) { EstimationResult tempResult; // If a lower confTarget from a more recent horizon returns a lower answer use it. if (confTarget > feeStats->GetMaxConfirms()) { - double medMax = feeStats->EstimateMedianVal(feeStats->GetMaxConfirms(), SUFFICIENT_FEETXS, successThreshold, true, nBestSeenHeight, &tempResult); + double medMax = feeStats->EstimateMedianVal(feeStats->GetMaxConfirms(), SUFFICIENT_FEETXS, successThreshold, nBestSeenHeight, &tempResult); if (medMax > 0 && (estimate == -1 || medMax < estimate)) { estimate = medMax; if (result) *result = tempResult; } } if (confTarget > shortStats->GetMaxConfirms()) { - double shortMax = shortStats->EstimateMedianVal(shortStats->GetMaxConfirms(), SUFFICIENT_TXS_SHORT, successThreshold, true, nBestSeenHeight, &tempResult); + double shortMax = shortStats->EstimateMedianVal(shortStats->GetMaxConfirms(), SUFFICIENT_TXS_SHORT, successThreshold, nBestSeenHeight, &tempResult); if (shortMax > 0 && (estimate == -1 || shortMax < estimate)) { estimate = shortMax; if (result) *result = tempResult; @@ -763,10 +759,10 @@ double CBlockPolicyEstimator::estimateConservativeFee(unsigned int doubleTarget, double estimate = -1; EstimationResult tempResult; if (doubleTarget <= shortStats->GetMaxConfirms()) { - estimate = feeStats->EstimateMedianVal(doubleTarget, SUFFICIENT_FEETXS, DOUBLE_SUCCESS_PCT, true, nBestSeenHeight, result); + estimate = feeStats->EstimateMedianVal(doubleTarget, SUFFICIENT_FEETXS, DOUBLE_SUCCESS_PCT, nBestSeenHeight, result); } if (doubleTarget <= feeStats->GetMaxConfirms()) { - double longEstimate = longStats->EstimateMedianVal(doubleTarget, SUFFICIENT_FEETXS, DOUBLE_SUCCESS_PCT, true, nBestSeenHeight, &tempResult); + double longEstimate = longStats->EstimateMedianVal(doubleTarget, SUFFICIENT_FEETXS, DOUBLE_SUCCESS_PCT, nBestSeenHeight, &tempResult); if (longEstimate > estimate) { estimate = longEstimate; if (result) *result = tempResult; diff --git a/src/policy/fees.h b/src/policy/fees.h index e79dbc9868..8ea8816dc3 100644 --- a/src/policy/fees.h +++ b/src/policy/fees.h @@ -138,9 +138,9 @@ private: /** Decay of .962 is a half-life of 18 blocks or about 3 hours */ static constexpr double SHORT_DECAY = .962; - /** Decay of .998 is a half-life of 144 blocks or about 1 day */ + /** Decay of .9952 is a half-life of 144 blocks or about 1 day */ static constexpr double MED_DECAY = .9952; - /** Decay of .9995 is a half-life of 1008 blocks or about 1 week */ + /** Decay of .99931 is a half-life of 1008 blocks or about 1 week */ static constexpr double LONG_DECAY = .99931; /** Require greater than 60% of X feerate transactions to be confirmed within Y/2 blocks*/ diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index 544bab6d9b..77cb1781a4 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -14,6 +14,12 @@ #include <tuple> +/** + * A flag that is ORed into the protocol version to designate that a transaction + * should be (un)serialized without witness data. + * Make sure that this does not collide with any of the values in `version.h` + * or with `ADDRV2_FORMAT`. + */ static const int SERIALIZE_TRANSACTION_NO_WITNESS = 0x40000000; /** An outpoint - a combination of a transaction hash and an index n into its vout */ diff --git a/src/protocol.cpp b/src/protocol.cpp index 48ca0c6df6..84b6e96aee 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -84,9 +84,9 @@ const static std::string allNetMessageTypes[] = { }; const static std::vector<std::string> allNetMessageTypesVec(allNetMessageTypes, allNetMessageTypes+ARRAYLEN(allNetMessageTypes)); -CMessageHeader::CMessageHeader(const MessageStartChars& pchMessageStartIn) +CMessageHeader::CMessageHeader() { - memcpy(pchMessageStart, pchMessageStartIn, MESSAGE_START_SIZE); + memset(pchMessageStart, 0, MESSAGE_START_SIZE); memset(pchCommand, 0, sizeof(pchCommand)); nMessageSize = -1; memset(pchChecksum, 0, CHECKSUM_SIZE); @@ -111,31 +111,20 @@ std::string CMessageHeader::GetCommand() const return std::string(pchCommand, pchCommand + strnlen(pchCommand, COMMAND_SIZE)); } -bool CMessageHeader::IsValid(const MessageStartChars& pchMessageStartIn) const +bool CMessageHeader::IsCommandValid() const { - // Check start string - if (memcmp(pchMessageStart, pchMessageStartIn, MESSAGE_START_SIZE) != 0) - return false; - // Check the command string for errors - for (const char* p1 = pchCommand; p1 < pchCommand + COMMAND_SIZE; p1++) - { - if (*p1 == 0) - { + for (const char* p1 = pchCommand; p1 < pchCommand + COMMAND_SIZE; ++p1) { + if (*p1 == 0) { // Must be all zeros after the first zero - for (; p1 < pchCommand + COMMAND_SIZE; p1++) - if (*p1 != 0) + for (; p1 < pchCommand + COMMAND_SIZE; ++p1) { + if (*p1 != 0) { return false; - } - else if (*p1 < ' ' || *p1 > 0x7E) + } + } + } else if (*p1 < ' ' || *p1 > 0x7E) { return false; - } - - // Message size - if (nMessageSize > MAX_SIZE) - { - LogPrintf("CMessageHeader::IsValid(): (%s, %u bytes) nMessageSize > MAX_SIZE\n", GetCommand(), nMessageSize); - return false; + } } return true; diff --git a/src/protocol.h b/src/protocol.h index 7fb84cddf1..9a44a1626c 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -37,7 +37,7 @@ public: static constexpr size_t HEADER_SIZE = MESSAGE_START_SIZE + COMMAND_SIZE + MESSAGE_SIZE_SIZE + CHECKSUM_SIZE; typedef unsigned char MessageStartChars[MESSAGE_START_SIZE]; - explicit CMessageHeader(const MessageStartChars& pchMessageStartIn); + explicit CMessageHeader(); /** Construct a P2P message header from message-start characters, a command and the size of the message. * @note Passing in a `pszCommand` longer than COMMAND_SIZE will result in a run-time assertion error. @@ -45,7 +45,7 @@ public: CMessageHeader(const MessageStartChars& pchMessageStartIn, const char* pszCommand, unsigned int nMessageSizeIn); std::string GetCommand() const; - bool IsValid(const MessageStartChars& messageStart) const; + bool IsCommandValid() const; SERIALIZE_METHODS(CMessageHeader, obj) { READWRITE(obj.pchMessageStart, obj.pchCommand, obj.nMessageSize, obj.pchChecksum); } diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/bitcoin_locale.qrc index a35ca15d62..d438d6b3d5 100644 --- a/src/qt/bitcoin_locale.qrc +++ b/src/qt/bitcoin_locale.qrc @@ -28,6 +28,7 @@ <file alias="fi">locale/bitcoin_fi.qm</file> <file alias="fil">locale/bitcoin_fil.qm</file> <file alias="fr">locale/bitcoin_fr.qm</file> + <file alias="gl_ES">locale/bitcoin_gl_ES.qm</file> <file alias="he">locale/bitcoin_he.qm</file> <file alias="hi">locale/bitcoin_hi.qm</file> <file alias="hr">locale/bitcoin_hr.qm</file> @@ -72,7 +73,6 @@ <file alias="ta">locale/bitcoin_ta.qm</file> <file alias="te">locale/bitcoin_te.qm</file> <file alias="th">locale/bitcoin_th.qm</file> - <file alias="tr">locale/bitcoin_tr.qm</file> <file alias="uk">locale/bitcoin_uk.qm</file> <file alias="ur">locale/bitcoin_ur.qm</file> <file alias="uz@Cyrl">locale/bitcoin_uz@Cyrl.qm</file> @@ -84,5 +84,6 @@ <file alias="zh_CN">locale/bitcoin_zh_CN.qm</file> <file alias="zh_HK">locale/bitcoin_zh_HK.qm</file> <file alias="zh_TW">locale/bitcoin_zh_TW.qm</file> + <file alias="zu">locale/bitcoin_zu.qm</file> </qresource> </RCC> diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index 64900a4343..8b89242f6c 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -11,20 +11,19 @@ static const char UNUSED *bitcoin_strings[] = { QT_TRANSLATE_NOOP("bitcoin-core", "The %s developers"), QT_TRANSLATE_NOOP("bitcoin-core", "" +"%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring " +"a backup."), +QT_TRANSLATE_NOOP("bitcoin-core", "" "-maxtxfee is set very high! Fees this large could be paid on a single " "transaction."), QT_TRANSLATE_NOOP("bitcoin-core", "" -"Can't generate a change-address key. No keys in the internal keypool and " -"can't generate any keys."), -QT_TRANSLATE_NOOP("bitcoin-core", "" "Cannot obtain a lock on data directory %s. %s is probably already running."), QT_TRANSLATE_NOOP("bitcoin-core", "" "Cannot provide specific connections and have addrman find outgoing " "connections at the same."), QT_TRANSLATE_NOOP("bitcoin-core", "" "Cannot upgrade a non HD split wallet without upgrading to support pre split " -"keypool. Please use -upgradewallet=169900 or -upgradewallet with no version " -"specified."), +"keypool. Please use version 169900 or no version specified."), QT_TRANSLATE_NOOP("bitcoin-core", "" "Distributed under the MIT software license, see the accompanying file %s or " "%s"), @@ -58,9 +57,16 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", "" "The transaction amount is too small to send after the fee has been deducted"), QT_TRANSLATE_NOOP("bitcoin-core", "" +"This error could occur if this wallet was not shutdown cleanly and was last " +"loaded using a build with a newer version of Berkeley DB. If so, please use " +"the software that last loaded this wallet"), +QT_TRANSLATE_NOOP("bitcoin-core", "" "This is a pre-release test build - use at your own risk - do not use for " "mining or merchant applications"), QT_TRANSLATE_NOOP("bitcoin-core", "" +"This is the maximum transaction fee you pay (in addition to the normal fee) " +"to prioritize partial spend avoidance over regular coin selection."), +QT_TRANSLATE_NOOP("bitcoin-core", "" "This is the transaction fee you may discard if change is smaller than dust " "at this level"), QT_TRANSLATE_NOOP("bitcoin-core", "" @@ -69,6 +75,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "Total length of network version string (%i) exceeds maximum length (%i). " "Reduce the number or size of uacomments."), QT_TRANSLATE_NOOP("bitcoin-core", "" +"Transaction needs a change address, but we can't generate it. Please call " +"keypoolrefill first."), +QT_TRANSLATE_NOOP("bitcoin-core", "" "Unable to replay blocks. You will need to rebuild the database using -" "reindex-chainstate."), QT_TRANSLATE_NOOP("bitcoin-core", "" @@ -80,21 +89,17 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "Warning: The network does not appear to fully agree! Some miners appear to " "be experiencing issues."), QT_TRANSLATE_NOOP("bitcoin-core", "" -"Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; " -"if your balance or transactions are incorrect you should restore from a " -"backup."), -QT_TRANSLATE_NOOP("bitcoin-core", "" "Warning: We do not appear to fully agree with our peers! You may need to " "upgrade, or other nodes may need to upgrade."), QT_TRANSLATE_NOOP("bitcoin-core", "" "You need to rebuild the database using -reindex to go back to unpruned " "mode. This will redownload the entire blockchain"), -QT_TRANSLATE_NOOP("bitcoin-core", "%d of last 100 blocks have unexpected version"), -QT_TRANSLATE_NOOP("bitcoin-core", "%s corrupt, salvage failed"), QT_TRANSLATE_NOOP("bitcoin-core", "%s is set very high!"), QT_TRANSLATE_NOOP("bitcoin-core", "-maxmempool must be at least %d MB"), +QT_TRANSLATE_NOOP("bitcoin-core", "A fatal internal error occurred, see debug.log for details"), QT_TRANSLATE_NOOP("bitcoin-core", "Cannot downgrade wallet"), QT_TRANSLATE_NOOP("bitcoin-core", "Cannot resolve -%s address: '%s'"), +QT_TRANSLATE_NOOP("bitcoin-core", "Cannot set -peerblockfilters without -blockfilterindex."), QT_TRANSLATE_NOOP("bitcoin-core", "Cannot write to data directory '%s'; check permissions."), QT_TRANSLATE_NOOP("bitcoin-core", "Change index out of range"), QT_TRANSLATE_NOOP("bitcoin-core", "Config setting for %s only applied on %s network when in [%s] section."), @@ -102,6 +107,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Copyright (C) %i-%i"), QT_TRANSLATE_NOOP("bitcoin-core", "Corrupted block database detected"), QT_TRANSLATE_NOOP("bitcoin-core", "Could not find asmap file %s"), QT_TRANSLATE_NOOP("bitcoin-core", "Could not parse asmap file %s"), +QT_TRANSLATE_NOOP("bitcoin-core", "Disk space is too low!"), QT_TRANSLATE_NOOP("bitcoin-core", "Do you want to rebuild the block database now?"), QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"), QT_TRANSLATE_NOOP("bitcoin-core", "Error initializing block database"), @@ -115,11 +121,11 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet %s. Duplicate -wallet fi QT_TRANSLATE_NOOP("bitcoin-core", "Error opening block database"), QT_TRANSLATE_NOOP("bitcoin-core", "Error reading from database, shutting down."), QT_TRANSLATE_NOOP("bitcoin-core", "Error upgrading chainstate database"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error: A fatal internal error occurred, see debug.log for details"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: Disk space is low for %s"), -QT_TRANSLATE_NOOP("bitcoin-core", "Error: Disk space is too low!"), +QT_TRANSLATE_NOOP("bitcoin-core", "Error: Keypool ran out, please call keypoolrefill first"), QT_TRANSLATE_NOOP("bitcoin-core", "Failed to listen on any port. Use -listen=0 if you want this."), QT_TRANSLATE_NOOP("bitcoin-core", "Failed to rescan the wallet during initialization"), +QT_TRANSLATE_NOOP("bitcoin-core", "Fee rate (%s) is lower than the minimum fee rate setting (%s)"), QT_TRANSLATE_NOOP("bitcoin-core", "Importing..."), QT_TRANSLATE_NOOP("bitcoin-core", "Incorrect or no genesis block found. Wrong datadir for network?"), QT_TRANSLATE_NOOP("bitcoin-core", "Initialization sanity check failed. %s is shutting down."), @@ -137,6 +143,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Loading banlist..."), QT_TRANSLATE_NOOP("bitcoin-core", "Loading block index..."), QT_TRANSLATE_NOOP("bitcoin-core", "Loading wallet..."), QT_TRANSLATE_NOOP("bitcoin-core", "Need to specify a port with -whitebind: '%s'"), +QT_TRANSLATE_NOOP("bitcoin-core", "No proxy server specified. Use -proxy=<ip> or -proxy=<ip:port>."), QT_TRANSLATE_NOOP("bitcoin-core", "Not enough file descriptors available."), QT_TRANSLATE_NOOP("bitcoin-core", "Prune cannot be configured with a negative value."), QT_TRANSLATE_NOOP("bitcoin-core", "Prune mode is incompatible with -blockfilterindex."), @@ -184,5 +191,4 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Verifying blocks..."), QT_TRANSLATE_NOOP("bitcoin-core", "Verifying wallet(s)..."), QT_TRANSLATE_NOOP("bitcoin-core", "Wallet needed to be rewritten: restart %s to complete"), QT_TRANSLATE_NOOP("bitcoin-core", "Warning: unknown new rules activated (versionbit %i)"), -QT_TRANSLATE_NOOP("bitcoin-core", "Zapping all transactions from wallet..."), }; diff --git a/src/qt/locale/bitcoin_af.ts b/src/qt/locale/bitcoin_af.ts index 23d0f609d7..aa09dc197b 100644 --- a/src/qt/locale/bitcoin_af.ts +++ b/src/qt/locale/bitcoin_af.ts @@ -3,902 +3,1264 @@ <name>AddressBookPage</name> <message> <source>Right-click to edit address or label</source> - <translation>Regs-klik om die adres of etiket te wysig</translation> + <translation>Right-click to edit address or label</translation> </message> <message> <source>Create a new address</source> - <translation>Skep 'n nuwe adres</translation> + <translation>Create a new address</translation> </message> <message> <source>&New</source> - <translation>&Nuwe</translation> + <translation>&New</translation> </message> <message> <source>Copy the currently selected address to the system clipboard</source> - <translation>Maak 'n kopie van die huidige adres na die stelsel klipbord</translation> + <translation>Copy the currently selected address to the system clipboard</translation> </message> <message> <source>&Copy</source> - <translation>&Kopie</translation> + <translation>&Copy</translation> </message> <message> <source>C&lose</source> - <translation>S&luit</translation> + <translation>C&lose</translation> </message> <message> <source>Delete the currently selected address from the list</source> - <translation>Verwyder die uitgekiesde adres van die lys</translation> + <translation>Delete the currently selected address from the list</translation> + </message> + <message> + <source>Enter address or label to search</source> + <translation>Enter address or label to search</translation> </message> <message> <source>Export the data in the current tab to a file</source> - <translation>Voer inligting uit van die huidige blad na n lêer</translation> + <translation>Export the data in the current tab to a file</translation> </message> <message> <source>&Export</source> - <translation>&Uitvoer</translation> + <translation>&Export</translation> </message> <message> <source>&Delete</source> - <translation>&Verwyder</translation> + <translation>&Delete</translation> </message> <message> <source>Choose the address to send coins to</source> - <translation>Kies die address na wie die muntstukke gestuur moet word</translation> + <translation>Choose the address to send coins to</translation> </message> <message> <source>Choose the address to receive coins with</source> - <translation>Kies die adres vir die ontvangs van betaaling</translation> + <translation>Choose the address to receive coins with</translation> </message> <message> <source>C&hoose</source> - <translation>K&ies</translation> + <translation>C&hoose</translation> </message> <message> <source>Sending addresses</source> - <translation>Stuur adresse</translation> + <translation>Sending addresses</translation> </message> <message> <source>Receiving addresses</source> - <translation>Ontvang adresse</translation> + <translation>Receiving addresses</translation> </message> <message> <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> - <translation>Dit is jou Bitcoin-adresse vir die stuur van betalings. Kontroleer altyd die bedrag en die ontvangsadres voordat u munte stuur.</translation> + <translation>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</translation> + </message> + <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</translation> </message> <message> <source>&Copy Address</source> - <translation>&Kopie Adres</translation> + <translation>&Copy Address</translation> </message> <message> <source>Copy &Label</source> - <translation>Kopie &Etiket</translation> + <translation>Copy &Label</translation> </message> <message> <source>&Edit</source> - <translation>&Wysig</translation> + <translation>&Edit</translation> </message> <message> <source>Export Address List</source> - <translation>Voer adres lys uit</translation> + <translation>Export Address List</translation> </message> <message> <source>Comma separated file (*.csv)</source> - <translation>Koma geskeide lêer (*.csv)</translation> + <translation>Comma separated file (*.csv)</translation> </message> <message> <source>Exporting Failed</source> - <translation>Uitvoering Misluk</translation> + <translation>Exporting Failed</translation> </message> <message> <source>There was an error trying to save the address list to %1. Please try again.</source> - <translation>Kon nie die adreslys stoor na %1 nie. Probeer asseblief weer.</translation> + <translation>There was an error trying to save the address list to %1. Please try again.</translation> </message> </context> <context> <name>AddressTableModel</name> <message> <source>Label</source> - <translation>Etiket</translation> + <translation>Label</translation> </message> <message> <source>Address</source> - <translation>Adres</translation> + <translation>Address</translation> </message> <message> <source>(no label)</source> - <translation>(geen etiket)</translation> + <translation>(no label)</translation> </message> </context> <context> <name>AskPassphraseDialog</name> <message> <source>Passphrase Dialog</source> - <translation>Wagfrase Dialoog</translation> + <translation>Passphrase Dialog</translation> </message> <message> <source>Enter passphrase</source> - <translation>Tik wagfrase in</translation> + <translation>Enter passphrase</translation> </message> <message> <source>New passphrase</source> - <translation>Nuwe wagfrase</translation> + <translation>New passphrase</translation> </message> <message> <source>Repeat new passphrase</source> - <translation>Herhaal nuwe wagfrase</translation> + <translation>Repeat new passphrase</translation> + </message> + <message> + <source>Show passphrase</source> + <translation>Show passphrase</translation> </message> <message> <source>Encrypt wallet</source> - <translation>Enkripteer beursie</translation> + <translation>Encrypt wallet</translation> </message> <message> <source>This operation needs your wallet passphrase to unlock the wallet.</source> - <translation>Hierdie operasie benodig 'n wagwoord om die beursie oop te sluit.</translation> + <translation>This operation needs your wallet passphrase to unlock the wallet.</translation> </message> <message> <source>Unlock wallet</source> - <translation>Ontsluit beursie</translation> + <translation>Unlock wallet</translation> </message> <message> <source>This operation needs your wallet passphrase to decrypt the wallet.</source> - <translation>Hierdie operasie benodig 'n wagwoord om die beursie oop te sluit.</translation> + <translation>This operation needs your wallet passphrase to decrypt the wallet.</translation> </message> <message> <source>Decrypt wallet</source> - <translation>Dekripteer beursie</translation> + <translation>Decrypt wallet</translation> </message> <message> <source>Change passphrase</source> - <translation>Verander wagfrase</translation> + <translation>Change passphrase</translation> </message> <message> <source>Confirm wallet encryption</source> - <translation>Bevestig beursie enkripsie.</translation> + <translation>Confirm wallet encryption</translation> </message> <message> <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> - <translation>Waarskuwing: As jy jou beursie enkripteer en jou wagwoord verloor, sal jy <b>AL JOU BITCOINS VERLOOR</b>!</translation> + <translation>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</translation> </message> <message> <source>Are you sure you wish to encrypt your wallet?</source> - <translation>Is jy seker jy wil jou beursie enkripteer?</translation> + <translation>Are you sure you wish to encrypt your wallet?</translation> </message> <message> <source>Wallet encrypted</source> - <translation>Beursie enkriptasie voltooi</translation> + <translation>Wallet encrypted</translation> + </message> + <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Enter the old passphrase and new passphrase for the wallet.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>Wallet to be encrypted</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Your wallet is about to be encrypted. </translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Your wallet is now encrypted. </translation> </message> <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> - <translation>BELANGRIK: Enige vorige rugsteune wat u gemaak het van u beursie-lêer moet vervang word met die nuut-gegenereerde, versleutelde beursie-lêer. Vir sekuriteitsredes sal vorige rugsteune van die onversleutelde beursie-lêer onbruikbaar word sodra u die nuwe, versleutelde beursie begin gebruik.</translation> + <translation>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</translation> </message> <message> <source>Wallet encryption failed</source> - <translation>Beursie enkriptasie het misluk</translation> + <translation>Wallet encryption failed</translation> </message> <message> <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> - <translation>Beursie bewaaking het misluk as gevolg van 'n interne fout. Die beursie is nie bewaak nie!</translation> + <translation>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</translation> </message> <message> <source>The supplied passphrases do not match.</source> - <translation>Die wagfrase stem nie ooreen nie</translation> + <translation>The supplied passphrases do not match.</translation> </message> <message> <source>Wallet unlock failed</source> - <translation>Beursie oopsluiting het misluk</translation> + <translation>Wallet unlock failed</translation> </message> <message> <source>The passphrase entered for the wallet decryption was incorrect.</source> - <translation>Die wagfrase wat ingetik was om die beursie oop te sluit, was verkeerd.</translation> + <translation>The passphrase entered for the wallet decryption was incorrect.</translation> </message> <message> <source>Wallet decryption failed</source> - <translation>Beursie dekripsie het misluk</translation> + <translation>Wallet decryption failed</translation> </message> <message> <source>Wallet passphrase was successfully changed.</source> - <translation>Die beursie se wagfrase verandering was suksesvol.</translation> + <translation>Wallet passphrase was successfully changed.</translation> </message> <message> <source>Warning: The Caps Lock key is on!</source> - <translation>Waarskuwing: Die Caps Lock is aan!</translation> + <translation>Warning: The Caps Lock key is on!</translation> </message> </context> <context> <name>BanTableModel</name> <message> <source>IP/Netmask</source> - <translation>IP/Netmasker</translation> + <translation>IP/Netmask</translation> </message> <message> <source>Banned Until</source> - <translation>Verban Tot</translation> + <translation>Banned Until</translation> </message> </context> <context> <name>BitcoinGUI</name> <message> <source>Sign &message...</source> - <translation>Teken &Boodskap</translation> + <translation>Sign &message...</translation> </message> <message> <source>Synchronizing with network...</source> - <translation>Sinchroniseer met die netwerk ...</translation> + <translation>Synchronizing with network...</translation> </message> <message> <source>&Overview</source> - <translation>&Oorsig</translation> + <translation>&Overview</translation> </message> <message> <source>Show general overview of wallet</source> - <translation>Wys algemene oorsig van die beursie</translation> + <translation>Show general overview of wallet</translation> </message> <message> <source>&Transactions</source> - <translation>&Transaksies</translation> + <translation>&Transactions</translation> </message> <message> <source>Browse transaction history</source> - <translation>Besoek transaksie geskiedenis</translation> + <translation>Browse transaction history</translation> </message> <message> <source>E&xit</source> - <translation>S&luit af</translation> + <translation>E&xit</translation> </message> <message> <source>Quit application</source> - <translation>Sluit af</translation> + <translation>Quit application</translation> </message> <message> <source>&About %1</source> - <translation>&Oor %1</translation> + <translation>&About %1</translation> </message> <message> <source>Show information about %1</source> - <translation>Wys inligting oor %1</translation> + <translation>Show information about %1</translation> </message> <message> <source>About &Qt</source> - <translation>Oor &Qt</translation> + <translation>About &Qt</translation> </message> <message> <source>Show information about Qt</source> - <translation>Wys inligting oor Qt</translation> + <translation>Show information about Qt</translation> </message> <message> <source>&Options...</source> - <translation>&Opsies</translation> + <translation>&Options...</translation> </message> <message> <source>Modify configuration options for %1</source> - <translation>Verander konfigurasie opsies vir %1</translation> + <translation>Modify configuration options for %1</translation> </message> <message> <source>&Encrypt Wallet...</source> - <translation>&Enkripteer Beursie...</translation> + <translation>&Encrypt Wallet...</translation> </message> <message> <source>&Backup Wallet...</source> - <translation>&Rugsteun Beursie...</translation> + <translation>&Backup Wallet...</translation> </message> <message> <source>&Change Passphrase...</source> - <translation>Verander wagwoord frase...</translation> + <translation>&Change Passphrase...</translation> </message> <message> <source>Open &URI...</source> - <translation>Maak &URI oop...</translation> + <translation>Open &URI...</translation> + </message> + <message> + <source>Create Wallet...</source> + <translation>Create Wallet...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Create a new wallet</translation> + </message> + <message> + <source>Wallet:</source> + <translation>Wallet:</translation> </message> <message> <source>Click to disable network activity.</source> - <translation>Klik om netwerk aktiwiteit af te skakel.</translation> + <translation>Click to disable network activity.</translation> </message> <message> <source>Network activity disabled.</source> - <translation>Netwerk aktiwiteid afgeskakel.</translation> + <translation>Network activity disabled.</translation> </message> <message> <source>Click to enable network activity again.</source> - <translation>Klik om netwerk aktiwiteit weer aan te skakel.</translation> + <translation>Click to enable network activity again.</translation> </message> <message> <source>Syncing Headers (%1%)...</source> - <translation>Sinkroniseer tans Hoofde (%1%)...</translation> + <translation>Syncing Headers (%1%)...</translation> </message> <message> <source>Reindexing blocks on disk...</source> - <translation>Herindekseer blokke op skyf...</translation> + <translation>Reindexing blocks on disk...</translation> + </message> + <message> + <source>Proxy is <b>enabled</b>: %1</source> + <translation>Proxy is <b>enabled</b>: %1</translation> </message> <message> <source>Send coins to a Bitcoin address</source> - <translation>Stuur muntstukke na 'n Bitcoin adres</translation> + <translation>Send coins to a Bitcoin address</translation> </message> <message> <source>Backup wallet to another location</source> - <translation>Rugsteun beursie na 'n ander plek</translation> + <translation>Backup wallet to another location</translation> </message> <message> <source>Change the passphrase used for wallet encryption</source> - <translation>Verander die wagwoordfrase wat vir beursie-versleuteling gebruik word</translation> + <translation>Change the passphrase used for wallet encryption</translation> </message> <message> <source>&Verify message...</source> - <translation>&Verifieer boodskap...</translation> + <translation>&Verify message...</translation> </message> <message> <source>&Send</source> - <translation>&Stuur</translation> + <translation>&Send</translation> </message> <message> <source>&Receive</source> - <translation>&Ontvang</translation> + <translation>&Receive</translation> </message> <message> <source>&Show / Hide</source> - <translation>&Wys / Versteek</translation> + <translation>&Show / Hide</translation> </message> <message> <source>Show or hide the main Window</source> - <translation>Wys of versteek die hoof Venster</translation> + <translation>Show or hide the main Window</translation> </message> <message> <source>Encrypt the private keys that belong to your wallet</source> - <translation>Versleutel die private sleutels wat aan u beursie behoort</translation> + <translation>Encrypt the private keys that belong to your wallet</translation> </message> <message> <source>Sign messages with your Bitcoin addresses to prove you own them</source> - <translation>Teken boodskappe met u Bitcoin adresse om te bewys dat u hul besit</translation> + <translation>Sign messages with your Bitcoin addresses to prove you own them</translation> </message> <message> <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source> - <translation>Bevestig boodskappe om te verseker dat hulle geteken was met gespesifiseerde Bitcoin adresse</translation> + <translation>Verify messages to ensure they were signed with specified Bitcoin addresses</translation> </message> <message> <source>&File</source> - <translation>&Lêer</translation> + <translation>&File</translation> </message> <message> <source>&Settings</source> - <translation>&Instellings</translation> + <translation>&Settings</translation> </message> <message> <source>&Help</source> - <translation>&Hulp</translation> + <translation>&Help</translation> </message> <message> <source>Tabs toolbar</source> - <translation>Blad nutsbalk</translation> + <translation>Tabs toolbar</translation> </message> <message> <source>Request payments (generates QR codes and bitcoin: URIs)</source> - <translation>Versoek betalings (genereer QR kodes en bitcoin: URIs)</translation> + <translation>Request payments (generates QR codes and bitcoin: URIs)</translation> </message> <message> <source>Show the list of used sending addresses and labels</source> - <translation>Wys die lys van gebruikte stuur adresse en etikette</translation> + <translation>Show the list of used sending addresses and labels</translation> </message> <message> <source>Show the list of used receiving addresses and labels</source> - <translation>Wys die lys van gebruikte ontvangsadresse en etikette</translation> + <translation>Show the list of used receiving addresses and labels</translation> </message> <message> <source>&Command-line options</source> - <translation>&Opdrag lys opsies</translation> + <translation>&Command-line options</translation> + </message> + <message numerus="yes"> + <source>%n active connection(s) to Bitcoin network</source> + <translation><numerusform>%n active connection to Bitcoin network</numerusform><numerusform>%n active connections to Bitcoin network</numerusform></translation> </message> <message> <source>Indexing blocks on disk...</source> - <translation>Indekseer tans blokke op skyf...</translation> + <translation>Indexing blocks on disk...</translation> </message> <message> <source>Processing blocks on disk...</source> - <translation>Prosesseer tans blokke op skyf...</translation> + <translation>Processing blocks on disk...</translation> + </message> + <message numerus="yes"> + <source>Processed %n block(s) of transaction history.</source> + <translation><numerusform>Processed %n block of transaction history.</numerusform><numerusform>Processed %n blocks of transaction history.</numerusform></translation> </message> <message> <source>%1 behind</source> - <translation>%1 agter</translation> + <translation>%1 behind</translation> </message> <message> <source>Last received block was generated %1 ago.</source> - <translation>Ontvangs van laaste blok is %1 terug.</translation> + <translation>Last received block was generated %1 ago.</translation> </message> <message> <source>Transactions after this will not yet be visible.</source> - <translation>Opvolgende transaksies sal nog nie sigbaar wees nie.</translation> + <translation>Transactions after this will not yet be visible.</translation> </message> <message> <source>Error</source> - <translation>Fout</translation> + <translation>Error</translation> </message> <message> <source>Warning</source> - <translation>Waarskuwing</translation> + <translation>Warning</translation> </message> <message> <source>Information</source> - <translation>Informasie</translation> + <translation>Information</translation> </message> <message> <source>Up to date</source> - <translation>Op datum</translation> + <translation>Up to date</translation> + </message> + <message> + <source>Node window</source> + <translation>Node window</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Open node debugging and diagnostic console</translation> + </message> + <message> + <source>&Sending addresses</source> + <translation>&Sending addresses</translation> + </message> + <message> + <source>&Receiving addresses</source> + <translation>&Receiving addresses</translation> + </message> + <message> + <source>Open a bitcoin: URI</source> + <translation>Open a bitcoin: URI</translation> + </message> + <message> + <source>Open Wallet</source> + <translation>Open Wallet</translation> + </message> + <message> + <source>Open a wallet</source> + <translation>Open a wallet</translation> + </message> + <message> + <source>Close Wallet...</source> + <translation>Close Wallet...</translation> + </message> + <message> + <source>Close wallet</source> + <translation>Close wallet</translation> </message> <message> <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source> - <translation>Wys die %1 hulpboodskap om 'n lys met moontlike Bitcoin bevel-lyn opsies te verkry</translation> + <translation>Show the %1 help message to get a list with possible Bitcoin command-line options</translation> + </message> + <message> + <source>default wallet</source> + <translation>default wallet</translation> + </message> + <message> + <source>No wallets available</source> + <translation>No wallets available</translation> </message> <message> <source>&Window</source> - <translation>&Venster</translation> + <translation>&Window</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimize</translation> + </message> + <message> + <source>Zoom</source> + <translation>Zoom</translation> + </message> + <message> + <source>Main Window</source> + <translation>Main Window</translation> </message> <message> <source>%1 client</source> - <translation>%1 klient</translation> + <translation>%1 client</translation> </message> <message> <source>Connecting to peers...</source> - <translation>Verbind tans aan eweknieë...</translation> + <translation>Connecting to peers...</translation> </message> <message> <source>Catching up...</source> - <translation>Besig om op te vang...</translation> + <translation>Catching up...</translation> </message> <message> <source>Error: %1</source> - <translation>Fout: %1</translation> + <translation>Error: %1</translation> + </message> + <message> + <source>Warning: %1</source> + <translation>Warning: %1</translation> </message> <message> <source>Date: %1 </source> - <translation>Datum: %1 + <translation>Date: %1 </translation> </message> <message> <source>Amount: %1 </source> - <translation>Bedrag: %1 + <translation>Amount: %1 +</translation> + </message> + <message> + <source>Wallet: %1 +</source> + <translation>Wallet: %1 </translation> </message> <message> <source>Type: %1 </source> - <translation>Tipe: %1 + <translation>Type: %1 </translation> </message> <message> <source>Label: %1 </source> - <translation>Etiket: %1 + <translation>Label: %1 </translation> </message> <message> <source>Address: %1 </source> - <translation>Adres: %1 + <translation>Address: %1 </translation> </message> <message> <source>Sent transaction</source> - <translation>Transaksie gestuur</translation> + <translation>Sent transaction</translation> </message> <message> <source>Incoming transaction</source> - <translation>Inkomende transaksie</translation> + <translation>Incoming transaction</translation> </message> <message> <source>HD key generation is <b>enabled</b></source> - <translation>HD sleutel generasie is <b>aangesit</b></translation> + <translation>HD key generation is <b>enabled</b></translation> </message> <message> <source>HD key generation is <b>disabled</b></source> - <translation>HD sleutel generasie is <b>afgesit</b></translation> + <translation>HD key generation is <b>disabled</b></translation> + </message> + <message> + <source>Private key <b>disabled</b></source> + <translation>Private key <b>disabled</b></translation> </message> <message> <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> - <translation>Beursie is <b>versleutel</b> en is tans <b>oopgesluit</b></translation> + <translation>Wallet is <b>encrypted</b> and currently <b>unlocked</b></translation> </message> <message> <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> - <translation>Beursie is <b>versleutel</b> en is tans <b>gesluit</b></translation> + <translation>Wallet is <b>encrypted</b> and currently <b>locked</b></translation> </message> <message> <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source> - <translation>'n Noodlottige fout het voorgekom. Bitcoin kan nie langer voortgaan nie en sal afsluit.</translation> + <translation>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</translation> </message> </context> <context> <name>CoinControlDialog</name> <message> <source>Coin Selection</source> - <translation>Munt Keuse</translation> + <translation>Coin Selection</translation> </message> <message> <source>Quantity:</source> - <translation>Hoeveelheid:</translation> + <translation>Quantity:</translation> </message> <message> <source>Bytes:</source> - <translation>Grepe:</translation> + <translation>Bytes:</translation> </message> <message> <source>Amount:</source> - <translation>Bedrag:</translation> + <translation>Amount:</translation> </message> <message> <source>Fee:</source> - <translation>Fooi:</translation> + <translation>Fee:</translation> </message> <message> <source>Dust:</source> - <translation>Stof:</translation> + <translation>Dust:</translation> </message> <message> <source>After Fee:</source> - <translation>Na Fooi:</translation> + <translation>After Fee:</translation> </message> <message> <source>Change:</source> - <translation>Verander:</translation> + <translation>Change:</translation> </message> <message> <source>(un)select all</source> - <translation>(on)selekteer alles</translation> + <translation>(un)select all</translation> </message> <message> <source>Tree mode</source> - <translation>Boom wyse</translation> + <translation>Tree mode</translation> </message> <message> <source>List mode</source> - <translation>Lys wyse</translation> + <translation>List mode</translation> </message> <message> <source>Amount</source> - <translation>Bedrag</translation> + <translation>Amount</translation> </message> <message> <source>Received with label</source> - <translation>Ontvang met etiket</translation> + <translation>Received with label</translation> </message> <message> <source>Received with address</source> - <translation>Ontvang met adres</translation> + <translation>Received with address</translation> </message> <message> <source>Date</source> - <translation>Datum</translation> + <translation>Date</translation> </message> <message> <source>Confirmations</source> - <translation>Bevestigings</translation> + <translation>Confirmations</translation> </message> <message> <source>Confirmed</source> - <translation>Bevestig</translation> + <translation>Confirmed</translation> </message> <message> <source>Copy address</source> - <translation>Maak kopie van adres</translation> + <translation>Copy address</translation> </message> <message> <source>Copy label</source> - <translation>Kopieer etiket</translation> + <translation>Copy label</translation> </message> <message> <source>Copy amount</source> - <translation>Kopieer bedrag</translation> + <translation>Copy amount</translation> </message> <message> <source>Copy transaction ID</source> - <translation>Kopieer transaksie ID</translation> + <translation>Copy transaction ID</translation> </message> <message> <source>Lock unspent</source> - <translation>Sluit ongespandeerde</translation> + <translation>Lock unspent</translation> </message> <message> <source>Unlock unspent</source> - <translation>Onsluit ongespandeerde</translation> + <translation>Unlock unspent</translation> </message> <message> <source>Copy quantity</source> - <translation>Kopieer hoeveelheid</translation> + <translation>Copy quantity</translation> </message> <message> <source>Copy fee</source> - <translation>Kopieer fooi</translation> + <translation>Copy fee</translation> </message> <message> <source>Copy after fee</source> - <translation>Kopieer na fooi</translation> + <translation>Copy after fee</translation> </message> <message> <source>Copy bytes</source> - <translation>Kopieer grepe</translation> + <translation>Copy bytes</translation> </message> <message> <source>Copy dust</source> - <translation>Kopieer stof</translation> + <translation>Copy dust</translation> </message> <message> <source>Copy change</source> - <translation>Kopieer verandering</translation> + <translation>Copy change</translation> </message> <message> <source>(%1 locked)</source> - <translation>(%1 gesluit)</translation> + <translation>(%1 locked)</translation> </message> <message> <source>yes</source> - <translation>ja</translation> + <translation>yes</translation> </message> <message> <source>no</source> - <translation>nee</translation> + <translation>no</translation> </message> <message> <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source> - <translation>Hierdie etiket verander na rooi as enige ontvanger 'n bedrag kleiner as die huidige stof drempelwaarde ontvang.</translation> + <translation>This label turns red if any recipient receives an amount smaller than the current dust threshold.</translation> </message> <message> <source>Can vary +/- %1 satoshi(s) per input.</source> - <translation>Kan wissel met +/- %1 satoshi(s) per inset.</translation> + <translation>Can vary +/- %1 satoshi(s) per input.</translation> </message> <message> <source>(no label)</source> - <translation>(geen etiket)</translation> + <translation>(no label)</translation> </message> <message> <source>change from %1 (%2)</source> - <translation>Verander vanaf %1 (%2)</translation> + <translation>change from %1 (%2)</translation> </message> <message> <source>(change)</source> - <translation>(verander)</translation> + <translation>(change)</translation> </message> </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>Creating Wallet <b>%1</b>...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>Create wallet failed</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Create wallet warning</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Create Wallet</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Wallet Name</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Encrypt Wallet</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Disable Private Keys</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Make Blank Wallet</translation> + </message> + <message> + <source>Create</source> + <translation>Create</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> <source>Edit Address</source> - <translation>Wysig Adres</translation> + <translation>Edit Address</translation> </message> <message> <source>&Label</source> - <translation>&Etiket</translation> + <translation>&Label</translation> </message> <message> <source>The label associated with this address list entry</source> - <translation>Die etiket geassosieer met hierdie adreslys inskrywing</translation> + <translation>The label associated with this address list entry</translation> </message> <message> <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> - <translation>Die adres geassosieer met hierdie adreslys inskrywing. Dié kan slegs gewysig word vir stuur-adresse.</translation> + <translation>The address associated with this address list entry. This can only be modified for sending addresses.</translation> </message> <message> <source>&Address</source> - <translation>&Adres</translation> + <translation>&Address</translation> </message> <message> <source>New sending address</source> - <translation>Nuwe stuurende adres</translation> + <translation>New sending address</translation> </message> <message> <source>Edit receiving address</source> - <translation>Wysig ontvangende adres</translation> + <translation>Edit receiving address</translation> </message> <message> <source>Edit sending address</source> - <translation>Wysig stuurende adres</translation> + <translation>Edit sending address</translation> </message> <message> <source>The entered address "%1" is not a valid Bitcoin address.</source> - <translation>Die ingeskrewe adres "%1" is nie 'n geldige Bitcoin adres nie.</translation> + <translation>The entered address "%1" is not a valid Bitcoin address.</translation> + </message> + <message> + <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source> + <translation>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</translation> + </message> + <message> + <source>The entered address "%1" is already in the address book with label "%2".</source> + <translation>The entered address "%1" is already in the address book with label "%2".</translation> </message> <message> <source>Could not unlock wallet.</source> - <translation>Kon nie die beursie oopsluit nie.</translation> + <translation>Could not unlock wallet.</translation> </message> <message> <source>New key generation failed.</source> - <translation>Nuwe sleutel genereering het misluk.</translation> + <translation>New key generation failed.</translation> </message> </context> <context> <name>FreespaceChecker</name> <message> <source>A new data directory will be created.</source> - <translation>n Nuwe data lêer sal geskep word.</translation> + <translation>A new data directory will be created.</translation> </message> <message> <source>name</source> - <translation>naam</translation> + <translation>name</translation> </message> <message> <source>Directory already exists. Add %1 if you intend to create a new directory here.</source> - <translation>Lêer bestaan reeds. Voeg %1 indien u van plan is om n nuwe lêer hier te skep.</translation> + <translation>Directory already exists. Add %1 if you intend to create a new directory here.</translation> </message> <message> <source>Path already exists, and is not a directory.</source> - <translation>Pad bestaan reeds en is nie 'n lêergids nie.</translation> + <translation>Path already exists, and is not a directory.</translation> </message> <message> <source>Cannot create data directory here.</source> - <translation>Kan nie data gids hier skep nie.</translation> + <translation>Cannot create data directory here.</translation> </message> </context> <context> <name>HelpMessageDialog</name> <message> <source>version</source> - <translation>weergawe</translation> + <translation>version</translation> </message> <message> <source>About %1</source> - <translation>Oor %1</translation> + <translation>About %1</translation> </message> <message> <source>Command-line options</source> - <translation>Opdrag lys opsies</translation> + <translation>Command-line options</translation> </message> </context> <context> <name>Intro</name> <message> <source>Welcome</source> - <translation>Welkom</translation> + <translation>Welcome</translation> </message> <message> <source>Welcome to %1.</source> - <translation>Welkom by %1.</translation> + <translation>Welcome to %1.</translation> + </message> + <message> + <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source> + <translation>As this is the first time the program is launched, you can choose where %1 will store its data.</translation> + </message> + <message> + <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source> + <translation>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</translation> + </message> + <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</translation> + </message> + <message> + <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> + <translation>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</translation> + </message> + <message> + <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source> + <translation>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</translation> </message> <message> <source>Use the default data directory</source> - <translation>Gebruik die standaard data gids</translation> + <translation>Use the default data directory</translation> </message> <message> <source>Use a custom data directory:</source> - <translation>Gebruik 'n persoonlike data gids:</translation> + <translation>Use a custom data directory:</translation> </message> <message> <source>Bitcoin</source> <translation>Bitcoin</translation> </message> <message> + <source>Discard blocks after verification, except most recent %1 GB (prune)</source> + <translation>Discard blocks after verification, except most recent %1 GB (prune)</translation> + </message> + <message> + <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> + <translation>At least %1 GB of data will be stored in this directory, and it will grow over time.</translation> + </message> + <message> + <source>Approximately %1 GB of data will be stored in this directory.</source> + <translation>Approximately %1 GB of data will be stored in this directory.</translation> + </message> + <message> + <source>%1 will download and store a copy of the Bitcoin block chain.</source> + <translation>%1 will download and store a copy of the Bitcoin block chain.</translation> + </message> + <message> <source>The wallet will also be stored in this directory.</source> - <translation>Die beursie sal ook gestoor word in hierdie lêer.</translation> + <translation>The wallet will also be stored in this directory.</translation> </message> <message> <source>Error: Specified data directory "%1" cannot be created.</source> - <translation>Fout: Gespesifiseerde dataleêr "%1" kon nie geskep word nie.</translation> + <translation>Error: Specified data directory "%1" cannot be created.</translation> </message> <message> <source>Error</source> - <translation>Fout</translation> + <translation>Error</translation> + </message> + <message numerus="yes"> + <source>%n GB of free space available</source> + <translation><numerusform>%n GB of free space available</numerusform><numerusform>%n GB of free space available</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(of %n GB needed)</numerusform><numerusform>(of %n GB needed)</numerusform></translation> + </message> + <message numerus="yes"> + <source>(%n GB needed for full chain)</source> + <translation><numerusform>(%n GB needed for full chain)</numerusform><numerusform>(%n GB needed for full chain)</numerusform></translation> + </message> +</context> <context> <name>ModalOverlay</name> <message> <source>Form</source> - <translation>Vorm</translation> + <translation>Form</translation> + </message> + <message> + <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source> + <translation>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</translation> + </message> + <message> + <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source> + <translation>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</translation> </message> <message> <source>Number of blocks left</source> - <translation>Aantal blokke oor</translation> + <translation>Number of blocks left</translation> </message> <message> <source>Unknown...</source> - <translation>Onbekend...</translation> + <translation>Unknown...</translation> </message> <message> <source>Last block time</source> - <translation>Laaste blok tyd</translation> + <translation>Last block time</translation> </message> <message> <source>Progress</source> - <translation>Vorderering</translation> + <translation>Progress</translation> </message> <message> <source>Progress increase per hour</source> - <translation>Vorderingstoename per uur</translation> + <translation>Progress increase per hour</translation> </message> <message> <source>calculating...</source> - <translation>besig met bereken...</translation> + <translation>calculating...</translation> </message> <message> <source>Estimated time left until synced</source> - <translation>Geskatte tyd oor totdat gesinkroniseer</translation> + <translation>Estimated time left until synced</translation> </message> <message> <source>Hide</source> - <translation>Steek weg</translation> + <translation>Hide</translation> </message> - </context> + <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</translation> + </message> + <message> + <source>Unknown. Syncing Headers (%1, %2%)...</source> + <translation>Unknown. Syncing Headers (%1, %2%)...</translation> + </message> +</context> <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Open bitcoin URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> </context> <context> <name>OpenWalletActivity</name> - </context> + <message> + <source>Open wallet failed</source> + <translation>Open wallet failed</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>Open wallet warning</translation> + </message> + <message> + <source>default wallet</source> + <translation>default wallet</translation> + </message> + <message> + <source>Opening Wallet <b>%1</b>...</source> + <translation>Opening Wallet <b>%1</b>...</translation> + </message> +</context> <context> <name>OptionsDialog</name> <message> <source>Options</source> - <translation>Opsies</translation> + <translation>Options</translation> </message> <message> <source>&Main</source> - <translation>&Hoof</translation> + <translation>&Main</translation> </message> <message> <source>Automatically start %1 after logging in to the system.</source> - <translation>Begin %1 outomaties nadat jy aangemeld is by die stelsel.</translation> + <translation>Automatically start %1 after logging in to the system.</translation> </message> <message> <source>&Start %1 on system login</source> - <translation>&Begin %1 op stelsel aanmelding</translation> + <translation>&Start %1 on system login</translation> </message> <message> <source>Size of &database cache</source> - <translation>Grootte van &databasis kas</translation> + <translation>Size of &database cache</translation> </message> <message> <source>Number of script &verification threads</source> - <translation>Aantal skrip &verifikasie drade</translation> + <translation>Number of script &verification threads</translation> + </message> + <message> + <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> + <translation>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</translation> + </message> + <message> + <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</translation> + </message> + <message> + <source>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</source> + <translation>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</translation> + </message> + <message> + <source>Hide the icon from the system tray.</source> + <translation>Hide the icon from the system tray.</translation> + </message> + <message> + <source>&Hide tray icon</source> + <translation>&Hide tray icon</translation> + </message> + <message> + <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source> + <translation>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</translation> + </message> + <message> + <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> + <translation>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</translation> </message> <message> <source>Open the %1 configuration file from the working directory.</source> - <translation>Maak die %1 konfigurasie lêer oop van die werk gids.</translation> + <translation>Open the %1 configuration file from the working directory.</translation> </message> <message> <source>Open Configuration File</source> - <translation>Open Konfigurasie Lêer</translation> + <translation>Open Configuration File</translation> </message> <message> <source>Reset all client options to default.</source> - <translation>Alle kliëntopsies na verstek terugstel.</translation> + <translation>Reset all client options to default.</translation> </message> <message> <source>&Reset Options</source> - <translation>&Herstel Opsies</translation> + <translation>&Reset Options</translation> </message> <message> <source>&Network</source> - <translation>&Netwerk</translation> + <translation>&Network</translation> + </message> + <message> + <source>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</source> + <translation>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</translation> + </message> + <message> + <source>Prune &block storage to</source> + <translation>Prune &block storage to</translation> + </message> + <message> + <source>GB</source> + <translation>GB</translation> + </message> + <message> + <source>Reverting this setting requires re-downloading the entire blockchain.</source> + <translation>Reverting this setting requires re-downloading the entire blockchain.</translation> + </message> + <message> + <source>MiB</source> + <translation>MiB</translation> + </message> + <message> + <source>(0 = auto, <0 = leave that many cores free)</source> + <translation>(0 = auto, <0 = leave that many cores free)</translation> </message> <message> <source>W&allet</source> - <translation>&Beursie</translation> + <translation>W&allet</translation> </message> <message> <source>Expert</source> - <translation>Kenner</translation> + <translation>Expert</translation> </message> <message> <source>Enable coin &control features</source> - <translation>Bemagtig munt &beheer funksies.</translation> + <translation>Enable coin &control features</translation> + </message> + <message> + <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source> + <translation>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</translation> </message> <message> <source>&Spend unconfirmed change</source> - <translation>&Spandeer onbevestigde kleingeld</translation> + <translation>&Spend unconfirmed change</translation> + </message> + <message> + <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source> + <translation>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</translation> + </message> + <message> + <source>Map port using &UPnP</source> + <translation>Map port using &UPnP</translation> + </message> + <message> + <source>Accept connections from outside.</source> + <translation>Accept connections from outside.</translation> + </message> + <message> + <source>Allow incomin&g connections</source> + <translation>Allow incomin&g connections</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Connect to the Bitcoin network through a SOCKS5 proxy.</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Connect through SOCKS5 proxy (default proxy):</translation> + </message> + <message> + <source>Proxy &IP:</source> + <translation>Proxy &IP:</translation> </message> <message> <source>&Port:</source> <translation>&Port:</translation> </message> <message> + <source>Port of the proxy (e.g. 9050)</source> + <translation>Port of the proxy (e.g. 9050)</translation> + </message> + <message> <source>Used for reaching peers via:</source> - <translation>Word gebruik vir die bereik van eweknieë via:</translation> + <translation>Used for reaching peers via:</translation> </message> <message> <source>IPv4</source> @@ -913,28 +1275,56 @@ <translation>Tor</translation> </message> <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</translation> + </message> + <message> <source>&Window</source> - <translation>&Venster</translation> + <translation>&Window</translation> + </message> + <message> + <source>Show only a tray icon after minimizing the window.</source> + <translation>Show only a tray icon after minimizing the window.</translation> + </message> + <message> + <source>&Minimize to the tray instead of the taskbar</source> + <translation>&Minimize to the tray instead of the taskbar</translation> </message> <message> <source>M&inimize on close</source> - <translation>V&erminder op toemaak</translation> + <translation>M&inimize on close</translation> </message> <message> <source>&Display</source> - <translation>&Vertoon</translation> + <translation>&Display</translation> </message> <message> <source>User Interface &language:</source> - <translation>Gebruikers Koppelvlak &taal:</translation> + <translation>User Interface &language:</translation> + </message> + <message> + <source>The user interface language can be set here. This setting will take effect after restarting %1.</source> + <translation>The user interface language can be set here. This setting will take effect after restarting %1.</translation> </message> <message> <source>&Unit to show amounts in:</source> - <translation>&Eenheid om bedrae te toon in:</translation> + <translation>&Unit to show amounts in:</translation> + </message> + <message> + <source>Choose the default subdivision unit to show in the interface and when sending coins.</source> + <translation>Choose the default subdivision unit to show in the interface and when sending coins.</translation> </message> <message> <source>Whether to show coin control features or not.</source> - <translation>Of om munt beheer funksies te wys of nie.</translation> + <translation>Whether to show coin control features or not.</translation> + </message> + <message> + <source>&Third party transaction URLs</source> + <translation>&Third party transaction URLs</translation> + </message> + <message> + <source>Options set in this dialog are overridden by the command line or in the configuration file:</source> + <translation>Options set in this dialog are overridden by the command line or in the configuration file:</translation> </message> <message> <source>&OK</source> @@ -942,135 +1332,207 @@ </message> <message> <source>&Cancel</source> - <translation>&Kanselleer</translation> + <translation>&Cancel</translation> </message> <message> <source>default</source> - <translation>standaard</translation> + <translation>default</translation> </message> <message> <source>none</source> - <translation>niks</translation> + <translation>none</translation> </message> <message> <source>Confirm options reset</source> - <translation>Bevestig terugstel van opsies</translation> + <translation>Confirm options reset</translation> </message> <message> <source>Client restart required to activate changes.</source> - <translation>Kliënt moet herbegin word om veranderinge te aktiveer.</translation> + <translation>Client restart required to activate changes.</translation> </message> <message> <source>Client will be shut down. Do you want to proceed?</source> - <translation>Kliënt sal toegemaak word. Wil u voortgaan?</translation> + <translation>Client will be shut down. Do you want to proceed?</translation> </message> <message> <source>Configuration options</source> - <translation>Konfigurasie opsies</translation> + <translation>Configuration options</translation> + </message> + <message> + <source>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</source> + <translation>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</translation> </message> <message> <source>Error</source> - <translation>Fout</translation> + <translation>Error</translation> </message> <message> <source>The configuration file could not be opened.</source> - <translation>Die konfigurasie lêer kon nie oopgemaak word nie.</translation> + <translation>The configuration file could not be opened.</translation> </message> <message> <source>This change would require a client restart.</source> - <translation>Hierdie verandering sal 'n herbegin van die kliënt vereis. </translation> + <translation>This change would require a client restart.</translation> </message> <message> <source>The supplied proxy address is invalid.</source> - <translation>Die verskafde volmag adres is ongeldig.</translation> + <translation>The supplied proxy address is invalid.</translation> </message> </context> <context> <name>OverviewPage</name> <message> <source>Form</source> - <translation>Vorm</translation> + <translation>Form</translation> + </message> + <message> + <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> + <translation>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</translation> </message> <message> <source>Watch-only:</source> - <translation>Kyk-net:</translation> + <translation>Watch-only:</translation> </message> <message> <source>Available:</source> - <translation>Beskikbaar:</translation> + <translation>Available:</translation> </message> <message> <source>Your current spendable balance</source> - <translation>U huidige bruikbare balans</translation> + <translation>Your current spendable balance</translation> </message> <message> <source>Pending:</source> - <translation>Hangend:</translation> + <translation>Pending:</translation> + </message> + <message> + <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> + <translation>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</translation> </message> <message> <source>Immature:</source> - <translation>Onvolwasse:</translation> + <translation>Immature:</translation> + </message> + <message> + <source>Mined balance that has not yet matured</source> + <translation>Mined balance that has not yet matured</translation> </message> <message> <source>Balances</source> - <translation>Balans</translation> + <translation>Balances</translation> </message> <message> <source>Total:</source> - <translation>Totaal:</translation> + <translation>Total:</translation> </message> <message> <source>Your current total balance</source> - <translation>U huidige totale balans</translation> + <translation>Your current total balance</translation> + </message> + <message> + <source>Your current balance in watch-only addresses</source> + <translation>Your current balance in watch-only addresses</translation> </message> <message> <source>Spendable:</source> - <translation>Besteebaar:</translation> + <translation>Spendable:</translation> </message> <message> <source>Recent transactions</source> - <translation>Onlangse transaksies</translation> + <translation>Recent transactions</translation> + </message> + <message> + <source>Unconfirmed transactions to watch-only addresses</source> + <translation>Unconfirmed transactions to watch-only addresses</translation> </message> - </context> + <message> + <source>Mined balance in watch-only addresses that has not yet matured</source> + <translation>Mined balance in watch-only addresses that has not yet matured</translation> + </message> + <message> + <source>Current total balance in watch-only addresses</source> + <translation>Current total balance in watch-only addresses</translation> + </message> +</context> <context> <name>PaymentServer</name> <message> <source>Payment request error</source> - <translation>Betalings versoek fout</translation> + <translation>Payment request error</translation> + </message> + <message> + <source>Cannot start bitcoin: click-to-pay handler</source> + <translation>Cannot start bitcoin: click-to-pay handler</translation> </message> <message> <source>URI handling</source> - <translation>URI hantering</translation> + <translation>URI handling</translation> + </message> + <message> + <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source> + <translation>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</translation> + </message> + <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Cannot process payment request because BIP70 is not supported.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</translation> + </message> + <message> + <source>Invalid payment address %1</source> + <translation>Invalid payment address %1</translation> </message> - </context> + <message> + <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source> + <translation>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</translation> + </message> + <message> + <source>Payment request file handling</source> + <translation>Payment request file handling</translation> + </message> +</context> <context> <name>PeerTableModel</name> <message> <source>User Agent</source> - <translation>Gebruikeragent</translation> + <translation>User Agent</translation> + </message> + <message> + <source>Node/Service</source> + <translation>Node/Service</translation> </message> <message> <source>NodeId</source> - <translation>NodusId</translation> + <translation>NodeId</translation> + </message> + <message> + <source>Ping</source> + <translation>Ping</translation> </message> <message> <source>Sent</source> - <translation>Gestuur</translation> + <translation>Sent</translation> </message> <message> <source>Received</source> - <translation>Ontvang</translation> + <translation>Received</translation> </message> </context> <context> <name>QObject</name> <message> <source>Amount</source> - <translation>Bedrag</translation> + <translation>Amount</translation> </message> <message> <source>Enter a Bitcoin address (e.g. %1)</source> - <translation>Voer in 'n Bitcoin adres (bv. %1)</translation> + <translation>Enter a Bitcoin address (e.g. %1)</translation> </message> <message> <source>%1 d</source> @@ -1090,19 +1552,43 @@ </message> <message> <source>None</source> - <translation>Geen</translation> + <translation>None</translation> </message> <message> <source>N/A</source> - <translation>n.v.t.</translation> + <translation>N/A</translation> </message> <message> <source>%1 ms</source> <translation>%1 ms</translation> </message> + <message numerus="yes"> + <source>%n second(s)</source> + <translation><numerusform>%n second</numerusform><numerusform>%n seconds</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n minute(s)</source> + <translation><numerusform>%n minute</numerusform><numerusform>%n minutes</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n hour(s)</source> + <translation><numerusform>%n hour</numerusform><numerusform>%n hours</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation><numerusform>%n day</numerusform><numerusform>%n days</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n week(s)</source> + <translation><numerusform>%n week</numerusform><numerusform>%n weeks</numerusform></translation> + </message> <message> <source>%1 and %2</source> - <translation>%1 en %2</translation> + <translation>%1 and %2</translation> + </message> + <message numerus="yes"> + <source>%n year(s)</source> + <translation><numerusform>%n year</numerusform><numerusform>%n years</numerusform></translation> </message> <message> <source>%1 B</source> @@ -1121,98 +1607,274 @@ <translation>%1 GB</translation> </message> <message> + <source>Error: Specified data directory "%1" does not exist.</source> + <translation>Error: Specified data directory "%1" does not exist.</translation> + </message> + <message> + <source>Error: Cannot parse configuration file: %1.</source> + <translation>Error: Cannot parse configuration file: %1.</translation> + </message> + <message> <source>Error: %1</source> - <translation>Fout: %1</translation> + <translation>Error: %1</translation> + </message> + <message> + <source>%1 didn't yet exit safely...</source> + <translation>%1 didn't yet exit safely...</translation> </message> <message> <source>unknown</source> - <translation>onbekend</translation> + <translation>unknown</translation> </message> </context> <context> <name>QRImageWidget</name> <message> <source>&Save Image...</source> - <translation>&Stoor beeld</translation> + <translation>&Save Image...</translation> + </message> + <message> + <source>&Copy Image</source> + <translation>&Copy Image</translation> </message> <message> <source>Resulting URI too long, try to reduce the text for label / message.</source> - <translation>Gevolglike URI te lank, probeer teks verkort vir etiket/boodskap</translation> + <translation>Resulting URI too long, try to reduce the text for label / message.</translation> </message> <message> <source>Error encoding URI into QR Code.</source> - <translation>Fout met enkodering van URI na QR kode</translation> + <translation>Error encoding URI into QR Code.</translation> + </message> + <message> + <source>QR code support not available.</source> + <translation>QR code support not available.</translation> + </message> + <message> + <source>Save QR Code</source> + <translation>Save QR Code</translation> + </message> + <message> + <source>PNG Image (*.png)</source> + <translation>PNG Image (*.png)</translation> </message> - </context> +</context> <context> <name>RPCConsole</name> <message> <source>N/A</source> - <translation>n.v.t.</translation> + <translation>N/A</translation> </message> <message> <source>Client version</source> - <translation>Kliëntweergawe</translation> + <translation>Client version</translation> </message> <message> <source>&Information</source> - <translation>Informasie</translation> + <translation>&Information</translation> </message> <message> <source>General</source> - <translation>Algemeen</translation> + <translation>General</translation> + </message> + <message> + <source>Using BerkeleyDB version</source> + <translation>Using BerkeleyDB version</translation> + </message> + <message> + <source>Datadir</source> + <translation>Datadir</translation> + </message> + <message> + <source>To specify a non-default location of the data directory use the '%1' option.</source> + <translation>To specify a non-default location of the data directory use the '%1' option.</translation> + </message> + <message> + <source>Blocksdir</source> + <translation>Blocksdir</translation> + </message> + <message> + <source>To specify a non-default location of the blocks directory use the '%1' option.</source> + <translation>To specify a non-default location of the blocks directory use the '%1' option.</translation> + </message> + <message> + <source>Startup time</source> + <translation>Startup time</translation> </message> <message> <source>Network</source> - <translation>Netwerk</translation> + <translation>Network</translation> </message> <message> <source>Name</source> - <translation>Naam</translation> + <translation>Name</translation> </message> <message> <source>Number of connections</source> - <translation>Aantal verbindings</translation> + <translation>Number of connections</translation> </message> <message> <source>Block chain</source> - <translation>Blokketting</translation> + <translation>Block chain</translation> </message> <message> <source>Current number of blocks</source> - <translation>Huidige aantal blokke</translation> + <translation>Current number of blocks</translation> + </message> + <message> + <source>Memory Pool</source> + <translation>Memory Pool</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Current number of transactions</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Memory usage</translation> + </message> + <message> + <source>Wallet: </source> + <translation>Wallet: </translation> + </message> + <message> + <source>(none)</source> + <translation>(none)</translation> + </message> + <message> + <source>&Reset</source> + <translation>&Reset</translation> </message> <message> <source>Received</source> - <translation>Ontvang</translation> + <translation>Received</translation> </message> <message> <source>Sent</source> - <translation>Gestuur</translation> + <translation>Sent</translation> + </message> + <message> + <source>&Peers</source> + <translation>&Peers</translation> </message> <message> <source>Banned peers</source> - <translation>Verbanne porture</translation> + <translation>Banned peers</translation> + </message> + <message> + <source>Select a peer to view detailed information.</source> + <translation>Select a peer to view detailed information.</translation> </message> <message> <source>Whitelisted</source> - <translation>Gewitlys</translation> + <translation>Whitelisted</translation> </message> <message> <source>Direction</source> - <translation>Rigting</translation> + <translation>Direction</translation> </message> <message> <source>Version</source> - <translation>Weergawe</translation> + <translation>Version</translation> + </message> + <message> + <source>Starting Block</source> + <translation>Starting Block</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Synced Headers</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Synced Blocks</translation> + </message> + <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>The mapped Autonomous System used for diversifying peer selection.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapped AS</translation> </message> <message> <source>User Agent</source> - <translation>Gebruikeragent</translation> + <translation>User Agent</translation> + </message> + <message> + <source>Node window</source> + <translation>Node window</translation> + </message> + <message> + <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> + <translation>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</translation> + </message> + <message> + <source>Decrease font size</source> + <translation>Decrease font size</translation> + </message> + <message> + <source>Increase font size</source> + <translation>Increase font size</translation> + </message> + <message> + <source>Services</source> + <translation>Services</translation> + </message> + <message> + <source>Ban Score</source> + <translation>Ban Score</translation> + </message> + <message> + <source>Connection Time</source> + <translation>Connection Time</translation> + </message> + <message> + <source>Last Send</source> + <translation>Last Send</translation> + </message> + <message> + <source>Last Receive</source> + <translation>Last Receive</translation> + </message> + <message> + <source>Ping Time</source> + <translation>Ping Time</translation> + </message> + <message> + <source>The duration of a currently outstanding ping.</source> + <translation>The duration of a currently outstanding ping.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Ping Wait</translation> + </message> + <message> + <source>Min Ping</source> + <translation>Min Ping</translation> + </message> + <message> + <source>Time Offset</source> + <translation>Time Offset</translation> </message> <message> <source>Last block time</source> - <translation>Laaste blok tyd</translation> + <translation>Last block time</translation> + </message> + <message> + <source>&Open</source> + <translation>&Open</translation> + </message> + <message> + <source>&Console</source> + <translation>&Console</translation> + </message> + <message> + <source>&Network Traffic</source> + <translation>&Network Traffic</translation> + </message> + <message> + <source>Totals</source> + <translation>Totals</translation> </message> <message> <source>In:</source> @@ -1220,15 +1882,23 @@ </message> <message> <source>Out:</source> - <translation>Uit:</translation> + <translation>Out:</translation> + </message> + <message> + <source>Debug log file</source> + <translation>Debug log file</translation> + </message> + <message> + <source>Clear console</source> + <translation>Clear console</translation> </message> <message> <source>1 &hour</source> - <translation>1 &uur</translation> + <translation>1 &hour</translation> </message> <message> <source>1 &day</source> - <translation>1 &dag</translation> + <translation>1 &day</translation> </message> <message> <source>1 &week</source> @@ -1236,27 +1906,55 @@ </message> <message> <source>1 &year</source> - <translation>1 &jaar</translation> + <translation>1 &year</translation> </message> <message> <source>&Disconnect</source> - <translation>&Ontkoppel</translation> + <translation>&Disconnect</translation> </message> <message> <source>Ban for</source> - <translation>Verbied vir</translation> + <translation>Ban for</translation> </message> <message> <source>&Unban</source> - <translation>&Toegelaat</translation> + <translation>&Unban</translation> + </message> + <message> + <source>Welcome to the %1 RPC console.</source> + <translation>Welcome to the %1 RPC console.</translation> + </message> + <message> + <source>Use up and down arrows to navigate history, and %1 to clear screen.</source> + <translation>Use up and down arrows to navigate history, and %1 to clear screen.</translation> + </message> + <message> + <source>Type %1 for an overview of available commands.</source> + <translation>Type %1 for an overview of available commands.</translation> + </message> + <message> + <source>For more information on using this console type %1.</source> + <translation>For more information on using this console type %1.</translation> + </message> + <message> + <source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</source> + <translation>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</translation> </message> <message> <source>Network activity disabled</source> - <translation>Netwerk aktiewiteit gedeaktiveer</translation> + <translation>Network activity disabled</translation> + </message> + <message> + <source>Executing command without any wallet</source> + <translation>Executing command without any wallet</translation> + </message> + <message> + <source>Executing command using "%1" wallet</source> + <translation>Executing command using "%1" wallet</translation> </message> <message> <source>(node id: %1)</source> - <translation>(nodus id: %1)</translation> + <translation>(node id: %1)</translation> </message> <message> <source>via %1</source> @@ -1264,97 +1962,149 @@ </message> <message> <source>never</source> - <translation>nooit</translation> + <translation>never</translation> </message> <message> <source>Inbound</source> - <translation>Inkomende</translation> + <translation>Inbound</translation> </message> <message> <source>Outbound</source> - <translation>Uitgaande</translation> + <translation>Outbound</translation> </message> <message> <source>Yes</source> - <translation>Ja</translation> + <translation>Yes</translation> </message> <message> <source>No</source> - <translation>Nee</translation> + <translation>No</translation> </message> <message> <source>Unknown</source> - <translation>Onbekend</translation> + <translation>Unknown</translation> </message> </context> <context> <name>ReceiveCoinsDialog</name> <message> <source>&Amount:</source> - <translation>&Bedrag:</translation> + <translation>&Amount:</translation> </message> <message> <source>&Label:</source> - <translation>&Etiket:</translation> + <translation>&Label:</translation> </message> <message> <source>&Message:</source> - <translation>&Boodskap:</translation> + <translation>&Message:</translation> + </message> + <message> + <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source> + <translation>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</translation> + </message> + <message> + <source>An optional label to associate with the new receiving address.</source> + <translation>An optional label to associate with the new receiving address.</translation> + </message> + <message> + <source>Use this form to request payments. All fields are <b>optional</b>.</source> + <translation>Use this form to request payments. All fields are <b>optional</b>.</translation> + </message> + <message> + <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source> + <translation>An optional amount to request. Leave this empty or zero to not request a specific amount.</translation> + </message> + <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>An optional message that is attached to the payment request and may be displayed to the sender.</translation> + </message> + <message> + <source>&Create new receiving address</source> + <translation>&Create new receiving address</translation> </message> <message> <source>Clear all fields of the form.</source> - <translation>Vee alle velde op die vorm skoon</translation> + <translation>Clear all fields of the form.</translation> </message> <message> <source>Clear</source> - <translation>Skoonmaak</translation> + <translation>Clear</translation> + </message> + <message> + <source>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</source> + <translation>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</translation> + </message> + <message> + <source>Generate native segwit (Bech32) address</source> + <translation>Generate native segwit (Bech32) address</translation> + </message> + <message> + <source>Requested payments history</source> + <translation>Requested payments history</translation> + </message> + <message> + <source>Show the selected request (does the same as double clicking an entry)</source> + <translation>Show the selected request (does the same as double clicking an entry)</translation> </message> <message> <source>Show</source> - <translation>Wys</translation> + <translation>Show</translation> + </message> + <message> + <source>Remove the selected entries from the list</source> + <translation>Remove the selected entries from the list</translation> </message> <message> <source>Remove</source> - <translation>Verwyder</translation> + <translation>Remove</translation> + </message> + <message> + <source>Copy URI</source> + <translation>Copy URI</translation> </message> <message> <source>Copy label</source> - <translation>Kopieer etiket</translation> + <translation>Copy label</translation> </message> <message> <source>Copy message</source> - <translation>Kopieer boodskap</translation> + <translation>Copy message</translation> </message> <message> <source>Copy amount</source> - <translation>Kopieer bedrag</translation> + <translation>Copy amount</translation> </message> </context> <context> <name>ReceiveRequestDialog</name> <message> <source>QR Code</source> - <translation>QR Kode</translation> + <translation>QR Code</translation> </message> <message> <source>Copy &URI</source> - <translation>Kopieer &URI</translation> + <translation>Copy &URI</translation> </message> <message> <source>Copy &Address</source> - <translation>Kopieer &Address</translation> + <translation>Copy &Address</translation> </message> <message> <source>&Save Image...</source> - <translation>&Stoor beeld</translation> + <translation>&Save Image...</translation> </message> <message> <source>Request payment to %1</source> - <translation>Versoek betaling van %1</translation> + <translation>Request payment to %1</translation> </message> <message> <source>Payment information</source> - <translation>Betaling informasie</translation> + <translation>Payment information</translation> </message> <message> <source>URI</source> @@ -1362,314 +2112,404 @@ </message> <message> <source>Address</source> - <translation>Adres</translation> + <translation>Address</translation> </message> <message> <source>Amount</source> - <translation>Bedrag</translation> + <translation>Amount</translation> </message> <message> <source>Label</source> - <translation>Etiket</translation> + <translation>Label</translation> </message> <message> <source>Message</source> - <translation>Boodskap</translation> + <translation>Message</translation> </message> <message> <source>Wallet</source> - <translation>Beursie</translation> + <translation>Wallet</translation> </message> </context> <context> <name>RecentRequestsTableModel</name> <message> <source>Date</source> - <translation>Datum</translation> + <translation>Date</translation> </message> <message> <source>Label</source> - <translation>Etiket</translation> + <translation>Label</translation> </message> <message> <source>Message</source> - <translation>Boodskap</translation> + <translation>Message</translation> </message> <message> <source>(no label)</source> - <translation>(geen etiket)</translation> + <translation>(no label)</translation> </message> <message> <source>(no message)</source> - <translation>(geen boodskap)</translation> + <translation>(no message)</translation> </message> <message> <source>(no amount requested)</source> - <translation>(geen bedrag versoek)</translation> + <translation>(no amount requested)</translation> </message> <message> <source>Requested</source> - <translation>Versoekte</translation> + <translation>Requested</translation> </message> </context> <context> <name>SendCoinsDialog</name> <message> <source>Send Coins</source> - <translation>Stuur Munstukke</translation> + <translation>Send Coins</translation> </message> <message> <source>Coin Control Features</source> - <translation>Munt Beheer Kenmerke</translation> + <translation>Coin Control Features</translation> </message> <message> <source>Inputs...</source> - <translation>Insette...</translation> + <translation>Inputs...</translation> </message> <message> <source>automatically selected</source> - <translation>outomaties gekies</translation> + <translation>automatically selected</translation> </message> <message> <source>Insufficient funds!</source> - <translation>Onvoldoende fondse</translation> + <translation>Insufficient funds!</translation> </message> <message> <source>Quantity:</source> - <translation>Hoeveelheid:</translation> + <translation>Quantity:</translation> </message> <message> <source>Bytes:</source> - <translation>Grepe:</translation> + <translation>Bytes:</translation> </message> <message> <source>Amount:</source> - <translation>Bedrag:</translation> + <translation>Amount:</translation> </message> <message> <source>Fee:</source> - <translation>Fooi:</translation> + <translation>Fee:</translation> </message> <message> <source>After Fee:</source> - <translation>Na Fooi:</translation> + <translation>After Fee:</translation> </message> <message> <source>Change:</source> - <translation>Verander:</translation> + <translation>Change:</translation> + </message> + <message> + <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source> + <translation>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</translation> + </message> + <message> + <source>Custom change address</source> + <translation>Custom change address</translation> </message> <message> <source>Transaction Fee:</source> - <translation>Transaksie fooi:</translation> + <translation>Transaction Fee:</translation> </message> <message> <source>Choose...</source> - <translation>Kies...</translation> + <translation>Choose...</translation> </message> <message> <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source> - <translation>Die verstekfooi kan veroorsaak dat 'n transaksie gestuur word wat -etlike ure of dae (of nooit) sal neem om te bevestig. Oorweeg om -'n fooi met die hand te kies, of wag tot jy die hele ketting bevestig het.</translation> + <translation>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</translation> </message> <message> <source>Warning: Fee estimation is currently not possible.</source> - <translation>Waarskuwing: fooiskatting is tans onbeskikbaar</translation> + <translation>Warning: Fee estimation is currently not possible.</translation> + </message> + <message> + <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. + +Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis.</source> + <translation>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. + +Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis.</translation> </message> <message> <source>per kilobyte</source> - <translation>per kilogreep</translation> + <translation>per kilobyte</translation> </message> <message> <source>Hide</source> - <translation>Steek weg</translation> + <translation>Hide</translation> </message> <message> <source>Recommended:</source> - <translation>Aanbeveel:</translation> + <translation>Recommended:</translation> </message> <message> <source>Custom:</source> - <translation>Aangepaste:</translation> + <translation>Custom:</translation> </message> <message> <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> - <translation>(Slimfooi nog nie opgestel nie. Dit neem gewoonlik 'n paar blokke...)</translation> + <translation>(Smart fee not initialized yet. This usually takes a few blocks...)</translation> </message> <message> <source>Send to multiple recipients at once</source> - <translation>Stuur aan vele ontvangers op eens</translation> + <translation>Send to multiple recipients at once</translation> </message> <message> <source>Add &Recipient</source> - <translation>Voeg by &Ontvanger</translation> + <translation>Add &Recipient</translation> </message> <message> <source>Clear all fields of the form.</source> - <translation>Vee alle velde op die vorm skoon</translation> + <translation>Clear all fields of the form.</translation> </message> <message> <source>Dust:</source> - <translation>Stof:</translation> + <translation>Dust:</translation> + </message> + <message> + <source>Hide transaction fee settings</source> + <translation>Hide transaction fee settings</translation> + </message> + <message> + <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</translation> + </message> + <message> + <source>A too low fee might result in a never confirming transaction (read the tooltip)</source> + <translation>A too low fee might result in a never confirming transaction (read the tooltip)</translation> </message> <message> <source>Confirmation time target:</source> - <translation>Bevestigingstyd teiken:</translation> + <translation>Confirmation time target:</translation> </message> <message> <source>Enable Replace-By-Fee</source> - <translation>Bemoontlik vervang-deur-fooi</translation> + <translation>Enable Replace-By-Fee</translation> </message> <message> <source>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</source> - <translation>Met Vervang-Met-Fooi (BIP-125) kan jy 'n transaskiefooi verhoog nadat dit gestuur is. -Daarsonder mag 'n hoër fooi dalk aanbeveel word om te kompenseer vir 'n verhoogde -transaksievertragingsrisiko.</translation> + <translation>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</translation> </message> <message> <source>Clear &All</source> - <translation>Vee &Alles skoon</translation> + <translation>Clear &All</translation> </message> <message> <source>Balance:</source> - <translation>Balans:</translation> + <translation>Balance:</translation> </message> <message> <source>Confirm the send action</source> - <translation>Bevestig stuuraksie</translation> + <translation>Confirm the send action</translation> </message> <message> <source>S&end</source> - <translation>S&tuur</translation> + <translation>S&end</translation> </message> <message> <source>Copy quantity</source> - <translation>Kopieer hoeveelheid</translation> + <translation>Copy quantity</translation> </message> <message> <source>Copy amount</source> - <translation>Kopieer bedrag</translation> + <translation>Copy amount</translation> </message> <message> <source>Copy fee</source> - <translation>Kopieer fooi</translation> + <translation>Copy fee</translation> </message> <message> <source>Copy after fee</source> - <translation>Kopieer na fooi</translation> + <translation>Copy after fee</translation> </message> <message> <source>Copy bytes</source> - <translation>Kopieer grepe</translation> + <translation>Copy bytes</translation> </message> <message> <source>Copy dust</source> - <translation>Kopieer stof</translation> + <translation>Copy dust</translation> </message> <message> <source>Copy change</source> - <translation>Kopieer verandering</translation> + <translation>Copy change</translation> </message> <message> <source>%1 (%2 blocks)</source> - <translation>%1 (%2 blokke)</translation> + <translation>%1 (%2 blocks)</translation> + </message> + <message> + <source>Cr&eate Unsigned</source> + <translation>Cr&eate Unsigned</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</translation> + </message> + <message> + <source> from wallet '%1'</source> + <translation> from wallet '%1'</translation> + </message> + <message> + <source>%1 to '%2'</source> + <translation>%1 to '%2'</translation> </message> <message> <source>%1 to %2</source> - <translation>%1 tot %2</translation> + <translation>%1 to %2</translation> + </message> + <message> + <source>Do you want to draft this transaction?</source> + <translation>Do you want to draft this transaction?</translation> </message> <message> <source>Are you sure you want to send?</source> - <translation>Is u seker u wil verstuur?</translation> + <translation>Are you sure you want to send?</translation> + </message> + <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</translation> </message> <message> <source>or</source> - <translation>of</translation> + <translation>or</translation> </message> <message> <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source> - <translation>U kan die fooi later verhoog (sein Vervang-met-Fooi, BIP-125)</translation> + <translation>You can increase the fee later (signals Replace-By-Fee, BIP-125).</translation> + </message> + <message> + <source>Please, review your transaction.</source> + <translation>Please, review your transaction.</translation> </message> <message> <source>Transaction fee</source> - <translation>Transaksie fooi</translation> + <translation>Transaction fee</translation> </message> <message> <source>Not signalling Replace-By-Fee, BIP-125.</source> - <translation>Sein nie Vervang-Met-Fooi nie, BIP-25</translation> + <translation>Not signalling Replace-By-Fee, BIP-125.</translation> + </message> + <message> + <source>Total Amount</source> + <translation>Total Amount</translation> + </message> + <message> + <source>To review recipient list click "Show Details..."</source> + <translation>To review recipient list click "Show Details..."</translation> </message> <message> <source>Confirm send coins</source> - <translation>Bevestig versending van munte</translation> + <translation>Confirm send coins</translation> + </message> + <message> + <source>Confirm transaction proposal</source> + <translation>Confirm transaction proposal</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Copy PSBT to clipboard</translation> + </message> + <message> + <source>Send</source> + <translation>Send</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT copied</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Watch-only balance:</translation> </message> <message> <source>The recipient address is not valid. Please recheck.</source> - <translation>Die ontvangeradres is ongeldig. Kyk asseblief weer mooi.</translation> + <translation>The recipient address is not valid. Please recheck.</translation> </message> <message> <source>The amount to pay must be larger than 0.</source> - <translation>Bedrag moet groter as nul wees</translation> + <translation>The amount to pay must be larger than 0.</translation> </message> <message> <source>The amount exceeds your balance.</source> - <translation>Die bedrag oorskry jou saldo</translation> + <translation>The amount exceeds your balance.</translation> </message> <message> <source>The total exceeds your balance when the %1 transaction fee is included.</source> - <translation>Die somtotaal oorskry jou saldo as die %1 transaksiefooi ingereken word</translation> + <translation>The total exceeds your balance when the %1 transaction fee is included.</translation> </message> <message> <source>Duplicate address found: addresses should only be used once each.</source> - <translation>Duplikaatadres: adresse behoort slegs eenkeer gebruik te word</translation> + <translation>Duplicate address found: addresses should only be used once each.</translation> </message> <message> <source>Transaction creation failed!</source> - <translation>Transaksieopstelling het gefaal</translation> + <translation>Transaction creation failed!</translation> </message> <message> <source>A fee higher than %1 is considered an absurdly high fee.</source> - <translation>'n Fooi hoër as %1 word as buitensporig beskou</translation> + <translation>A fee higher than %1 is considered an absurdly high fee.</translation> </message> <message> <source>Payment request expired.</source> - <translation>Betalings versoek verstryk.</translation> + <translation>Payment request expired.</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Estimated to begin confirmation within %n block.</numerusform><numerusform>Estimated to begin confirmation within %n blocks.</numerusform></translation> </message> <message> <source>Warning: Invalid Bitcoin address</source> - <translation>Waarskuwing: Ongeldige Bitcoinadres</translation> + <translation>Warning: Invalid Bitcoin address</translation> + </message> + <message> + <source>Warning: Unknown change address</source> + <translation>Warning: Unknown change address</translation> + </message> + <message> + <source>Confirm custom change address</source> + <translation>Confirm custom change address</translation> </message> <message> <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source> - <translation>Die adres wat u gekies het vir verandering is nie deel van hierdie -beursie nie. Enige of alle fondse mag dalk daarheen gestuur word. -Is u seker?</translation> + <translation>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</translation> </message> <message> <source>(no label)</source> - <translation>(geen etiket)</translation> + <translation>(no label)</translation> </message> </context> <context> <name>SendCoinsEntry</name> <message> <source>A&mount:</source> - <translation>&Bedrag:</translation> + <translation>A&mount:</translation> </message> <message> <source>Pay &To:</source> - <translation>Betaal &Vir:</translation> + <translation>Pay &To:</translation> </message> <message> <source>&Label:</source> - <translation>&Etiket:</translation> + <translation>&Label:</translation> </message> <message> <source>Choose previously used address</source> - <translation>Kies voorheen gebruikte adres</translation> + <translation>Choose previously used address</translation> </message> <message> <source>The Bitcoin address to send the payment to</source> - <translation>Die Bitcoinadres waarheen die betaling gestuur word</translation> + <translation>The Bitcoin address to send the payment to</translation> </message> <message> <source>Alt+A</source> @@ -1677,57 +2517,93 @@ Is u seker?</translation> </message> <message> <source>Paste address from clipboard</source> - <translation>Plak adres van aanknipbord af</translation> + <translation>Paste address from clipboard</translation> + </message> + <message> + <source>Alt+P</source> + <translation>Alt+P</translation> </message> <message> <source>Remove this entry</source> - <translation>Verwyder hierdie inskrywing</translation> + <translation>Remove this entry</translation> + </message> + <message> + <source>The amount to send in the selected unit</source> + <translation>The amount to send in the selected unit</translation> </message> <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> - <translation>De fooi word afgetrek van die gestuurde bedrag. -Die ontvanger sal minder ontvang as wat u in die -bedrag opgee. As daar meer as een ontvanger is, -word die fooi eweredig verdeel.</translation> + <translation>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</translation> </message> <message> <source>S&ubtract fee from amount</source> - <translation>Bedrag &Sonder fooi </translation> + <translation>S&ubtract fee from amount</translation> </message> <message> <source>Use available balance</source> - <translation>Gebruik beskikbare saldo</translation> + <translation>Use available balance</translation> </message> <message> <source>Message:</source> - <translation>Boodskap:</translation> + <translation>Message:</translation> </message> <message> <source>This is an unauthenticated payment request.</source> - <translation>Hierdie is 'n ongemagtigde uitbetalingsversoek</translation> + <translation>This is an unauthenticated payment request.</translation> </message> <message> <source>This is an authenticated payment request.</source> - <translation>Hierdie is 'n gemagtigde uitbetalingsversoek -</translation> + <translation>This is an authenticated payment request.</translation> + </message> + <message> + <source>Enter a label for this address to add it to the list of used addresses</source> + <translation>Enter a label for this address to add it to the list of used addresses</translation> + </message> + <message> + <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source> + <translation>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</translation> </message> <message> <source>Pay To:</source> - <translation>Betaal Vir:</translation> + <translation>Pay To:</translation> + </message> + <message> + <source>Memo:</source> + <translation>Memo:</translation> </message> - </context> +</context> <context> <name>ShutdownWindow</name> - </context> + <message> + <source>%1 is shutting down...</source> + <translation>%1 is shutting down...</translation> + </message> + <message> + <source>Do not shut down the computer until this window disappears.</source> + <translation>Do not shut down the computer until this window disappears.</translation> + </message> +</context> <context> <name>SignVerifyMessageDialog</name> <message> + <source>Signatures - Sign / Verify a Message</source> + <translation>Signatures - Sign / Verify a Message</translation> + </message> + <message> <source>&Sign Message</source> - <translation>&Teken boodskap</translation> + <translation>&Sign Message</translation> + </message> + <message> + <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source> + <translation>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</translation> + </message> + <message> + <source>The Bitcoin address to sign the message with</source> + <translation>The Bitcoin address to sign the message with</translation> </message> <message> <source>Choose previously used address</source> - <translation>Kies voorheen gebruikte adres</translation> + <translation>Choose previously used address</translation> </message> <message> <source>Alt+A</source> @@ -1735,35 +2611,127 @@ word die fooi eweredig verdeel.</translation> </message> <message> <source>Paste address from clipboard</source> - <translation>Plak adres van aanknipbord af</translation> + <translation>Paste address from clipboard</translation> + </message> + <message> + <source>Alt+P</source> + <translation>Alt+P</translation> + </message> + <message> + <source>Enter the message you want to sign here</source> + <translation>Enter the message you want to sign here</translation> </message> <message> <source>Signature</source> - <translation>Handtekening</translation> + <translation>Signature</translation> + </message> + <message> + <source>Copy the current signature to the system clipboard</source> + <translation>Copy the current signature to the system clipboard</translation> + </message> + <message> + <source>Sign the message to prove you own this Bitcoin address</source> + <translation>Sign the message to prove you own this Bitcoin address</translation> </message> <message> <source>Sign &Message</source> - <translation>Teken &Boodskap</translation> + <translation>Sign &Message</translation> + </message> + <message> + <source>Reset all sign message fields</source> + <translation>Reset all sign message fields</translation> </message> <message> <source>Clear &All</source> - <translation>Vee &Alles skoon</translation> + <translation>Clear &All</translation> </message> <message> <source>&Verify Message</source> - <translation>&Verifieer Boodskap</translation> + <translation>&Verify Message</translation> + </message> + <message> + <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source> + <translation>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</translation> + </message> + <message> + <source>The Bitcoin address the message was signed with</source> + <translation>The Bitcoin address the message was signed with</translation> + </message> + <message> + <source>The signed message to verify</source> + <translation>The signed message to verify</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>The signature given when the message was signed</translation> + </message> + <message> + <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> + <translation>Verify the message to ensure it was signed with the specified Bitcoin address</translation> </message> <message> <source>Verify &Message</source> - <translation>Verifieer &Boodskap</translation> + <translation>Verify &Message</translation> + </message> + <message> + <source>Reset all verify message fields</source> + <translation>Reset all verify message fields</translation> + </message> + <message> + <source>Click "Sign Message" to generate signature</source> + <translation>Click "Sign Message" to generate signature</translation> + </message> + <message> + <source>The entered address is invalid.</source> + <translation>The entered address is invalid.</translation> + </message> + <message> + <source>Please check the address and try again.</source> + <translation>Please check the address and try again.</translation> + </message> + <message> + <source>The entered address does not refer to a key.</source> + <translation>The entered address does not refer to a key.</translation> + </message> + <message> + <source>Wallet unlock was cancelled.</source> + <translation>Wallet unlock was cancelled.</translation> + </message> + <message> + <source>No error</source> + <translation>No error</translation> + </message> + <message> + <source>Private key for the entered address is not available.</source> + <translation>Private key for the entered address is not available.</translation> + </message> + <message> + <source>Message signing failed.</source> + <translation>Message signing failed.</translation> </message> <message> <source>Message signed.</source> - <translation>Boodskap geteken.</translation> + <translation>Message signed.</translation> + </message> + <message> + <source>The signature could not be decoded.</source> + <translation>The signature could not be decoded.</translation> + </message> + <message> + <source>Please check the signature and try again.</source> + <translation>Please check the signature and try again.</translation> + </message> + <message> + <source>The signature did not match the message digest.</source> + <translation>The signature did not match the message digest.</translation> + </message> + <message> + <source>Message verification failed.</source> + <translation>Message verification failed.</translation> </message> <message> <source>Message verified.</source> - <translation>Boodskap geverifieer.</translation> + <translation>Message verified.</translation> </message> </context> <context> @@ -1775,246 +2743,422 @@ word die fooi eweredig verdeel.</translation> </context> <context> <name>TransactionDesc</name> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Open for %n more block</numerusform><numerusform>Open for %n more blocks</numerusform></translation> + </message> + <message> + <source>Open until %1</source> + <translation>Open until %1</translation> + </message> + <message> + <source>conflicted with a transaction with %1 confirmations</source> + <translation>conflicted with a transaction with %1 confirmations</translation> + </message> + <message> + <source>0/unconfirmed, %1</source> + <translation>0/unconfirmed, %1</translation> + </message> + <message> + <source>in memory pool</source> + <translation>in memory pool</translation> + </message> + <message> + <source>not in memory pool</source> + <translation>not in memory pool</translation> + </message> + <message> + <source>abandoned</source> + <translation>abandoned</translation> + </message> + <message> + <source>%1/unconfirmed</source> + <translation>%1/unconfirmed</translation> + </message> + <message> + <source>%1 confirmations</source> + <translation>%1 confirmations</translation> + </message> + <message> + <source>Status</source> + <translation>Status</translation> + </message> <message> <source>Date</source> - <translation>Datum</translation> + <translation>Date</translation> + </message> + <message> + <source>Source</source> + <translation>Source</translation> + </message> + <message> + <source>Generated</source> + <translation>Generated</translation> </message> <message> <source>From</source> - <translation>Van</translation> + <translation>From</translation> </message> <message> <source>unknown</source> - <translation>onbekend</translation> + <translation>unknown</translation> </message> <message> <source>To</source> - <translation>Na</translation> + <translation>To</translation> </message> <message> <source>own address</source> - <translation>eie adres</translation> + <translation>own address</translation> </message> <message> <source>watch-only</source> - <translation>kyk-net</translation> + <translation>watch-only</translation> </message> <message> <source>label</source> - <translation>etiket</translation> + <translation>label</translation> </message> <message> <source>Credit</source> - <translation>Krediet</translation> + <translation>Credit</translation> + </message> + <message numerus="yes"> + <source>matures in %n more block(s)</source> + <translation><numerusform>matures in %n more block</numerusform><numerusform>matures in %n more blocks</numerusform></translation> </message> <message> <source>not accepted</source> - <translation>nie aanvaar nie</translation> + <translation>not accepted</translation> </message> <message> <source>Debit</source> - <translation>Debiet</translation> + <translation>Debit</translation> </message> <message> <source>Total debit</source> - <translation>Totale debiet</translation> + <translation>Total debit</translation> </message> <message> <source>Total credit</source> - <translation>Totale crediet</translation> + <translation>Total credit</translation> </message> <message> <source>Transaction fee</source> - <translation>Transaksie fooi</translation> + <translation>Transaction fee</translation> </message> <message> <source>Net amount</source> - <translation>Netto bedrag</translation> + <translation>Net amount</translation> </message> <message> <source>Message</source> - <translation>Boodskap</translation> + <translation>Message</translation> </message> <message> <source>Comment</source> - <translation>Kommentaar</translation> + <translation>Comment</translation> </message> <message> <source>Transaction ID</source> - <translation>Transaksie ID</translation> + <translation>Transaction ID</translation> </message> <message> <source>Transaction total size</source> - <translation>Transaksie totale grootte</translation> + <translation>Transaction total size</translation> + </message> + <message> + <source>Transaction virtual size</source> + <translation>Transaction virtual size</translation> + </message> + <message> + <source>Output index</source> + <translation>Output index</translation> + </message> + <message> + <source> (Certificate was not verified)</source> + <translation> (Certificate was not verified)</translation> + </message> + <message> + <source>Merchant</source> + <translation>Merchant</translation> + </message> + <message> + <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source> + <translation>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</translation> + </message> + <message> + <source>Debug information</source> + <translation>Debug information</translation> </message> <message> <source>Transaction</source> - <translation>Transaksie</translation> + <translation>Transaction</translation> + </message> + <message> + <source>Inputs</source> + <translation>Inputs</translation> </message> <message> <source>Amount</source> - <translation>Bedrag</translation> + <translation>Amount</translation> </message> <message> <source>true</source> - <translation>waar</translation> + <translation>true</translation> </message> <message> <source>false</source> - <translation>onwaar</translation> + <translation>false</translation> </message> </context> <context> <name>TransactionDescDialog</name> - </context> + <message> + <source>This pane shows a detailed description of the transaction</source> + <translation>This pane shows a detailed description of the transaction</translation> + </message> + <message> + <source>Details for %1</source> + <translation>Details for %1</translation> + </message> +</context> <context> <name>TransactionTableModel</name> <message> <source>Date</source> - <translation>Datum</translation> + <translation>Date</translation> </message> <message> <source>Type</source> - <translation>Tipe</translation> + <translation>Type</translation> </message> <message> <source>Label</source> - <translation>Etiket</translation> + <translation>Label</translation> + </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Open for %n more block</numerusform><numerusform>Open for %n more blocks</numerusform></translation> + </message> + <message> + <source>Open until %1</source> + <translation>Open until %1</translation> + </message> + <message> + <source>Unconfirmed</source> + <translation>Unconfirmed</translation> + </message> + <message> + <source>Abandoned</source> + <translation>Abandoned</translation> + </message> + <message> + <source>Confirming (%1 of %2 recommended confirmations)</source> + <translation>Confirming (%1 of %2 recommended confirmations)</translation> + </message> + <message> + <source>Confirmed (%1 confirmations)</source> + <translation>Confirmed (%1 confirmations)</translation> + </message> + <message> + <source>Conflicted</source> + <translation>Conflicted</translation> + </message> + <message> + <source>Immature (%1 confirmations, will be available after %2)</source> + <translation>Immature (%1 confirmations, will be available after %2)</translation> + </message> + <message> + <source>Generated but not accepted</source> + <translation>Generated but not accepted</translation> </message> <message> <source>Received with</source> - <translation>Ontvang met</translation> + <translation>Received with</translation> </message> <message> <source>Received from</source> - <translation>Ontvang van</translation> + <translation>Received from</translation> </message> <message> <source>Sent to</source> - <translation>Gestuur na</translation> + <translation>Sent to</translation> </message> <message> <source>Payment to yourself</source> - <translation>Betalings Aan/na jouself</translation> + <translation>Payment to yourself</translation> </message> <message> <source>Mined</source> - <translation>Gemyn</translation> + <translation>Mined</translation> </message> <message> <source>watch-only</source> - <translation>kyk-net</translation> + <translation>watch-only</translation> </message> <message> <source>(n/a)</source> - <translation>(n.v.t)</translation> + <translation>(n/a)</translation> </message> <message> <source>(no label)</source> - <translation>(geen etiket)</translation> + <translation>(no label)</translation> + </message> + <message> + <source>Transaction status. Hover over this field to show number of confirmations.</source> + <translation>Transaction status. Hover over this field to show number of confirmations.</translation> </message> <message> <source>Date and time that the transaction was received.</source> - <translation>Datum en tyd wat die transaksie ontvang was.</translation> + <translation>Date and time that the transaction was received.</translation> </message> <message> <source>Type of transaction.</source> - <translation>Tipe transaksie.</translation> + <translation>Type of transaction.</translation> + </message> + <message> + <source>Whether or not a watch-only address is involved in this transaction.</source> + <translation>Whether or not a watch-only address is involved in this transaction.</translation> + </message> + <message> + <source>User-defined intent/purpose of the transaction.</source> + <translation>User-defined intent/purpose of the transaction.</translation> </message> - </context> + <message> + <source>Amount removed from or added to balance.</source> + <translation>Amount removed from or added to balance.</translation> + </message> +</context> <context> <name>TransactionView</name> <message> <source>All</source> - <translation>Alles</translation> + <translation>All</translation> </message> <message> <source>Today</source> - <translation>Vandag</translation> + <translation>Today</translation> </message> <message> <source>This week</source> - <translation>Hierdie week</translation> + <translation>This week</translation> </message> <message> <source>This month</source> - <translation>Hierdie maand</translation> + <translation>This month</translation> </message> <message> <source>Last month</source> - <translation>Verlede maand</translation> + <translation>Last month</translation> </message> <message> <source>This year</source> - <translation>Hierdie jaar</translation> + <translation>This year</translation> </message> <message> <source>Range...</source> - <translation>Reeks...</translation> + <translation>Range...</translation> </message> <message> <source>Received with</source> - <translation>Ontvang met</translation> + <translation>Received with</translation> </message> <message> <source>Sent to</source> - <translation>Gestuur na</translation> + <translation>Sent to</translation> </message> <message> <source>To yourself</source> - <translation>Aan/na jouself</translation> + <translation>To yourself</translation> </message> <message> <source>Mined</source> - <translation>Gemyn</translation> + <translation>Mined</translation> </message> <message> <source>Other</source> - <translation>Ander</translation> + <translation>Other</translation> + </message> + <message> + <source>Enter address, transaction id, or label to search</source> + <translation>Enter address, transaction id, or label to search</translation> </message> <message> <source>Min amount</source> - <translation>Min bedrag</translation> + <translation>Min amount</translation> + </message> + <message> + <source>Abandon transaction</source> + <translation>Abandon transaction</translation> + </message> + <message> + <source>Increase transaction fee</source> + <translation>Increase transaction fee</translation> </message> <message> <source>Copy address</source> - <translation>Maak kopie van adres</translation> + <translation>Copy address</translation> </message> <message> <source>Copy label</source> - <translation>Kopieer etiket</translation> + <translation>Copy label</translation> </message> <message> <source>Copy amount</source> - <translation>Kopieer bedrag</translation> + <translation>Copy amount</translation> </message> <message> <source>Copy transaction ID</source> - <translation>Kopieer transaksie ID</translation> + <translation>Copy transaction ID</translation> + </message> + <message> + <source>Copy raw transaction</source> + <translation>Copy raw transaction</translation> + </message> + <message> + <source>Copy full transaction details</source> + <translation>Copy full transaction details</translation> + </message> + <message> + <source>Edit label</source> + <translation>Edit label</translation> + </message> + <message> + <source>Show transaction details</source> + <translation>Show transaction details</translation> + </message> + <message> + <source>Export Transaction History</source> + <translation>Export Transaction History</translation> </message> <message> <source>Comma separated file (*.csv)</source> - <translation>Koma geskeide lêer (*.csv)</translation> + <translation>Comma separated file (*.csv)</translation> </message> <message> <source>Confirmed</source> - <translation>Bevestig</translation> + <translation>Confirmed</translation> + </message> + <message> + <source>Watch-only</source> + <translation>Watch-only</translation> </message> <message> <source>Date</source> - <translation>Datum</translation> + <translation>Date</translation> </message> <message> <source>Type</source> - <translation>Tipe</translation> + <translation>Type</translation> </message> <message> <source>Label</source> - <translation>Etiket</translation> + <translation>Label</translation> </message> <message> <source>Address</source> - <translation>Adres</translation> + <translation>Address</translation> </message> <message> <source>ID</source> @@ -2022,133 +3166,655 @@ word die fooi eweredig verdeel.</translation> </message> <message> <source>Exporting Failed</source> - <translation>Uitvoering Misluk</translation> + <translation>Exporting Failed</translation> + </message> + <message> + <source>There was an error trying to save the transaction history to %1.</source> + <translation>There was an error trying to save the transaction history to %1.</translation> + </message> + <message> + <source>Exporting Successful</source> + <translation>Exporting Successful</translation> + </message> + <message> + <source>The transaction history was successfully saved to %1.</source> + <translation>The transaction history was successfully saved to %1.</translation> </message> <message> <source>Range:</source> - <translation>Reeks:</translation> + <translation>Range:</translation> </message> <message> <source>to</source> - <translation>aan</translation> + <translation>to</translation> </message> </context> <context> <name>UnitDisplayStatusBarControl</name> - </context> + <message> + <source>Unit to show amounts in. Click to select another unit.</source> + <translation>Unit to show amounts in. Click to select another unit.</translation> + </message> +</context> <context> <name>WalletController</name> - </context> + <message> + <source>Close wallet</source> + <translation>Close wallet</translation> + </message> + <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Are you sure you wish to close the wallet <i>%1</i>?</translation> + </message> + <message> + <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> + <translation>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</translation> + </message> +</context> <context> <name>WalletFrame</name> - </context> + <message> + <source>No wallet has been loaded.</source> + <translation>No wallet has been loaded.</translation> + </message> +</context> <context> <name>WalletModel</name> <message> <source>Send Coins</source> - <translation>Stuur Munstukke</translation> + <translation>Send Coins</translation> + </message> + <message> + <source>Fee bump error</source> + <translation>Fee bump error</translation> + </message> + <message> + <source>Increasing transaction fee failed</source> + <translation>Increasing transaction fee failed</translation> + </message> + <message> + <source>Do you want to increase the fee?</source> + <translation>Do you want to increase the fee?</translation> + </message> + <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Do you want to draft a transaction with fee increase?</translation> + </message> + <message> + <source>Current fee:</source> + <translation>Current fee:</translation> + </message> + <message> + <source>Increase:</source> + <translation>Increase:</translation> </message> <message> <source>New fee:</source> - <translation>Nuwe fooi:</translation> + <translation>New fee:</translation> </message> - </context> + <message> + <source>Confirm fee bump</source> + <translation>Confirm fee bump</translation> + </message> + <message> + <source>Can't draft transaction.</source> + <translation>Can't draft transaction.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT copied</translation> + </message> + <message> + <source>Can't sign transaction.</source> + <translation>Can't sign transaction.</translation> + </message> + <message> + <source>Could not commit transaction</source> + <translation>Could not commit transaction</translation> + </message> + <message> + <source>default wallet</source> + <translation>default wallet</translation> + </message> +</context> <context> <name>WalletView</name> <message> <source>&Export</source> - <translation>&Uitvoer</translation> + <translation>&Export</translation> </message> <message> <source>Export the data in the current tab to a file</source> - <translation>Voer inligting uit van die huidige blad na n lêer</translation> + <translation>Export the data in the current tab to a file</translation> + </message> + <message> + <source>Backup Wallet</source> + <translation>Backup Wallet</translation> + </message> + <message> + <source>Wallet Data (*.dat)</source> + <translation>Wallet Data (*.dat)</translation> + </message> + <message> + <source>Backup Failed</source> + <translation>Backup Failed</translation> + </message> + <message> + <source>There was an error trying to save the wallet data to %1.</source> + <translation>There was an error trying to save the wallet data to %1.</translation> + </message> + <message> + <source>Backup Successful</source> + <translation>Backup Successful</translation> + </message> + <message> + <source>The wallet data was successfully saved to %1.</source> + <translation>The wallet data was successfully saved to %1.</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel</translation> </message> - </context> +</context> <context> <name>bitcoin-core</name> <message> + <source>Distributed under the MIT software license, see the accompanying file %s or %s</source> + <translation>Distributed under the MIT software license, see the accompanying file %s or %s</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>Prune configured below the minimum of %d MiB. Please use a higher number.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</translation> + </message> + <message> + <source>Error: A fatal internal error occurred, see debug.log for details</source> + <translation>Error: A fatal internal error occurred, see debug.log for details</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Pruning blockstore...</translation> + </message> + <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Unable to start HTTP server. See debug log for details.</translation> + </message> + <message> + <source>The %s developers</source> + <translation>The %s developers</translation> + </message> + <message> + <source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source> + <translation>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</translation> + </message> + <message> + <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> + <translation>Cannot obtain a lock on data directory %s. %s is probably already running.</translation> + </message> + <message> + <source>Cannot provide specific connections and have addrman find outgoing connections at the same.</source> + <translation>Cannot provide specific connections and have addrman find outgoing connections at the same.</translation> + </message> + <message> + <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source> + <translation>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</translation> + </message> + <message> + <source>Please contribute if you find %s useful. Visit %s for further information about the software.</source> + <translation>Please contribute if you find %s useful. Visit %s for further information about the software.</translation> + </message> + <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</translation> + </message> + <message> + <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> + <translation>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</translation> + </message> + <message> + <source>This is the transaction fee you may discard if change is smaller than dust at this level</source> + <translation>This is the transaction fee you may discard if change is smaller than dust at this level</translation> + </message> + <message> + <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source> + <translation>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</translation> + </message> + <message> + <source>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</source> + <translation>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</translation> + </message> + <message> + <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> + <translation>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</translation> + </message> + <message> + <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source> + <translation>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</translation> + </message> + <message> + <source>%d of last 100 blocks have unexpected version</source> + <translation>%d of last 100 blocks have unexpected version</translation> + </message> + <message> + <source>%s corrupt, salvage failed</source> + <translation>%s corrupt, salvage failed</translation> + </message> + <message> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool must be at least %d MB</translation> + </message> + <message> + <source>Cannot resolve -%s address: '%s'</source> + <translation>Cannot resolve -%s address: '%s'</translation> + </message> + <message> + <source>Change index out of range</source> + <translation>Change index out of range</translation> + </message> + <message> + <source>Config setting for %s only applied on %s network when in [%s] section.</source> + <translation>Config setting for %s only applied on %s network when in [%s] section.</translation> + </message> + <message> + <source>Copyright (C) %i-%i</source> + <translation>Copyright (C) %i-%i</translation> + </message> + <message> + <source>Corrupted block database detected</source> + <translation>Corrupted block database detected</translation> + </message> + <message> + <source>Could not find asmap file %s</source> + <translation>Could not find asmap file %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Could not parse asmap file %s</translation> + </message> + <message> + <source>Do you want to rebuild the block database now?</source> + <translation>Do you want to rebuild the block database now?</translation> + </message> + <message> + <source>Error initializing block database</source> + <translation>Error initializing block database</translation> + </message> + <message> + <source>Error initializing wallet database environment %s!</source> + <translation>Error initializing wallet database environment %s!</translation> + </message> + <message> <source>Error loading %s</source> - <translation>Fout met laai %s</translation> + <translation>Error loading %s</translation> + </message> + <message> + <source>Error loading %s: Private keys can only be disabled during creation</source> + <translation>Error loading %s: Private keys can only be disabled during creation</translation> + </message> + <message> + <source>Error loading %s: Wallet corrupted</source> + <translation>Error loading %s: Wallet corrupted</translation> + </message> + <message> + <source>Error loading %s: Wallet requires newer version of %s</source> + <translation>Error loading %s: Wallet requires newer version of %s</translation> + </message> + <message> + <source>Error loading block database</source> + <translation>Error loading block database</translation> + </message> + <message> + <source>Error opening block database</source> + <translation>Error opening block database</translation> + </message> + <message> + <source>Failed to listen on any port. Use -listen=0 if you want this.</source> + <translation>Failed to listen on any port. Use -listen=0 if you want this.</translation> + </message> + <message> + <source>Failed to rescan the wallet during initialization</source> + <translation>Failed to rescan the wallet during initialization</translation> </message> <message> <source>Importing...</source> - <translation>Invoer proses tans besig..</translation> + <translation>Importing...</translation> + </message> + <message> + <source>Incorrect or no genesis block found. Wrong datadir for network?</source> + <translation>Incorrect or no genesis block found. Wrong datadir for network?</translation> + </message> + <message> + <source>Initialization sanity check failed. %s is shutting down.</source> + <translation>Initialization sanity check failed. %s is shutting down.</translation> + </message> + <message> + <source>Invalid P2P permission: '%s'</source> + <translation>Invalid P2P permission: '%s'</translation> + </message> + <message> + <source>Invalid amount for -%s=<amount>: '%s'</source> + <translation>Invalid amount for -%s=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -discardfee=<amount>: '%s'</source> + <translation>Invalid amount for -discardfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -fallbackfee=<amount>: '%s'</source> + <translation>Invalid amount for -fallbackfee=<amount>: '%s'</translation> + </message> + <message> + <source>Specified blocks directory "%s" does not exist.</source> + <translation>Specified blocks directory "%s" does not exist.</translation> + </message> + <message> + <source>Unknown address type '%s'</source> + <translation>Unknown address type '%s'</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>Unknown change type '%s'</translation> + </message> + <message> + <source>Upgrading txindex database</source> + <translation>Upgrading txindex database</translation> + </message> + <message> + <source>Loading P2P addresses...</source> + <translation>Loading P2P addresses...</translation> + </message> + <message> + <source>Error: Disk space is too low!</source> + <translation>Error: Disk space is too low!</translation> + </message> + <message> + <source>Loading banlist...</source> + <translation>Loading banlist...</translation> + </message> + <message> + <source>Not enough file descriptors available.</source> + <translation>Not enough file descriptors available.</translation> + </message> + <message> + <source>Prune cannot be configured with a negative value.</source> + <translation>Prune cannot be configured with a negative value.</translation> + </message> + <message> + <source>Prune mode is incompatible with -txindex.</source> + <translation>Prune mode is incompatible with -txindex.</translation> + </message> + <message> + <source>Replaying blocks...</source> + <translation>Replaying blocks...</translation> + </message> + <message> + <source>Rewinding blocks...</source> + <translation>Rewinding blocks...</translation> + </message> + <message> + <source>The source code is available from %s.</source> + <translation>The source code is available from %s.</translation> + </message> + <message> + <source>Transaction fee and change calculation failed</source> + <translation>Transaction fee and change calculation failed</translation> + </message> + <message> + <source>Unable to bind to %s on this computer. %s is probably already running.</source> + <translation>Unable to bind to %s on this computer. %s is probably already running.</translation> + </message> + <message> + <source>Unable to generate keys</source> + <translation>Unable to generate keys</translation> + </message> + <message> + <source>Unsupported logging category %s=%s.</source> + <translation>Unsupported logging category %s=%s.</translation> + </message> + <message> + <source>Upgrading UTXO database</source> + <translation>Upgrading UTXO database</translation> + </message> + <message> + <source>User Agent comment (%s) contains unsafe characters.</source> + <translation>User Agent comment (%s) contains unsafe characters.</translation> + </message> + <message> + <source>Verifying blocks...</source> + <translation>Verifying blocks...</translation> + </message> + <message> + <source>Wallet needed to be rewritten: restart %s to complete</source> + <translation>Wallet needed to be rewritten: restart %s to complete</translation> + </message> + <message> + <source>Error: Listening for incoming connections failed (listen returned error %s)</source> + <translation>Error: Listening for incoming connections failed (listen returned error %s)</translation> + </message> + <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> + <translation>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</translation> + </message> + <message> + <source>The transaction amount is too small to send after the fee has been deducted</source> + <translation>The transaction amount is too small to send after the fee has been deducted</translation> + </message> + <message> + <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> + <translation>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</translation> + </message> + <message> + <source>Error reading from database, shutting down.</source> + <translation>Error reading from database, shutting down.</translation> + </message> + <message> + <source>Error upgrading chainstate database</source> + <translation>Error upgrading chainstate database</translation> + </message> + <message> + <source>Error: Disk space is low for %s</source> + <translation>Error: Disk space is low for %s</translation> + </message> + <message> + <source>Invalid -onion address or hostname: '%s'</source> + <translation>Invalid -onion address or hostname: '%s'</translation> + </message> + <message> + <source>Invalid -proxy address or hostname: '%s'</source> + <translation>Invalid -proxy address or hostname: '%s'</translation> + </message> + <message> + <source>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</source> + <translation>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</translation> + </message> + <message> + <source>Invalid netmask specified in -whitelist: '%s'</source> + <translation>Invalid netmask specified in -whitelist: '%s'</translation> + </message> + <message> + <source>Need to specify a port with -whitebind: '%s'</source> + <translation>Need to specify a port with -whitebind: '%s'</translation> + </message> + <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>Prune mode is incompatible with -blockfilterindex.</translation> + </message> + <message> + <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> + <translation>Reducing -maxconnections from %d to %d, because of system limitations.</translation> + </message> + <message> + <source>Section [%s] is not recognized.</source> + <translation>Section [%s] is not recognized.</translation> </message> <message> <source>Signing transaction failed</source> - <translation>Teken van transaksie het misluk</translation> + <translation>Signing transaction failed</translation> + </message> + <message> + <source>Specified -walletdir "%s" does not exist</source> + <translation>Specified -walletdir "%s" does not exist</translation> + </message> + <message> + <source>Specified -walletdir "%s" is a relative path</source> + <translation>Specified -walletdir "%s" is a relative path</translation> + </message> + <message> + <source>Specified -walletdir "%s" is not a directory</source> + <translation>Specified -walletdir "%s" is not a directory</translation> + </message> + <message> + <source>The specified config file %s does not exist +</source> + <translation>The specified config file %s does not exist +</translation> + </message> + <message> + <source>The transaction amount is too small to pay the fee</source> + <translation>The transaction amount is too small to pay the fee</translation> </message> <message> <source>This is experimental software.</source> - <translation>Dié is eksperimentele sagteware.</translation> + <translation>This is experimental software.</translation> </message> <message> <source>Transaction amount too small</source> - <translation>Transaksie bedrag te klein</translation> + <translation>Transaction amount too small</translation> </message> <message> <source>Transaction too large</source> - <translation>Transaksie te groot</translation> + <translation>Transaction too large</translation> + </message> + <message> + <source>Unable to bind to %s on this computer (bind returned error %s)</source> + <translation>Unable to bind to %s on this computer (bind returned error %s)</translation> + </message> + <message> + <source>Unable to create the PID file '%s': %s</source> + <translation>Unable to create the PID file '%s': %s</translation> + </message> + <message> + <source>Unable to generate initial keys</source> + <translation>Unable to generate initial keys</translation> + </message> + <message> + <source>Unknown -blockfilterindex value %s.</source> + <translation>Unknown -blockfilterindex value %s.</translation> </message> <message> <source>Verifying wallet(s)...</source> - <translation>Besig met verifieer van beursie(s)...</translation> + <translation>Verifying wallet(s)...</translation> + </message> + <message> + <source>Warning: unknown new rules activated (versionbit %i)</source> + <translation>Warning: unknown new rules activated (versionbit %i)</translation> + </message> + <message> + <source>Zapping all transactions from wallet...</source> + <translation>Zapping all transactions from wallet...</translation> + </message> + <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</translation> + </message> + <message> + <source>This is the transaction fee you may pay when fee estimates are not available.</source> + <translation>This is the transaction fee you may pay when fee estimates are not available.</translation> + </message> + <message> + <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> + <translation>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</translation> + </message> + <message> + <source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source> + <translation>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</translation> </message> <message> <source>%s is set very high!</source> - <translation>%s is baie hoog gestel!</translation> + <translation>%s is set very high!</translation> + </message> + <message> + <source>Error loading wallet %s. Duplicate -wallet filename specified.</source> + <translation>Error loading wallet %s. Duplicate -wallet filename specified.</translation> </message> <message> <source>Starting network threads...</source> - <translation>Begin tans netwerkdrade...</translation> + <translation>Starting network threads...</translation> + </message> + <message> + <source>The wallet will avoid paying less than the minimum relay fee.</source> + <translation>The wallet will avoid paying less than the minimum relay fee.</translation> </message> <message> <source>This is the minimum transaction fee you pay on every transaction.</source> - <translation>Dit is die minimum transaksie fooi wat u betaal op elke transaksie.</translation> + <translation>This is the minimum transaction fee you pay on every transaction.</translation> </message> <message> <source>This is the transaction fee you will pay if you send a transaction.</source> - <translation>Dit is die transaksie fooi wat u sal betaal as u 'n transaksie stuur.</translation> + <translation>This is the transaction fee you will pay if you send a transaction.</translation> </message> <message> <source>Transaction amounts must not be negative</source> - <translation>Transaksies bedrae moet nie negatief wees nie</translation> + <translation>Transaction amounts must not be negative</translation> </message> <message> <source>Transaction has too long of a mempool chain</source> - <translation>Transaksie se mempool ketting is te lank</translation> + <translation>Transaction has too long of a mempool chain</translation> </message> <message> <source>Transaction must have at least one recipient</source> - <translation>Transaksie moet ten minste een ontvanger hê</translation> + <translation>Transaction must have at least one recipient</translation> </message> <message> <source>Unknown network specified in -onlynet: '%s'</source> - <translation>Onbekende netwerk gespesifiseer in -onlynet: '%s'</translation> + <translation>Unknown network specified in -onlynet: '%s'</translation> </message> <message> <source>Insufficient funds</source> - <translation>Onvoldoende fondse</translation> + <translation>Insufficient funds</translation> + </message> + <message> + <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> + <translation>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</translation> + </message> + <message> + <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> + <translation>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</translation> + </message> + <message> + <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source> + <translation>Warning: Private keys detected in wallet {%s} with disabled private keys</translation> + </message> + <message> + <source>Cannot write to data directory '%s'; check permissions.</source> + <translation>Cannot write to data directory '%s'; check permissions.</translation> </message> <message> <source>Loading block index...</source> - <translation>Laai blok indeks...</translation> + <translation>Loading block index...</translation> </message> <message> <source>Loading wallet...</source> - <translation>Laai beursie...</translation> + <translation>Loading wallet...</translation> </message> <message> <source>Cannot downgrade wallet</source> - <translation>Kan nie beursie afgradeer nie</translation> + <translation>Cannot downgrade wallet</translation> </message> <message> <source>Rescanning...</source> - <translation>Word herskandeer...</translation> + <translation>Rescanning...</translation> </message> <message> <source>Done loading</source> - <translation>Klaar gelaai</translation> + <translation>Done loading</translation> </message> </context> </TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_ar.ts b/src/qt/locale/bitcoin_ar.ts index 0d138d353c..0209705b25 100644 --- a/src/qt/locale/bitcoin_ar.ts +++ b/src/qt/locale/bitcoin_ar.ts @@ -184,6 +184,10 @@ <translation>ادخل كملة المرور القديمة وكلمة المرور الجديدة للمحفظة.</translation> </message> <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>تذكر أن تشفير محفظتك لا يحمي البيتكوين الخاصة بك بشكل كامل من السرقة من قبل البرامج الخبيثةالتي تصيب حاسوبك</translation> + </message> + <message> <source>Wallet to be encrypted</source> <translation>سوف يتم تشفير محفظتك</translation> </message> @@ -756,10 +760,42 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Create wallet failed</source> + <translation>فشل إنشاء المحفظة</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>تحذير إنشاء محفظة</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> <message> + <source>Create Wallet</source> + <translation>إنشاء محفظة</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>إسم المحفظة</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>شفر المحفظة. المحفظة سيتم تشفيرها بإستخدام كلمة مرور من إختيارك.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>تشفير محفظة</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>إيقاف المفاتيح الخاصة</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>أنشئ محفظة فارغة</translation> + </message> + <message> <source>Create</source> <translation>إنشاء</translation> </message> @@ -803,6 +839,14 @@ <translation>العنوان المدخل "%1" ليس عنوان بيت كوين صحيح.</translation> </message> <message> + <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source> + <translation>العنوان "%1" موجود بالفعل كعنوان إستقبال تحت مسمى "%2" ولذلك لا يمكن إضافته كعنوان إرسال.</translation> + </message> + <message> + <source>The entered address "%1" is already in the address book with label "%2".</source> + <translation>العنوان المدخل "%1" موجود بالفعل في سجل العناوين تحت مسمى " "%2".</translation> + </message> + <message> <source>Could not unlock wallet.</source> <translation> يمكن فتح المحفظة.</translation> </message> diff --git a/src/qt/locale/bitcoin_bn.ts b/src/qt/locale/bitcoin_bn.ts index 3a68e2847c..5a98c56acd 100644 --- a/src/qt/locale/bitcoin_bn.ts +++ b/src/qt/locale/bitcoin_bn.ts @@ -3,184 +3,3818 @@ <name>AddressBookPage</name> <message> <source>Right-click to edit address or label</source> - <translation>ঠিকানা কিংবা লেভেল সম্পাদনার জন্য রাইট-ক্লিক করুন</translation> + <translation>Right-click to edit address or label</translation> </message> <message> <source>Create a new address</source> - <translation>নতুন একটি ঠিকানা তৈরি করুন</translation> + <translation>Create a new address</translation> </message> <message> <source>&New</source> - <translation>নতুন</translation> + <translation>&New</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>Copy the currently selected address to the system clipboard</translation> </message> <message> <source>&Copy</source> - <translation>কপি/প্রতিলিপি</translation> + <translation>&Copy</translation> </message> <message> <source>C&lose</source> - <translation>কপি/প্রতিলিপি</translation> + <translation>C&lose</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>Delete the currently selected address from the list</translation> + </message> + <message> + <source>Enter address or label to search</source> + <translation>Enter address or label to search</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Export the data in the current tab to a file</translation> </message> - </context> + <message> + <source>&Export</source> + <translation>&Export</translation> + </message> + <message> + <source>&Delete</source> + <translation>&Delete</translation> + </message> + <message> + <source>Choose the address to send coins to</source> + <translation>Choose the address to send coins to</translation> + </message> + <message> + <source>Choose the address to receive coins with</source> + <translation>Choose the address to receive coins with</translation> + </message> + <message> + <source>C&hoose</source> + <translation>C&hoose</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Sending addresses</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Receiving addresses</translation> + </message> + <message> + <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> + <translation>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</translation> + </message> + <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</translation> + </message> + <message> + <source>&Copy Address</source> + <translation>&Copy Address</translation> + </message> + <message> + <source>Copy &Label</source> + <translation>Copy &Label</translation> + </message> + <message> + <source>&Edit</source> + <translation>&Edit</translation> + </message> + <message> + <source>Export Address List</source> + <translation>Export Address List</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Comma separated file (*.csv)</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Exporting Failed</translation> + </message> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>There was an error trying to save the address list to %1. Please try again.</translation> + </message> +</context> <context> <name>AddressTableModel</name> <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> <source>Address</source> - <translation>ঠিকানা </translation> + <translation>Address</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> </message> - </context> +</context> <context> <name>AskPassphraseDialog</name> - </context> + <message> + <source>Passphrase Dialog</source> + <translation>Passphrase Dialog</translation> + </message> + <message> + <source>Enter passphrase</source> + <translation>Enter passphrase</translation> + </message> + <message> + <source>New passphrase</source> + <translation>New passphrase</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Repeat new passphrase</translation> + </message> + <message> + <source>Show passphrase</source> + <translation>Show passphrase</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>Encrypt wallet</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>This operation needs your wallet passphrase to unlock the wallet.</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>Unlock wallet</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>This operation needs your wallet passphrase to decrypt the wallet.</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>Decrypt wallet</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Change passphrase</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>Confirm wallet encryption</translation> + </message> + <message> + <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> + <translation>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</translation> + </message> + <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>Are you sure you wish to encrypt your wallet?</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>Wallet encrypted</translation> + </message> + <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Enter the old passphrase and new passphrase for the wallet.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>Wallet to be encrypted</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Your wallet is about to be encrypted. </translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Your wallet is now encrypted. </translation> + </message> + <message> + <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> + <translation>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>Wallet encryption failed</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>The supplied passphrases do not match.</translation> + </message> + <message> + <source>Wallet unlock failed</source> + <translation>Wallet unlock failed</translation> + </message> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>The passphrase entered for the wallet decryption was incorrect.</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>Wallet decryption failed</translation> + </message> + <message> + <source>Wallet passphrase was successfully changed.</source> + <translation>Wallet passphrase was successfully changed.</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>Warning: The Caps Lock key is on!</translation> + </message> +</context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>IP/Netmask</translation> + </message> + <message> + <source>Banned Until</source> + <translation>Banned Until</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> + <source>Sign &message...</source> + <translation>Sign &message...</translation> + </message> + <message> + <source>Synchronizing with network...</source> + <translation>Synchronizing with network...</translation> + </message> + <message> + <source>&Overview</source> + <translation>&Overview</translation> + </message> + <message> + <source>Show general overview of wallet</source> + <translation>Show general overview of wallet</translation> + </message> + <message> + <source>&Transactions</source> + <translation>&Transactions</translation> + </message> + <message> + <source>Browse transaction history</source> + <translation>Browse transaction history</translation> + </message> + <message> + <source>E&xit</source> + <translation>E&xit</translation> + </message> + <message> + <source>Quit application</source> + <translation>Quit application</translation> + </message> + <message> + <source>&About %1</source> + <translation>&About %1</translation> + </message> + <message> + <source>Show information about %1</source> + <translation>Show information about %1</translation> + </message> + <message> + <source>About &Qt</source> + <translation>About &Qt</translation> + </message> + <message> + <source>Show information about Qt</source> + <translation>Show information about Qt</translation> + </message> + <message> + <source>&Options...</source> + <translation>&Options...</translation> + </message> + <message> + <source>Modify configuration options for %1</source> + <translation>Modify configuration options for %1</translation> + </message> + <message> + <source>&Encrypt Wallet...</source> + <translation>&Encrypt Wallet...</translation> + </message> + <message> + <source>&Backup Wallet...</source> + <translation>&Backup Wallet...</translation> + </message> + <message> + <source>&Change Passphrase...</source> + <translation>&Change Passphrase...</translation> + </message> + <message> + <source>Open &URI...</source> + <translation>Open &URI...</translation> + </message> + <message> + <source>Create Wallet...</source> + <translation>Create Wallet...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Create a new wallet</translation> + </message> + <message> + <source>Wallet:</source> + <translation>Wallet:</translation> + </message> + <message> + <source>Click to disable network activity.</source> + <translation>Click to disable network activity.</translation> + </message> + <message> + <source>Network activity disabled.</source> + <translation>Network activity disabled.</translation> + </message> + <message> + <source>Click to enable network activity again.</source> + <translation>Click to enable network activity again.</translation> + </message> + <message> + <source>Syncing Headers (%1%)...</source> + <translation>Syncing Headers (%1%)...</translation> + </message> + <message> + <source>Reindexing blocks on disk...</source> + <translation>Reindexing blocks on disk...</translation> + </message> + <message> + <source>Proxy is <b>enabled</b>: %1</source> + <translation>Proxy is <b>enabled</b>: %1</translation> + </message> + <message> + <source>Send coins to a Bitcoin address</source> + <translation>Send coins to a Bitcoin address</translation> + </message> + <message> + <source>Backup wallet to another location</source> + <translation>Backup wallet to another location</translation> + </message> + <message> + <source>Change the passphrase used for wallet encryption</source> + <translation>Change the passphrase used for wallet encryption</translation> + </message> + <message> + <source>&Verify message...</source> + <translation>&Verify message...</translation> + </message> + <message> + <source>&Send</source> + <translation>&Send</translation> + </message> + <message> + <source>&Receive</source> + <translation>&Receive</translation> + </message> + <message> + <source>&Show / Hide</source> + <translation>&Show / Hide</translation> + </message> + <message> + <source>Show or hide the main Window</source> + <translation>Show or hide the main Window</translation> + </message> + <message> + <source>Encrypt the private keys that belong to your wallet</source> + <translation>Encrypt the private keys that belong to your wallet</translation> + </message> + <message> + <source>Sign messages with your Bitcoin addresses to prove you own them</source> + <translation>Sign messages with your Bitcoin addresses to prove you own them</translation> + </message> + <message> + <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source> + <translation>Verify messages to ensure they were signed with specified Bitcoin addresses</translation> + </message> + <message> + <source>&File</source> + <translation>&File</translation> + </message> + <message> + <source>&Settings</source> + <translation>&Settings</translation> + </message> + <message> + <source>&Help</source> + <translation>&Help</translation> + </message> + <message> + <source>Tabs toolbar</source> + <translation>Tabs toolbar</translation> + </message> + <message> + <source>Request payments (generates QR codes and bitcoin: URIs)</source> + <translation>Request payments (generates QR codes and bitcoin: URIs)</translation> + </message> + <message> + <source>Show the list of used sending addresses and labels</source> + <translation>Show the list of used sending addresses and labels</translation> + </message> + <message> + <source>Show the list of used receiving addresses and labels</source> + <translation>Show the list of used receiving addresses and labels</translation> + </message> + <message> + <source>&Command-line options</source> + <translation>&Command-line options</translation> + </message> + <message numerus="yes"> + <source>%n active connection(s) to Bitcoin network</source> + <translation><numerusform>%n active connection to Bitcoin network</numerusform><numerusform>%n active connections to Bitcoin network</numerusform></translation> + </message> + <message> + <source>Indexing blocks on disk...</source> + <translation>Indexing blocks on disk...</translation> + </message> + <message> + <source>Processing blocks on disk...</source> + <translation>Processing blocks on disk...</translation> + </message> + <message numerus="yes"> + <source>Processed %n block(s) of transaction history.</source> + <translation><numerusform>Processed %n block of transaction history.</numerusform><numerusform>Processed %n blocks of transaction history.</numerusform></translation> + </message> + <message> + <source>%1 behind</source> + <translation>%1 behind</translation> + </message> + <message> + <source>Last received block was generated %1 ago.</source> + <translation>Last received block was generated %1 ago.</translation> + </message> + <message> + <source>Transactions after this will not yet be visible.</source> + <translation>Transactions after this will not yet be visible.</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> + <message> <source>Warning</source> - <translation>সতর্কতা</translation> + <translation>Warning</translation> + </message> + <message> + <source>Information</source> + <translation>Information</translation> + </message> + <message> + <source>Up to date</source> + <translation>Up to date</translation> </message> - </context> + <message> + <source>Node window</source> + <translation>Node window</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Open node debugging and diagnostic console</translation> + </message> + <message> + <source>&Sending addresses</source> + <translation>&Sending addresses</translation> + </message> + <message> + <source>&Receiving addresses</source> + <translation>&Receiving addresses</translation> + </message> + <message> + <source>Open a bitcoin: URI</source> + <translation>Open a bitcoin: URI</translation> + </message> + <message> + <source>Open Wallet</source> + <translation>Open Wallet</translation> + </message> + <message> + <source>Open a wallet</source> + <translation>Open a wallet</translation> + </message> + <message> + <source>Close Wallet...</source> + <translation>Close Wallet...</translation> + </message> + <message> + <source>Close wallet</source> + <translation>Close wallet</translation> + </message> + <message> + <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source> + <translation>Show the %1 help message to get a list with possible Bitcoin command-line options</translation> + </message> + <message> + <source>default wallet</source> + <translation>default wallet</translation> + </message> + <message> + <source>No wallets available</source> + <translation>No wallets available</translation> + </message> + <message> + <source>&Window</source> + <translation>&Window</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimize</translation> + </message> + <message> + <source>Zoom</source> + <translation>Zoom</translation> + </message> + <message> + <source>Main Window</source> + <translation>Main Window</translation> + </message> + <message> + <source>%1 client</source> + <translation>%1 client</translation> + </message> + <message> + <source>Connecting to peers...</source> + <translation>Connecting to peers...</translation> + </message> + <message> + <source>Catching up...</source> + <translation>Catching up...</translation> + </message> + <message> + <source>Error: %1</source> + <translation>Error: %1</translation> + </message> + <message> + <source>Warning: %1</source> + <translation>Warning: %1</translation> + </message> + <message> + <source>Date: %1 +</source> + <translation>Date: %1 +</translation> + </message> + <message> + <source>Amount: %1 +</source> + <translation>Amount: %1 +</translation> + </message> + <message> + <source>Wallet: %1 +</source> + <translation>Wallet: %1 +</translation> + </message> + <message> + <source>Type: %1 +</source> + <translation>Type: %1 +</translation> + </message> + <message> + <source>Label: %1 +</source> + <translation>Label: %1 +</translation> + </message> + <message> + <source>Address: %1 +</source> + <translation>Address: %1 +</translation> + </message> + <message> + <source>Sent transaction</source> + <translation>Sent transaction</translation> + </message> + <message> + <source>Incoming transaction</source> + <translation>Incoming transaction</translation> + </message> + <message> + <source>HD key generation is <b>enabled</b></source> + <translation>HD key generation is <b>enabled</b></translation> + </message> + <message> + <source>HD key generation is <b>disabled</b></source> + <translation>HD key generation is <b>disabled</b></translation> + </message> + <message> + <source>Private key <b>disabled</b></source> + <translation>Private key <b>disabled</b></translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> + <translation>Wallet is <b>encrypted</b> and currently <b>unlocked</b></translation> + </message> + <message> + <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> + <translation>Wallet is <b>encrypted</b> and currently <b>locked</b></translation> + </message> + <message> + <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source> + <translation>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</translation> + </message> +</context> <context> <name>CoinControlDialog</name> - </context> + <message> + <source>Coin Selection</source> + <translation>Coin Selection</translation> + </message> + <message> + <source>Quantity:</source> + <translation>Quantity:</translation> + </message> + <message> + <source>Bytes:</source> + <translation>Bytes:</translation> + </message> + <message> + <source>Amount:</source> + <translation>Amount:</translation> + </message> + <message> + <source>Fee:</source> + <translation>Fee:</translation> + </message> + <message> + <source>Dust:</source> + <translation>Dust:</translation> + </message> + <message> + <source>After Fee:</source> + <translation>After Fee:</translation> + </message> + <message> + <source>Change:</source> + <translation>Change:</translation> + </message> + <message> + <source>(un)select all</source> + <translation>(un)select all</translation> + </message> + <message> + <source>Tree mode</source> + <translation>Tree mode</translation> + </message> + <message> + <source>List mode</source> + <translation>List mode</translation> + </message> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>Received with label</source> + <translation>Received with label</translation> + </message> + <message> + <source>Received with address</source> + <translation>Received with address</translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Confirmations</source> + <translation>Confirmations</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Confirmed</translation> + </message> + <message> + <source>Copy address</source> + <translation>Copy address</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copy label</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copy amount</translation> + </message> + <message> + <source>Copy transaction ID</source> + <translation>Copy transaction ID</translation> + </message> + <message> + <source>Lock unspent</source> + <translation>Lock unspent</translation> + </message> + <message> + <source>Unlock unspent</source> + <translation>Unlock unspent</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Copy quantity</translation> + </message> + <message> + <source>Copy fee</source> + <translation>Copy fee</translation> + </message> + <message> + <source>Copy after fee</source> + <translation>Copy after fee</translation> + </message> + <message> + <source>Copy bytes</source> + <translation>Copy bytes</translation> + </message> + <message> + <source>Copy dust</source> + <translation>Copy dust</translation> + </message> + <message> + <source>Copy change</source> + <translation>Copy change</translation> + </message> + <message> + <source>(%1 locked)</source> + <translation>(%1 locked)</translation> + </message> + <message> + <source>yes</source> + <translation>yes</translation> + </message> + <message> + <source>no</source> + <translation>no</translation> + </message> + <message> + <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source> + <translation>This label turns red if any recipient receives an amount smaller than the current dust threshold.</translation> + </message> + <message> + <source>Can vary +/- %1 satoshi(s) per input.</source> + <translation>Can vary +/- %1 satoshi(s) per input.</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> + </message> + <message> + <source>change from %1 (%2)</source> + <translation>change from %1 (%2)</translation> + </message> + <message> + <source>(change)</source> + <translation>(change)</translation> + </message> +</context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>Creating Wallet <b>%1</b>...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>Create wallet failed</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Create wallet warning</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Create Wallet</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Wallet Name</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Encrypt Wallet</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Disable Private Keys</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Make Blank Wallet</translation> + </message> + <message> + <source>Create</source> + <translation>Create</translation> + </message> +</context> <context> <name>EditAddressDialog</name> - </context> + <message> + <source>Edit Address</source> + <translation>Edit Address</translation> + </message> + <message> + <source>&Label</source> + <translation>&Label</translation> + </message> + <message> + <source>The label associated with this address list entry</source> + <translation>The label associated with this address list entry</translation> + </message> + <message> + <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> + <translation>The address associated with this address list entry. This can only be modified for sending addresses.</translation> + </message> + <message> + <source>&Address</source> + <translation>&Address</translation> + </message> + <message> + <source>New sending address</source> + <translation>New sending address</translation> + </message> + <message> + <source>Edit receiving address</source> + <translation>Edit receiving address</translation> + </message> + <message> + <source>Edit sending address</source> + <translation>Edit sending address</translation> + </message> + <message> + <source>The entered address "%1" is not a valid Bitcoin address.</source> + <translation>The entered address "%1" is not a valid Bitcoin address.</translation> + </message> + <message> + <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source> + <translation>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</translation> + </message> + <message> + <source>The entered address "%1" is already in the address book with label "%2".</source> + <translation>The entered address "%1" is already in the address book with label "%2".</translation> + </message> + <message> + <source>Could not unlock wallet.</source> + <translation>Could not unlock wallet.</translation> + </message> + <message> + <source>New key generation failed.</source> + <translation>New key generation failed.</translation> + </message> +</context> <context> <name>FreespaceChecker</name> - </context> + <message> + <source>A new data directory will be created.</source> + <translation>A new data directory will be created.</translation> + </message> + <message> + <source>name</source> + <translation>name</translation> + </message> + <message> + <source>Directory already exists. Add %1 if you intend to create a new directory here.</source> + <translation>Directory already exists. Add %1 if you intend to create a new directory here.</translation> + </message> + <message> + <source>Path already exists, and is not a directory.</source> + <translation>Path already exists, and is not a directory.</translation> + </message> + <message> + <source>Cannot create data directory here.</source> + <translation>Cannot create data directory here.</translation> + </message> +</context> <context> <name>HelpMessageDialog</name> - </context> + <message> + <source>version</source> + <translation>version</translation> + </message> + <message> + <source>About %1</source> + <translation>About %1</translation> + </message> + <message> + <source>Command-line options</source> + <translation>Command-line options</translation> + </message> +</context> <context> <name>Intro</name> - </context> + <message> + <source>Welcome</source> + <translation>Welcome</translation> + </message> + <message> + <source>Welcome to %1.</source> + <translation>Welcome to %1.</translation> + </message> + <message> + <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source> + <translation>As this is the first time the program is launched, you can choose where %1 will store its data.</translation> + </message> + <message> + <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source> + <translation>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</translation> + </message> + <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</translation> + </message> + <message> + <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> + <translation>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</translation> + </message> + <message> + <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source> + <translation>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</translation> + </message> + <message> + <source>Use the default data directory</source> + <translation>Use the default data directory</translation> + </message> + <message> + <source>Use a custom data directory:</source> + <translation>Use a custom data directory:</translation> + </message> + <message> + <source>Bitcoin</source> + <translation>Bitcoin</translation> + </message> + <message> + <source>Discard blocks after verification, except most recent %1 GB (prune)</source> + <translation>Discard blocks after verification, except most recent %1 GB (prune)</translation> + </message> + <message> + <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> + <translation>At least %1 GB of data will be stored in this directory, and it will grow over time.</translation> + </message> + <message> + <source>Approximately %1 GB of data will be stored in this directory.</source> + <translation>Approximately %1 GB of data will be stored in this directory.</translation> + </message> + <message> + <source>%1 will download and store a copy of the Bitcoin block chain.</source> + <translation>%1 will download and store a copy of the Bitcoin block chain.</translation> + </message> + <message> + <source>The wallet will also be stored in this directory.</source> + <translation>The wallet will also be stored in this directory.</translation> + </message> + <message> + <source>Error: Specified data directory "%1" cannot be created.</source> + <translation>Error: Specified data directory "%1" cannot be created.</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> + <message numerus="yes"> + <source>%n GB of free space available</source> + <translation><numerusform>%n GB of free space available</numerusform><numerusform>%n GB of free space available</numerusform></translation> + </message> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(of %n GB needed)</numerusform><numerusform>(of %n GB needed)</numerusform></translation> + </message> + <message numerus="yes"> + <source>(%n GB needed for full chain)</source> + <translation><numerusform>(%n GB needed for full chain)</numerusform><numerusform>(%n GB needed for full chain)</numerusform></translation> + </message> +</context> <context> <name>ModalOverlay</name> - </context> + <message> + <source>Form</source> + <translation>Form</translation> + </message> + <message> + <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source> + <translation>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</translation> + </message> + <message> + <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source> + <translation>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</translation> + </message> + <message> + <source>Number of blocks left</source> + <translation>Number of blocks left</translation> + </message> + <message> + <source>Unknown...</source> + <translation>Unknown...</translation> + </message> + <message> + <source>Last block time</source> + <translation>Last block time</translation> + </message> + <message> + <source>Progress</source> + <translation>Progress</translation> + </message> + <message> + <source>Progress increase per hour</source> + <translation>Progress increase per hour</translation> + </message> + <message> + <source>calculating...</source> + <translation>calculating...</translation> + </message> + <message> + <source>Estimated time left until synced</source> + <translation>Estimated time left until synced</translation> + </message> + <message> + <source>Hide</source> + <translation>Hide</translation> + </message> + <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</translation> + </message> + <message> + <source>Unknown. Syncing Headers (%1, %2%)...</source> + <translation>Unknown. Syncing Headers (%1, %2%)...</translation> + </message> +</context> <context> <name>OpenURIDialog</name> - </context> + <message> + <source>Open bitcoin URI</source> + <translation>Open bitcoin URI</translation> + </message> + <message> + <source>URI:</source> + <translation>URI:</translation> + </message> +</context> <context> <name>OpenWalletActivity</name> - </context> + <message> + <source>Open wallet failed</source> + <translation>Open wallet failed</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>Open wallet warning</translation> + </message> + <message> + <source>default wallet</source> + <translation>default wallet</translation> + </message> + <message> + <source>Opening Wallet <b>%1</b>...</source> + <translation>Opening Wallet <b>%1</b>...</translation> + </message> +</context> <context> <name>OptionsDialog</name> - </context> + <message> + <source>Options</source> + <translation>Options</translation> + </message> + <message> + <source>&Main</source> + <translation>&Main</translation> + </message> + <message> + <source>Automatically start %1 after logging in to the system.</source> + <translation>Automatically start %1 after logging in to the system.</translation> + </message> + <message> + <source>&Start %1 on system login</source> + <translation>&Start %1 on system login</translation> + </message> + <message> + <source>Size of &database cache</source> + <translation>Size of &database cache</translation> + </message> + <message> + <source>Number of script &verification threads</source> + <translation>Number of script &verification threads</translation> + </message> + <message> + <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> + <translation>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</translation> + </message> + <message> + <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</translation> + </message> + <message> + <source>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</source> + <translation>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</translation> + </message> + <message> + <source>Hide the icon from the system tray.</source> + <translation>Hide the icon from the system tray.</translation> + </message> + <message> + <source>&Hide tray icon</source> + <translation>&Hide tray icon</translation> + </message> + <message> + <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source> + <translation>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</translation> + </message> + <message> + <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> + <translation>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</translation> + </message> + <message> + <source>Open the %1 configuration file from the working directory.</source> + <translation>Open the %1 configuration file from the working directory.</translation> + </message> + <message> + <source>Open Configuration File</source> + <translation>Open Configuration File</translation> + </message> + <message> + <source>Reset all client options to default.</source> + <translation>Reset all client options to default.</translation> + </message> + <message> + <source>&Reset Options</source> + <translation>&Reset Options</translation> + </message> + <message> + <source>&Network</source> + <translation>&Network</translation> + </message> + <message> + <source>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</source> + <translation>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</translation> + </message> + <message> + <source>Prune &block storage to</source> + <translation>Prune &block storage to</translation> + </message> + <message> + <source>GB</source> + <translation>GB</translation> + </message> + <message> + <source>Reverting this setting requires re-downloading the entire blockchain.</source> + <translation>Reverting this setting requires re-downloading the entire blockchain.</translation> + </message> + <message> + <source>MiB</source> + <translation>MiB</translation> + </message> + <message> + <source>(0 = auto, <0 = leave that many cores free)</source> + <translation>(0 = auto, <0 = leave that many cores free)</translation> + </message> + <message> + <source>W&allet</source> + <translation>W&allet</translation> + </message> + <message> + <source>Expert</source> + <translation>Expert</translation> + </message> + <message> + <source>Enable coin &control features</source> + <translation>Enable coin &control features</translation> + </message> + <message> + <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source> + <translation>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</translation> + </message> + <message> + <source>&Spend unconfirmed change</source> + <translation>&Spend unconfirmed change</translation> + </message> + <message> + <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source> + <translation>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</translation> + </message> + <message> + <source>Map port using &UPnP</source> + <translation>Map port using &UPnP</translation> + </message> + <message> + <source>Accept connections from outside.</source> + <translation>Accept connections from outside.</translation> + </message> + <message> + <source>Allow incomin&g connections</source> + <translation>Allow incomin&g connections</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Connect to the Bitcoin network through a SOCKS5 proxy.</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Connect through SOCKS5 proxy (default proxy):</translation> + </message> + <message> + <source>Proxy &IP:</source> + <translation>Proxy &IP:</translation> + </message> + <message> + <source>&Port:</source> + <translation>&Port:</translation> + </message> + <message> + <source>Port of the proxy (e.g. 9050)</source> + <translation>Port of the proxy (e.g. 9050)</translation> + </message> + <message> + <source>Used for reaching peers via:</source> + <translation>Used for reaching peers via:</translation> + </message> + <message> + <source>IPv4</source> + <translation>IPv4</translation> + </message> + <message> + <source>IPv6</source> + <translation>IPv6</translation> + </message> + <message> + <source>Tor</source> + <translation>Tor</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</translation> + </message> + <message> + <source>&Window</source> + <translation>&Window</translation> + </message> + <message> + <source>Show only a tray icon after minimizing the window.</source> + <translation>Show only a tray icon after minimizing the window.</translation> + </message> + <message> + <source>&Minimize to the tray instead of the taskbar</source> + <translation>&Minimize to the tray instead of the taskbar</translation> + </message> + <message> + <source>M&inimize on close</source> + <translation>M&inimize on close</translation> + </message> + <message> + <source>&Display</source> + <translation>&Display</translation> + </message> + <message> + <source>User Interface &language:</source> + <translation>User Interface &language:</translation> + </message> + <message> + <source>The user interface language can be set here. This setting will take effect after restarting %1.</source> + <translation>The user interface language can be set here. This setting will take effect after restarting %1.</translation> + </message> + <message> + <source>&Unit to show amounts in:</source> + <translation>&Unit to show amounts in:</translation> + </message> + <message> + <source>Choose the default subdivision unit to show in the interface and when sending coins.</source> + <translation>Choose the default subdivision unit to show in the interface and when sending coins.</translation> + </message> + <message> + <source>Whether to show coin control features or not.</source> + <translation>Whether to show coin control features or not.</translation> + </message> + <message> + <source>&Third party transaction URLs</source> + <translation>&Third party transaction URLs</translation> + </message> + <message> + <source>Options set in this dialog are overridden by the command line or in the configuration file:</source> + <translation>Options set in this dialog are overridden by the command line or in the configuration file:</translation> + </message> + <message> + <source>&OK</source> + <translation>&OK</translation> + </message> + <message> + <source>&Cancel</source> + <translation>&Cancel</translation> + </message> + <message> + <source>default</source> + <translation>default</translation> + </message> + <message> + <source>none</source> + <translation>none</translation> + </message> + <message> + <source>Confirm options reset</source> + <translation>Confirm options reset</translation> + </message> + <message> + <source>Client restart required to activate changes.</source> + <translation>Client restart required to activate changes.</translation> + </message> + <message> + <source>Client will be shut down. Do you want to proceed?</source> + <translation>Client will be shut down. Do you want to proceed?</translation> + </message> + <message> + <source>Configuration options</source> + <translation>Configuration options</translation> + </message> + <message> + <source>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</source> + <translation>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</translation> + </message> + <message> + <source>Error</source> + <translation>Error</translation> + </message> + <message> + <source>The configuration file could not be opened.</source> + <translation>The configuration file could not be opened.</translation> + </message> + <message> + <source>This change would require a client restart.</source> + <translation>This change would require a client restart.</translation> + </message> + <message> + <source>The supplied proxy address is invalid.</source> + <translation>The supplied proxy address is invalid.</translation> + </message> +</context> <context> <name>OverviewPage</name> - </context> + <message> + <source>Form</source> + <translation>Form</translation> + </message> + <message> + <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> + <translation>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</translation> + </message> + <message> + <source>Watch-only:</source> + <translation>Watch-only:</translation> + </message> + <message> + <source>Available:</source> + <translation>Available:</translation> + </message> + <message> + <source>Your current spendable balance</source> + <translation>Your current spendable balance</translation> + </message> + <message> + <source>Pending:</source> + <translation>Pending:</translation> + </message> + <message> + <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> + <translation>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</translation> + </message> + <message> + <source>Immature:</source> + <translation>Immature:</translation> + </message> + <message> + <source>Mined balance that has not yet matured</source> + <translation>Mined balance that has not yet matured</translation> + </message> + <message> + <source>Balances</source> + <translation>Balances</translation> + </message> + <message> + <source>Total:</source> + <translation>Total:</translation> + </message> + <message> + <source>Your current total balance</source> + <translation>Your current total balance</translation> + </message> + <message> + <source>Your current balance in watch-only addresses</source> + <translation>Your current balance in watch-only addresses</translation> + </message> + <message> + <source>Spendable:</source> + <translation>Spendable:</translation> + </message> + <message> + <source>Recent transactions</source> + <translation>Recent transactions</translation> + </message> + <message> + <source>Unconfirmed transactions to watch-only addresses</source> + <translation>Unconfirmed transactions to watch-only addresses</translation> + </message> + <message> + <source>Mined balance in watch-only addresses that has not yet matured</source> + <translation>Mined balance in watch-only addresses that has not yet matured</translation> + </message> + <message> + <source>Current total balance in watch-only addresses</source> + <translation>Current total balance in watch-only addresses</translation> + </message> +</context> <context> <name>PaymentServer</name> - </context> + <message> + <source>Payment request error</source> + <translation>Payment request error</translation> + </message> + <message> + <source>Cannot start bitcoin: click-to-pay handler</source> + <translation>Cannot start bitcoin: click-to-pay handler</translation> + </message> + <message> + <source>URI handling</source> + <translation>URI handling</translation> + </message> + <message> + <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source> + <translation>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</translation> + </message> + <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Cannot process payment request because BIP70 is not supported.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</translation> + </message> + <message> + <source>Invalid payment address %1</source> + <translation>Invalid payment address %1</translation> + </message> + <message> + <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source> + <translation>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</translation> + </message> + <message> + <source>Payment request file handling</source> + <translation>Payment request file handling</translation> + </message> +</context> <context> <name>PeerTableModel</name> - </context> + <message> + <source>User Agent</source> + <translation>User Agent</translation> + </message> + <message> + <source>Node/Service</source> + <translation>Node/Service</translation> + </message> + <message> + <source>NodeId</source> + <translation>NodeId</translation> + </message> + <message> + <source>Ping</source> + <translation>Ping</translation> + </message> + <message> + <source>Sent</source> + <translation>Sent</translation> + </message> + <message> + <source>Received</source> + <translation>Received</translation> + </message> +</context> <context> <name>QObject</name> - </context> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>Enter a Bitcoin address (e.g. %1)</source> + <translation>Enter a Bitcoin address (e.g. %1)</translation> + </message> + <message> + <source>%1 d</source> + <translation>%1 d</translation> + </message> + <message> + <source>%1 h</source> + <translation>%1 h</translation> + </message> + <message> + <source>%1 m</source> + <translation>%1 m</translation> + </message> + <message> + <source>%1 s</source> + <translation>%1 s</translation> + </message> + <message> + <source>None</source> + <translation>None</translation> + </message> + <message> + <source>N/A</source> + <translation>N/A</translation> + </message> + <message> + <source>%1 ms</source> + <translation>%1 ms</translation> + </message> + <message numerus="yes"> + <source>%n second(s)</source> + <translation><numerusform>%n second</numerusform><numerusform>%n seconds</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n minute(s)</source> + <translation><numerusform>%n minute</numerusform><numerusform>%n minutes</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n hour(s)</source> + <translation><numerusform>%n hour</numerusform><numerusform>%n hours</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation><numerusform>%n day</numerusform><numerusform>%n days</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n week(s)</source> + <translation><numerusform>%n week</numerusform><numerusform>%n weeks</numerusform></translation> + </message> + <message> + <source>%1 and %2</source> + <translation>%1 and %2</translation> + </message> + <message numerus="yes"> + <source>%n year(s)</source> + <translation><numerusform>%n year</numerusform><numerusform>%n years</numerusform></translation> + </message> + <message> + <source>%1 B</source> + <translation>%1 B</translation> + </message> + <message> + <source>%1 KB</source> + <translation>%1 KB</translation> + </message> + <message> + <source>%1 MB</source> + <translation>%1 MB</translation> + </message> + <message> + <source>%1 GB</source> + <translation>%1 GB</translation> + </message> + <message> + <source>Error: Specified data directory "%1" does not exist.</source> + <translation>Error: Specified data directory "%1" does not exist.</translation> + </message> + <message> + <source>Error: Cannot parse configuration file: %1.</source> + <translation>Error: Cannot parse configuration file: %1.</translation> + </message> + <message> + <source>Error: %1</source> + <translation>Error: %1</translation> + </message> + <message> + <source>%1 didn't yet exit safely...</source> + <translation>%1 didn't yet exit safely...</translation> + </message> + <message> + <source>unknown</source> + <translation>unknown</translation> + </message> +</context> <context> <name>QRImageWidget</name> - </context> + <message> + <source>&Save Image...</source> + <translation>&Save Image...</translation> + </message> + <message> + <source>&Copy Image</source> + <translation>&Copy Image</translation> + </message> + <message> + <source>Resulting URI too long, try to reduce the text for label / message.</source> + <translation>Resulting URI too long, try to reduce the text for label / message.</translation> + </message> + <message> + <source>Error encoding URI into QR Code.</source> + <translation>Error encoding URI into QR Code.</translation> + </message> + <message> + <source>QR code support not available.</source> + <translation>QR code support not available.</translation> + </message> + <message> + <source>Save QR Code</source> + <translation>Save QR Code</translation> + </message> + <message> + <source>PNG Image (*.png)</source> + <translation>PNG Image (*.png)</translation> + </message> +</context> <context> <name>RPCConsole</name> - </context> + <message> + <source>N/A</source> + <translation>N/A</translation> + </message> + <message> + <source>Client version</source> + <translation>Client version</translation> + </message> + <message> + <source>&Information</source> + <translation>&Information</translation> + </message> + <message> + <source>General</source> + <translation>General</translation> + </message> + <message> + <source>Using BerkeleyDB version</source> + <translation>Using BerkeleyDB version</translation> + </message> + <message> + <source>Datadir</source> + <translation>Datadir</translation> + </message> + <message> + <source>To specify a non-default location of the data directory use the '%1' option.</source> + <translation>To specify a non-default location of the data directory use the '%1' option.</translation> + </message> + <message> + <source>Blocksdir</source> + <translation>Blocksdir</translation> + </message> + <message> + <source>To specify a non-default location of the blocks directory use the '%1' option.</source> + <translation>To specify a non-default location of the blocks directory use the '%1' option.</translation> + </message> + <message> + <source>Startup time</source> + <translation>Startup time</translation> + </message> + <message> + <source>Network</source> + <translation>Network</translation> + </message> + <message> + <source>Name</source> + <translation>Name</translation> + </message> + <message> + <source>Number of connections</source> + <translation>Number of connections</translation> + </message> + <message> + <source>Block chain</source> + <translation>Block chain</translation> + </message> + <message> + <source>Current number of blocks</source> + <translation>Current number of blocks</translation> + </message> + <message> + <source>Memory Pool</source> + <translation>Memory Pool</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Current number of transactions</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Memory usage</translation> + </message> + <message> + <source>Wallet: </source> + <translation>Wallet: </translation> + </message> + <message> + <source>(none)</source> + <translation>(none)</translation> + </message> + <message> + <source>&Reset</source> + <translation>&Reset</translation> + </message> + <message> + <source>Received</source> + <translation>Received</translation> + </message> + <message> + <source>Sent</source> + <translation>Sent</translation> + </message> + <message> + <source>&Peers</source> + <translation>&Peers</translation> + </message> + <message> + <source>Banned peers</source> + <translation>Banned peers</translation> + </message> + <message> + <source>Select a peer to view detailed information.</source> + <translation>Select a peer to view detailed information.</translation> + </message> + <message> + <source>Whitelisted</source> + <translation>Whitelisted</translation> + </message> + <message> + <source>Direction</source> + <translation>Direction</translation> + </message> + <message> + <source>Version</source> + <translation>Version</translation> + </message> + <message> + <source>Starting Block</source> + <translation>Starting Block</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Synced Headers</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Synced Blocks</translation> + </message> + <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>The mapped Autonomous System used for diversifying peer selection.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapped AS</translation> + </message> + <message> + <source>User Agent</source> + <translation>User Agent</translation> + </message> + <message> + <source>Node window</source> + <translation>Node window</translation> + </message> + <message> + <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> + <translation>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</translation> + </message> + <message> + <source>Decrease font size</source> + <translation>Decrease font size</translation> + </message> + <message> + <source>Increase font size</source> + <translation>Increase font size</translation> + </message> + <message> + <source>Services</source> + <translation>Services</translation> + </message> + <message> + <source>Ban Score</source> + <translation>Ban Score</translation> + </message> + <message> + <source>Connection Time</source> + <translation>Connection Time</translation> + </message> + <message> + <source>Last Send</source> + <translation>Last Send</translation> + </message> + <message> + <source>Last Receive</source> + <translation>Last Receive</translation> + </message> + <message> + <source>Ping Time</source> + <translation>Ping Time</translation> + </message> + <message> + <source>The duration of a currently outstanding ping.</source> + <translation>The duration of a currently outstanding ping.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Ping Wait</translation> + </message> + <message> + <source>Min Ping</source> + <translation>Min Ping</translation> + </message> + <message> + <source>Time Offset</source> + <translation>Time Offset</translation> + </message> + <message> + <source>Last block time</source> + <translation>Last block time</translation> + </message> + <message> + <source>&Open</source> + <translation>&Open</translation> + </message> + <message> + <source>&Console</source> + <translation>&Console</translation> + </message> + <message> + <source>&Network Traffic</source> + <translation>&Network Traffic</translation> + </message> + <message> + <source>Totals</source> + <translation>Totals</translation> + </message> + <message> + <source>In:</source> + <translation>In:</translation> + </message> + <message> + <source>Out:</source> + <translation>Out:</translation> + </message> + <message> + <source>Debug log file</source> + <translation>Debug log file</translation> + </message> + <message> + <source>Clear console</source> + <translation>Clear console</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &hour</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &day</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &week</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &year</translation> + </message> + <message> + <source>&Disconnect</source> + <translation>&Disconnect</translation> + </message> + <message> + <source>Ban for</source> + <translation>Ban for</translation> + </message> + <message> + <source>&Unban</source> + <translation>&Unban</translation> + </message> + <message> + <source>Welcome to the %1 RPC console.</source> + <translation>Welcome to the %1 RPC console.</translation> + </message> + <message> + <source>Use up and down arrows to navigate history, and %1 to clear screen.</source> + <translation>Use up and down arrows to navigate history, and %1 to clear screen.</translation> + </message> + <message> + <source>Type %1 for an overview of available commands.</source> + <translation>Type %1 for an overview of available commands.</translation> + </message> + <message> + <source>For more information on using this console type %1.</source> + <translation>For more information on using this console type %1.</translation> + </message> + <message> + <source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</source> + <translation>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</translation> + </message> + <message> + <source>Network activity disabled</source> + <translation>Network activity disabled</translation> + </message> + <message> + <source>Executing command without any wallet</source> + <translation>Executing command without any wallet</translation> + </message> + <message> + <source>Executing command using "%1" wallet</source> + <translation>Executing command using "%1" wallet</translation> + </message> + <message> + <source>(node id: %1)</source> + <translation>(node id: %1)</translation> + </message> + <message> + <source>via %1</source> + <translation>via %1</translation> + </message> + <message> + <source>never</source> + <translation>never</translation> + </message> + <message> + <source>Inbound</source> + <translation>Inbound</translation> + </message> + <message> + <source>Outbound</source> + <translation>Outbound</translation> + </message> + <message> + <source>Yes</source> + <translation>Yes</translation> + </message> + <message> + <source>No</source> + <translation>No</translation> + </message> + <message> + <source>Unknown</source> + <translation>Unknown</translation> + </message> +</context> <context> <name>ReceiveCoinsDialog</name> - </context> + <message> + <source>&Amount:</source> + <translation>&Amount:</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Label:</translation> + </message> + <message> + <source>&Message:</source> + <translation>&Message:</translation> + </message> + <message> + <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source> + <translation>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</translation> + </message> + <message> + <source>An optional label to associate with the new receiving address.</source> + <translation>An optional label to associate with the new receiving address.</translation> + </message> + <message> + <source>Use this form to request payments. All fields are <b>optional</b>.</source> + <translation>Use this form to request payments. All fields are <b>optional</b>.</translation> + </message> + <message> + <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source> + <translation>An optional amount to request. Leave this empty or zero to not request a specific amount.</translation> + </message> + <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>An optional message that is attached to the payment request and may be displayed to the sender.</translation> + </message> + <message> + <source>&Create new receiving address</source> + <translation>&Create new receiving address</translation> + </message> + <message> + <source>Clear all fields of the form.</source> + <translation>Clear all fields of the form.</translation> + </message> + <message> + <source>Clear</source> + <translation>Clear</translation> + </message> + <message> + <source>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</source> + <translation>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</translation> + </message> + <message> + <source>Generate native segwit (Bech32) address</source> + <translation>Generate native segwit (Bech32) address</translation> + </message> + <message> + <source>Requested payments history</source> + <translation>Requested payments history</translation> + </message> + <message> + <source>Show the selected request (does the same as double clicking an entry)</source> + <translation>Show the selected request (does the same as double clicking an entry)</translation> + </message> + <message> + <source>Show</source> + <translation>Show</translation> + </message> + <message> + <source>Remove the selected entries from the list</source> + <translation>Remove the selected entries from the list</translation> + </message> + <message> + <source>Remove</source> + <translation>Remove</translation> + </message> + <message> + <source>Copy URI</source> + <translation>Copy URI</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copy label</translation> + </message> + <message> + <source>Copy message</source> + <translation>Copy message</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copy amount</translation> + </message> +</context> <context> <name>ReceiveRequestDialog</name> <message> <source>QR Code</source> - <translation>QR কোড</translation> + <translation>QR Code</translation> + </message> + <message> + <source>Copy &URI</source> + <translation>Copy &URI</translation> + </message> + <message> + <source>Copy &Address</source> + <translation>Copy &Address</translation> + </message> + <message> + <source>&Save Image...</source> + <translation>&Save Image...</translation> + </message> + <message> + <source>Request payment to %1</source> + <translation>Request payment to %1</translation> + </message> + <message> + <source>Payment information</source> + <translation>Payment information</translation> + </message> + <message> + <source>URI</source> + <translation>URI</translation> </message> <message> <source>Address</source> - <translation>ঠিকানা </translation> + <translation>Address</translation> + </message> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + <message> + <source>Wallet</source> + <translation>Wallet</translation> </message> - </context> +</context> <context> <name>RecentRequestsTableModel</name> - </context> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> + </message> + <message> + <source>(no message)</source> + <translation>(no message)</translation> + </message> + <message> + <source>(no amount requested)</source> + <translation>(no amount requested)</translation> + </message> + <message> + <source>Requested</source> + <translation>Requested</translation> + </message> +</context> <context> <name>SendCoinsDialog</name> - </context> + <message> + <source>Send Coins</source> + <translation>Send Coins</translation> + </message> + <message> + <source>Coin Control Features</source> + <translation>Coin Control Features</translation> + </message> + <message> + <source>Inputs...</source> + <translation>Inputs...</translation> + </message> + <message> + <source>automatically selected</source> + <translation>automatically selected</translation> + </message> + <message> + <source>Insufficient funds!</source> + <translation>Insufficient funds!</translation> + </message> + <message> + <source>Quantity:</source> + <translation>Quantity:</translation> + </message> + <message> + <source>Bytes:</source> + <translation>Bytes:</translation> + </message> + <message> + <source>Amount:</source> + <translation>Amount:</translation> + </message> + <message> + <source>Fee:</source> + <translation>Fee:</translation> + </message> + <message> + <source>After Fee:</source> + <translation>After Fee:</translation> + </message> + <message> + <source>Change:</source> + <translation>Change:</translation> + </message> + <message> + <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source> + <translation>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</translation> + </message> + <message> + <source>Custom change address</source> + <translation>Custom change address</translation> + </message> + <message> + <source>Transaction Fee:</source> + <translation>Transaction Fee:</translation> + </message> + <message> + <source>Choose...</source> + <translation>Choose...</translation> + </message> + <message> + <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source> + <translation>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</translation> + </message> + <message> + <source>Warning: Fee estimation is currently not possible.</source> + <translation>Warning: Fee estimation is currently not possible.</translation> + </message> + <message> + <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. + +Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis.</source> + <translation>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. + +Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis.</translation> + </message> + <message> + <source>per kilobyte</source> + <translation>per kilobyte</translation> + </message> + <message> + <source>Hide</source> + <translation>Hide</translation> + </message> + <message> + <source>Recommended:</source> + <translation>Recommended:</translation> + </message> + <message> + <source>Custom:</source> + <translation>Custom:</translation> + </message> + <message> + <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> + <translation>(Smart fee not initialized yet. This usually takes a few blocks...)</translation> + </message> + <message> + <source>Send to multiple recipients at once</source> + <translation>Send to multiple recipients at once</translation> + </message> + <message> + <source>Add &Recipient</source> + <translation>Add &Recipient</translation> + </message> + <message> + <source>Clear all fields of the form.</source> + <translation>Clear all fields of the form.</translation> + </message> + <message> + <source>Dust:</source> + <translation>Dust:</translation> + </message> + <message> + <source>Hide transaction fee settings</source> + <translation>Hide transaction fee settings</translation> + </message> + <message> + <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</translation> + </message> + <message> + <source>A too low fee might result in a never confirming transaction (read the tooltip)</source> + <translation>A too low fee might result in a never confirming transaction (read the tooltip)</translation> + </message> + <message> + <source>Confirmation time target:</source> + <translation>Confirmation time target:</translation> + </message> + <message> + <source>Enable Replace-By-Fee</source> + <translation>Enable Replace-By-Fee</translation> + </message> + <message> + <source>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</source> + <translation>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</translation> + </message> + <message> + <source>Clear &All</source> + <translation>Clear &All</translation> + </message> + <message> + <source>Balance:</source> + <translation>Balance:</translation> + </message> + <message> + <source>Confirm the send action</source> + <translation>Confirm the send action</translation> + </message> + <message> + <source>S&end</source> + <translation>S&end</translation> + </message> + <message> + <source>Copy quantity</source> + <translation>Copy quantity</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copy amount</translation> + </message> + <message> + <source>Copy fee</source> + <translation>Copy fee</translation> + </message> + <message> + <source>Copy after fee</source> + <translation>Copy after fee</translation> + </message> + <message> + <source>Copy bytes</source> + <translation>Copy bytes</translation> + </message> + <message> + <source>Copy dust</source> + <translation>Copy dust</translation> + </message> + <message> + <source>Copy change</source> + <translation>Copy change</translation> + </message> + <message> + <source>%1 (%2 blocks)</source> + <translation>%1 (%2 blocks)</translation> + </message> + <message> + <source>Cr&eate Unsigned</source> + <translation>Cr&eate Unsigned</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</translation> + </message> + <message> + <source> from wallet '%1'</source> + <translation> from wallet '%1'</translation> + </message> + <message> + <source>%1 to '%2'</source> + <translation>%1 to '%2'</translation> + </message> + <message> + <source>%1 to %2</source> + <translation>%1 to %2</translation> + </message> + <message> + <source>Do you want to draft this transaction?</source> + <translation>Do you want to draft this transaction?</translation> + </message> + <message> + <source>Are you sure you want to send?</source> + <translation>Are you sure you want to send?</translation> + </message> + <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</translation> + </message> + <message> + <source>or</source> + <translation>or</translation> + </message> + <message> + <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source> + <translation>You can increase the fee later (signals Replace-By-Fee, BIP-125).</translation> + </message> + <message> + <source>Please, review your transaction.</source> + <translation>Please, review your transaction.</translation> + </message> + <message> + <source>Transaction fee</source> + <translation>Transaction fee</translation> + </message> + <message> + <source>Not signalling Replace-By-Fee, BIP-125.</source> + <translation>Not signalling Replace-By-Fee, BIP-125.</translation> + </message> + <message> + <source>Total Amount</source> + <translation>Total Amount</translation> + </message> + <message> + <source>To review recipient list click "Show Details..."</source> + <translation>To review recipient list click "Show Details..."</translation> + </message> + <message> + <source>Confirm send coins</source> + <translation>Confirm send coins</translation> + </message> + <message> + <source>Confirm transaction proposal</source> + <translation>Confirm transaction proposal</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Copy PSBT to clipboard</translation> + </message> + <message> + <source>Send</source> + <translation>Send</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT copied</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Watch-only balance:</translation> + </message> + <message> + <source>The recipient address is not valid. Please recheck.</source> + <translation>The recipient address is not valid. Please recheck.</translation> + </message> + <message> + <source>The amount to pay must be larger than 0.</source> + <translation>The amount to pay must be larger than 0.</translation> + </message> + <message> + <source>The amount exceeds your balance.</source> + <translation>The amount exceeds your balance.</translation> + </message> + <message> + <source>The total exceeds your balance when the %1 transaction fee is included.</source> + <translation>The total exceeds your balance when the %1 transaction fee is included.</translation> + </message> + <message> + <source>Duplicate address found: addresses should only be used once each.</source> + <translation>Duplicate address found: addresses should only be used once each.</translation> + </message> + <message> + <source>Transaction creation failed!</source> + <translation>Transaction creation failed!</translation> + </message> + <message> + <source>A fee higher than %1 is considered an absurdly high fee.</source> + <translation>A fee higher than %1 is considered an absurdly high fee.</translation> + </message> + <message> + <source>Payment request expired.</source> + <translation>Payment request expired.</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Estimated to begin confirmation within %n block.</numerusform><numerusform>Estimated to begin confirmation within %n blocks.</numerusform></translation> + </message> + <message> + <source>Warning: Invalid Bitcoin address</source> + <translation>Warning: Invalid Bitcoin address</translation> + </message> + <message> + <source>Warning: Unknown change address</source> + <translation>Warning: Unknown change address</translation> + </message> + <message> + <source>Confirm custom change address</source> + <translation>Confirm custom change address</translation> + </message> + <message> + <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source> + <translation>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> + </message> +</context> <context> <name>SendCoinsEntry</name> - </context> + <message> + <source>A&mount:</source> + <translation>A&mount:</translation> + </message> + <message> + <source>Pay &To:</source> + <translation>Pay &To:</translation> + </message> + <message> + <source>&Label:</source> + <translation>&Label:</translation> + </message> + <message> + <source>Choose previously used address</source> + <translation>Choose previously used address</translation> + </message> + <message> + <source>The Bitcoin address to send the payment to</source> + <translation>The Bitcoin address to send the payment to</translation> + </message> + <message> + <source>Alt+A</source> + <translation>Alt+A</translation> + </message> + <message> + <source>Paste address from clipboard</source> + <translation>Paste address from clipboard</translation> + </message> + <message> + <source>Alt+P</source> + <translation>Alt+P</translation> + </message> + <message> + <source>Remove this entry</source> + <translation>Remove this entry</translation> + </message> + <message> + <source>The amount to send in the selected unit</source> + <translation>The amount to send in the selected unit</translation> + </message> + <message> + <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> + <translation>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</translation> + </message> + <message> + <source>S&ubtract fee from amount</source> + <translation>S&ubtract fee from amount</translation> + </message> + <message> + <source>Use available balance</source> + <translation>Use available balance</translation> + </message> + <message> + <source>Message:</source> + <translation>Message:</translation> + </message> + <message> + <source>This is an unauthenticated payment request.</source> + <translation>This is an unauthenticated payment request.</translation> + </message> + <message> + <source>This is an authenticated payment request.</source> + <translation>This is an authenticated payment request.</translation> + </message> + <message> + <source>Enter a label for this address to add it to the list of used addresses</source> + <translation>Enter a label for this address to add it to the list of used addresses</translation> + </message> + <message> + <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source> + <translation>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</translation> + </message> + <message> + <source>Pay To:</source> + <translation>Pay To:</translation> + </message> + <message> + <source>Memo:</source> + <translation>Memo:</translation> + </message> +</context> <context> <name>ShutdownWindow</name> - </context> + <message> + <source>%1 is shutting down...</source> + <translation>%1 is shutting down...</translation> + </message> + <message> + <source>Do not shut down the computer until this window disappears.</source> + <translation>Do not shut down the computer until this window disappears.</translation> + </message> +</context> <context> <name>SignVerifyMessageDialog</name> <message> + <source>Signatures - Sign / Verify a Message</source> + <translation>Signatures - Sign / Verify a Message</translation> + </message> + <message> + <source>&Sign Message</source> + <translation>&Sign Message</translation> + </message> + <message> + <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source> + <translation>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</translation> + </message> + <message> + <source>The Bitcoin address to sign the message with</source> + <translation>The Bitcoin address to sign the message with</translation> + </message> + <message> + <source>Choose previously used address</source> + <translation>Choose previously used address</translation> + </message> + <message> + <source>Alt+A</source> + <translation>Alt+A</translation> + </message> + <message> + <source>Paste address from clipboard</source> + <translation>Paste address from clipboard</translation> + </message> + <message> + <source>Alt+P</source> + <translation>Alt+P</translation> + </message> + <message> + <source>Enter the message you want to sign here</source> + <translation>Enter the message you want to sign here</translation> + </message> + <message> + <source>Signature</source> + <translation>Signature</translation> + </message> + <message> + <source>Copy the current signature to the system clipboard</source> + <translation>Copy the current signature to the system clipboard</translation> + </message> + <message> + <source>Sign the message to prove you own this Bitcoin address</source> + <translation>Sign the message to prove you own this Bitcoin address</translation> + </message> + <message> + <source>Sign &Message</source> + <translation>Sign &Message</translation> + </message> + <message> + <source>Reset all sign message fields</source> + <translation>Reset all sign message fields</translation> + </message> + <message> + <source>Clear &All</source> + <translation>Clear &All</translation> + </message> + <message> + <source>&Verify Message</source> + <translation>&Verify Message</translation> + </message> + <message> + <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source> + <translation>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</translation> + </message> + <message> + <source>The Bitcoin address the message was signed with</source> + <translation>The Bitcoin address the message was signed with</translation> + </message> + <message> + <source>The signed message to verify</source> + <translation>The signed message to verify</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>The signature given when the message was signed</translation> + </message> + <message> + <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> + <translation>Verify the message to ensure it was signed with the specified Bitcoin address</translation> + </message> + <message> + <source>Verify &Message</source> + <translation>Verify &Message</translation> + </message> + <message> + <source>Reset all verify message fields</source> + <translation>Reset all verify message fields</translation> + </message> + <message> + <source>Click "Sign Message" to generate signature</source> + <translation>Click "Sign Message" to generate signature</translation> + </message> + <message> <source>The entered address is invalid.</source> - <translation>প্রবেশকৃত ঠিকানাটি শুদ্ধ নয়।</translation> + <translation>The entered address is invalid.</translation> + </message> + <message> + <source>Please check the address and try again.</source> + <translation>Please check the address and try again.</translation> + </message> + <message> + <source>The entered address does not refer to a key.</source> + <translation>The entered address does not refer to a key.</translation> + </message> + <message> + <source>Wallet unlock was cancelled.</source> + <translation>Wallet unlock was cancelled.</translation> + </message> + <message> + <source>No error</source> + <translation>No error</translation> + </message> + <message> + <source>Private key for the entered address is not available.</source> + <translation>Private key for the entered address is not available.</translation> + </message> + <message> + <source>Message signing failed.</source> + <translation>Message signing failed.</translation> + </message> + <message> + <source>Message signed.</source> + <translation>Message signed.</translation> + </message> + <message> + <source>The signature could not be decoded.</source> + <translation>The signature could not be decoded.</translation> </message> <message> <source>Please check the signature and try again.</source> - <translation>অনুগ্রহ করে স্বাক্ষরটি পুনরায় পরীক্ষা করে আবারও চেষ্টা করুন।</translation> + <translation>Please check the signature and try again.</translation> + </message> + <message> + <source>The signature did not match the message digest.</source> + <translation>The signature did not match the message digest.</translation> + </message> + <message> + <source>Message verification failed.</source> + <translation>Message verification failed.</translation> + </message> + <message> + <source>Message verified.</source> + <translation>Message verified.</translation> </message> - </context> +</context> <context> <name>TrafficGraphWidget</name> - </context> + <message> + <source>KB/s</source> + <translation>KB/s</translation> + </message> +</context> <context> <name>TransactionDesc</name> - </context> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Open for %n more block</numerusform><numerusform>Open for %n more blocks</numerusform></translation> + </message> + <message> + <source>Open until %1</source> + <translation>Open until %1</translation> + </message> + <message> + <source>conflicted with a transaction with %1 confirmations</source> + <translation>conflicted with a transaction with %1 confirmations</translation> + </message> + <message> + <source>0/unconfirmed, %1</source> + <translation>0/unconfirmed, %1</translation> + </message> + <message> + <source>in memory pool</source> + <translation>in memory pool</translation> + </message> + <message> + <source>not in memory pool</source> + <translation>not in memory pool</translation> + </message> + <message> + <source>abandoned</source> + <translation>abandoned</translation> + </message> + <message> + <source>%1/unconfirmed</source> + <translation>%1/unconfirmed</translation> + </message> + <message> + <source>%1 confirmations</source> + <translation>%1 confirmations</translation> + </message> + <message> + <source>Status</source> + <translation>Status</translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Source</source> + <translation>Source</translation> + </message> + <message> + <source>Generated</source> + <translation>Generated</translation> + </message> + <message> + <source>From</source> + <translation>From</translation> + </message> + <message> + <source>unknown</source> + <translation>unknown</translation> + </message> + <message> + <source>To</source> + <translation>To</translation> + </message> + <message> + <source>own address</source> + <translation>own address</translation> + </message> + <message> + <source>watch-only</source> + <translation>watch-only</translation> + </message> + <message> + <source>label</source> + <translation>label</translation> + </message> + <message> + <source>Credit</source> + <translation>Credit</translation> + </message> + <message numerus="yes"> + <source>matures in %n more block(s)</source> + <translation><numerusform>matures in %n more block</numerusform><numerusform>matures in %n more blocks</numerusform></translation> + </message> + <message> + <source>not accepted</source> + <translation>not accepted</translation> + </message> + <message> + <source>Debit</source> + <translation>Debit</translation> + </message> + <message> + <source>Total debit</source> + <translation>Total debit</translation> + </message> + <message> + <source>Total credit</source> + <translation>Total credit</translation> + </message> + <message> + <source>Transaction fee</source> + <translation>Transaction fee</translation> + </message> + <message> + <source>Net amount</source> + <translation>Net amount</translation> + </message> + <message> + <source>Message</source> + <translation>Message</translation> + </message> + <message> + <source>Comment</source> + <translation>Comment</translation> + </message> + <message> + <source>Transaction ID</source> + <translation>Transaction ID</translation> + </message> + <message> + <source>Transaction total size</source> + <translation>Transaction total size</translation> + </message> + <message> + <source>Transaction virtual size</source> + <translation>Transaction virtual size</translation> + </message> + <message> + <source>Output index</source> + <translation>Output index</translation> + </message> + <message> + <source> (Certificate was not verified)</source> + <translation> (Certificate was not verified)</translation> + </message> + <message> + <source>Merchant</source> + <translation>Merchant</translation> + </message> + <message> + <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source> + <translation>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</translation> + </message> + <message> + <source>Debug information</source> + <translation>Debug information</translation> + </message> + <message> + <source>Transaction</source> + <translation>Transaction</translation> + </message> + <message> + <source>Inputs</source> + <translation>Inputs</translation> + </message> + <message> + <source>Amount</source> + <translation>Amount</translation> + </message> + <message> + <source>true</source> + <translation>true</translation> + </message> + <message> + <source>false</source> + <translation>false</translation> + </message> +</context> <context> <name>TransactionDescDialog</name> - </context> + <message> + <source>This pane shows a detailed description of the transaction</source> + <translation>This pane shows a detailed description of the transaction</translation> + </message> + <message> + <source>Details for %1</source> + <translation>Details for %1</translation> + </message> +</context> <context> <name>TransactionTableModel</name> - </context> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Type</source> + <translation>Type</translation> + </message> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Open for %n more block</numerusform><numerusform>Open for %n more blocks</numerusform></translation> + </message> + <message> + <source>Open until %1</source> + <translation>Open until %1</translation> + </message> + <message> + <source>Unconfirmed</source> + <translation>Unconfirmed</translation> + </message> + <message> + <source>Abandoned</source> + <translation>Abandoned</translation> + </message> + <message> + <source>Confirming (%1 of %2 recommended confirmations)</source> + <translation>Confirming (%1 of %2 recommended confirmations)</translation> + </message> + <message> + <source>Confirmed (%1 confirmations)</source> + <translation>Confirmed (%1 confirmations)</translation> + </message> + <message> + <source>Conflicted</source> + <translation>Conflicted</translation> + </message> + <message> + <source>Immature (%1 confirmations, will be available after %2)</source> + <translation>Immature (%1 confirmations, will be available after %2)</translation> + </message> + <message> + <source>Generated but not accepted</source> + <translation>Generated but not accepted</translation> + </message> + <message> + <source>Received with</source> + <translation>Received with</translation> + </message> + <message> + <source>Received from</source> + <translation>Received from</translation> + </message> + <message> + <source>Sent to</source> + <translation>Sent to</translation> + </message> + <message> + <source>Payment to yourself</source> + <translation>Payment to yourself</translation> + </message> + <message> + <source>Mined</source> + <translation>Mined</translation> + </message> + <message> + <source>watch-only</source> + <translation>watch-only</translation> + </message> + <message> + <source>(n/a)</source> + <translation>(n/a)</translation> + </message> + <message> + <source>(no label)</source> + <translation>(no label)</translation> + </message> + <message> + <source>Transaction status. Hover over this field to show number of confirmations.</source> + <translation>Transaction status. Hover over this field to show number of confirmations.</translation> + </message> + <message> + <source>Date and time that the transaction was received.</source> + <translation>Date and time that the transaction was received.</translation> + </message> + <message> + <source>Type of transaction.</source> + <translation>Type of transaction.</translation> + </message> + <message> + <source>Whether or not a watch-only address is involved in this transaction.</source> + <translation>Whether or not a watch-only address is involved in this transaction.</translation> + </message> + <message> + <source>User-defined intent/purpose of the transaction.</source> + <translation>User-defined intent/purpose of the transaction.</translation> + </message> + <message> + <source>Amount removed from or added to balance.</source> + <translation>Amount removed from or added to balance.</translation> + </message> +</context> <context> <name>TransactionView</name> <message> + <source>All</source> + <translation>All</translation> + </message> + <message> + <source>Today</source> + <translation>Today</translation> + </message> + <message> + <source>This week</source> + <translation>This week</translation> + </message> + <message> + <source>This month</source> + <translation>This month</translation> + </message> + <message> + <source>Last month</source> + <translation>Last month</translation> + </message> + <message> + <source>This year</source> + <translation>This year</translation> + </message> + <message> + <source>Range...</source> + <translation>Range...</translation> + </message> + <message> + <source>Received with</source> + <translation>Received with</translation> + </message> + <message> + <source>Sent to</source> + <translation>Sent to</translation> + </message> + <message> + <source>To yourself</source> + <translation>To yourself</translation> + </message> + <message> + <source>Mined</source> + <translation>Mined</translation> + </message> + <message> + <source>Other</source> + <translation>Other</translation> + </message> + <message> + <source>Enter address, transaction id, or label to search</source> + <translation>Enter address, transaction id, or label to search</translation> + </message> + <message> + <source>Min amount</source> + <translation>Min amount</translation> + </message> + <message> + <source>Abandon transaction</source> + <translation>Abandon transaction</translation> + </message> + <message> + <source>Increase transaction fee</source> + <translation>Increase transaction fee</translation> + </message> + <message> + <source>Copy address</source> + <translation>Copy address</translation> + </message> + <message> + <source>Copy label</source> + <translation>Copy label</translation> + </message> + <message> + <source>Copy amount</source> + <translation>Copy amount</translation> + </message> + <message> + <source>Copy transaction ID</source> + <translation>Copy transaction ID</translation> + </message> + <message> + <source>Copy raw transaction</source> + <translation>Copy raw transaction</translation> + </message> + <message> + <source>Copy full transaction details</source> + <translation>Copy full transaction details</translation> + </message> + <message> + <source>Edit label</source> + <translation>Edit label</translation> + </message> + <message> + <source>Show transaction details</source> + <translation>Show transaction details</translation> + </message> + <message> + <source>Export Transaction History</source> + <translation>Export Transaction History</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Comma separated file (*.csv)</translation> + </message> + <message> + <source>Confirmed</source> + <translation>Confirmed</translation> + </message> + <message> + <source>Watch-only</source> + <translation>Watch-only</translation> + </message> + <message> + <source>Date</source> + <translation>Date</translation> + </message> + <message> + <source>Type</source> + <translation>Type</translation> + </message> + <message> + <source>Label</source> + <translation>Label</translation> + </message> + <message> <source>Address</source> - <translation>ঠিকানা </translation> + <translation>Address</translation> + </message> + <message> + <source>ID</source> + <translation>ID</translation> </message> - </context> + <message> + <source>Exporting Failed</source> + <translation>Exporting Failed</translation> + </message> + <message> + <source>There was an error trying to save the transaction history to %1.</source> + <translation>There was an error trying to save the transaction history to %1.</translation> + </message> + <message> + <source>Exporting Successful</source> + <translation>Exporting Successful</translation> + </message> + <message> + <source>The transaction history was successfully saved to %1.</source> + <translation>The transaction history was successfully saved to %1.</translation> + </message> + <message> + <source>Range:</source> + <translation>Range:</translation> + </message> + <message> + <source>to</source> + <translation>to</translation> + </message> +</context> <context> <name>UnitDisplayStatusBarControl</name> - </context> + <message> + <source>Unit to show amounts in. Click to select another unit.</source> + <translation>Unit to show amounts in. Click to select another unit.</translation> + </message> +</context> <context> <name>WalletController</name> - </context> + <message> + <source>Close wallet</source> + <translation>Close wallet</translation> + </message> + <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Are you sure you wish to close the wallet <i>%1</i>?</translation> + </message> + <message> + <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> + <translation>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</translation> + </message> +</context> <context> <name>WalletFrame</name> - </context> + <message> + <source>No wallet has been loaded.</source> + <translation>No wallet has been loaded.</translation> + </message> +</context> <context> <name>WalletModel</name> - </context> + <message> + <source>Send Coins</source> + <translation>Send Coins</translation> + </message> + <message> + <source>Fee bump error</source> + <translation>Fee bump error</translation> + </message> + <message> + <source>Increasing transaction fee failed</source> + <translation>Increasing transaction fee failed</translation> + </message> + <message> + <source>Do you want to increase the fee?</source> + <translation>Do you want to increase the fee?</translation> + </message> + <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Do you want to draft a transaction with fee increase?</translation> + </message> + <message> + <source>Current fee:</source> + <translation>Current fee:</translation> + </message> + <message> + <source>Increase:</source> + <translation>Increase:</translation> + </message> + <message> + <source>New fee:</source> + <translation>New fee:</translation> + </message> + <message> + <source>Confirm fee bump</source> + <translation>Confirm fee bump</translation> + </message> + <message> + <source>Can't draft transaction.</source> + <translation>Can't draft transaction.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT copied</translation> + </message> + <message> + <source>Can't sign transaction.</source> + <translation>Can't sign transaction.</translation> + </message> + <message> + <source>Could not commit transaction</source> + <translation>Could not commit transaction</translation> + </message> + <message> + <source>default wallet</source> + <translation>default wallet</translation> + </message> +</context> <context> <name>WalletView</name> - </context> + <message> + <source>&Export</source> + <translation>&Export</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Export the data in the current tab to a file</translation> + </message> + <message> + <source>Backup Wallet</source> + <translation>Backup Wallet</translation> + </message> + <message> + <source>Wallet Data (*.dat)</source> + <translation>Wallet Data (*.dat)</translation> + </message> + <message> + <source>Backup Failed</source> + <translation>Backup Failed</translation> + </message> + <message> + <source>There was an error trying to save the wallet data to %1.</source> + <translation>There was an error trying to save the wallet data to %1.</translation> + </message> + <message> + <source>Backup Successful</source> + <translation>Backup Successful</translation> + </message> + <message> + <source>The wallet data was successfully saved to %1.</source> + <translation>The wallet data was successfully saved to %1.</translation> + </message> + <message> + <source>Cancel</source> + <translation>Cancel</translation> + </message> +</context> <context> <name>bitcoin-core</name> <message> + <source>Distributed under the MIT software license, see the accompanying file %s or %s</source> + <translation>Distributed under the MIT software license, see the accompanying file %s or %s</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>Prune configured below the minimum of %d MiB. Please use a higher number.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</translation> + </message> + <message> + <source>Error: A fatal internal error occurred, see debug.log for details</source> + <translation>Error: A fatal internal error occurred, see debug.log for details</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Pruning blockstore...</translation> + </message> + <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Unable to start HTTP server. See debug log for details.</translation> + </message> + <message> + <source>The %s developers</source> + <translation>The %s developers</translation> + </message> + <message> + <source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source> + <translation>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</translation> + </message> + <message> + <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> + <translation>Cannot obtain a lock on data directory %s. %s is probably already running.</translation> + </message> + <message> + <source>Cannot provide specific connections and have addrman find outgoing connections at the same.</source> + <translation>Cannot provide specific connections and have addrman find outgoing connections at the same.</translation> + </message> + <message> + <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source> + <translation>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</translation> + </message> + <message> + <source>Please contribute if you find %s useful. Visit %s for further information about the software.</source> + <translation>Please contribute if you find %s useful. Visit %s for further information about the software.</translation> + </message> + <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</translation> + </message> + <message> + <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> + <translation>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</translation> + </message> + <message> + <source>This is the transaction fee you may discard if change is smaller than dust at this level</source> + <translation>This is the transaction fee you may discard if change is smaller than dust at this level</translation> + </message> + <message> + <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source> + <translation>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</translation> + </message> + <message> + <source>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</source> + <translation>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</translation> + </message> + <message> + <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> + <translation>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</translation> + </message> + <message> + <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source> + <translation>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</translation> + </message> + <message> + <source>%d of last 100 blocks have unexpected version</source> + <translation>%d of last 100 blocks have unexpected version</translation> + </message> + <message> + <source>%s corrupt, salvage failed</source> + <translation>%s corrupt, salvage failed</translation> + </message> + <message> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool must be at least %d MB</translation> + </message> + <message> + <source>Cannot resolve -%s address: '%s'</source> + <translation>Cannot resolve -%s address: '%s'</translation> + </message> + <message> + <source>Change index out of range</source> + <translation>Change index out of range</translation> + </message> + <message> + <source>Config setting for %s only applied on %s network when in [%s] section.</source> + <translation>Config setting for %s only applied on %s network when in [%s] section.</translation> + </message> + <message> + <source>Copyright (C) %i-%i</source> + <translation>Copyright (C) %i-%i</translation> + </message> + <message> + <source>Corrupted block database detected</source> + <translation>Corrupted block database detected</translation> + </message> + <message> + <source>Could not find asmap file %s</source> + <translation>Could not find asmap file %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Could not parse asmap file %s</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> - <translation>আপনি কি পুনরায় ব্লক ডাটাবেইজ এখনই তৈরি করতে চান?</translation> + <translation>Do you want to rebuild the block database now?</translation> + </message> + <message> + <source>Error initializing block database</source> + <translation>Error initializing block database</translation> + </message> + <message> + <source>Error initializing wallet database environment %s!</source> + <translation>Error initializing wallet database environment %s!</translation> + </message> + <message> + <source>Error loading %s</source> + <translation>Error loading %s</translation> + </message> + <message> + <source>Error loading %s: Private keys can only be disabled during creation</source> + <translation>Error loading %s: Private keys can only be disabled during creation</translation> + </message> + <message> + <source>Error loading %s: Wallet corrupted</source> + <translation>Error loading %s: Wallet corrupted</translation> + </message> + <message> + <source>Error loading %s: Wallet requires newer version of %s</source> + <translation>Error loading %s: Wallet requires newer version of %s</translation> + </message> + <message> + <source>Error loading block database</source> + <translation>Error loading block database</translation> + </message> + <message> + <source>Error opening block database</source> + <translation>Error opening block database</translation> + </message> + <message> + <source>Failed to listen on any port. Use -listen=0 if you want this.</source> + <translation>Failed to listen on any port. Use -listen=0 if you want this.</translation> + </message> + <message> + <source>Failed to rescan the wallet during initialization</source> + <translation>Failed to rescan the wallet during initialization</translation> + </message> + <message> + <source>Importing...</source> + <translation>Importing...</translation> + </message> + <message> + <source>Incorrect or no genesis block found. Wrong datadir for network?</source> + <translation>Incorrect or no genesis block found. Wrong datadir for network?</translation> + </message> + <message> + <source>Initialization sanity check failed. %s is shutting down.</source> + <translation>Initialization sanity check failed. %s is shutting down.</translation> + </message> + <message> + <source>Invalid P2P permission: '%s'</source> + <translation>Invalid P2P permission: '%s'</translation> + </message> + <message> + <source>Invalid amount for -%s=<amount>: '%s'</source> + <translation>Invalid amount for -%s=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -discardfee=<amount>: '%s'</source> + <translation>Invalid amount for -discardfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -fallbackfee=<amount>: '%s'</source> + <translation>Invalid amount for -fallbackfee=<amount>: '%s'</translation> + </message> + <message> + <source>Specified blocks directory "%s" does not exist.</source> + <translation>Specified blocks directory "%s" does not exist.</translation> + </message> + <message> + <source>Unknown address type '%s'</source> + <translation>Unknown address type '%s'</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>Unknown change type '%s'</translation> + </message> + <message> + <source>Upgrading txindex database</source> + <translation>Upgrading txindex database</translation> + </message> + <message> + <source>Loading P2P addresses...</source> + <translation>Loading P2P addresses...</translation> + </message> + <message> + <source>Error: Disk space is too low!</source> + <translation>Error: Disk space is too low!</translation> + </message> + <message> + <source>Loading banlist...</source> + <translation>Loading banlist...</translation> + </message> + <message> + <source>Not enough file descriptors available.</source> + <translation>Not enough file descriptors available.</translation> + </message> + <message> + <source>Prune cannot be configured with a negative value.</source> + <translation>Prune cannot be configured with a negative value.</translation> + </message> + <message> + <source>Prune mode is incompatible with -txindex.</source> + <translation>Prune mode is incompatible with -txindex.</translation> + </message> + <message> + <source>Replaying blocks...</source> + <translation>Replaying blocks...</translation> + </message> + <message> + <source>Rewinding blocks...</source> + <translation>Rewinding blocks...</translation> + </message> + <message> + <source>The source code is available from %s.</source> + <translation>The source code is available from %s.</translation> + </message> + <message> + <source>Transaction fee and change calculation failed</source> + <translation>Transaction fee and change calculation failed</translation> + </message> + <message> + <source>Unable to bind to %s on this computer. %s is probably already running.</source> + <translation>Unable to bind to %s on this computer. %s is probably already running.</translation> + </message> + <message> + <source>Unable to generate keys</source> + <translation>Unable to generate keys</translation> + </message> + <message> + <source>Unsupported logging category %s=%s.</source> + <translation>Unsupported logging category %s=%s.</translation> + </message> + <message> + <source>Upgrading UTXO database</source> + <translation>Upgrading UTXO database</translation> + </message> + <message> + <source>User Agent comment (%s) contains unsafe characters.</source> + <translation>User Agent comment (%s) contains unsafe characters.</translation> + </message> + <message> + <source>Verifying blocks...</source> + <translation>Verifying blocks...</translation> + </message> + <message> + <source>Wallet needed to be rewritten: restart %s to complete</source> + <translation>Wallet needed to be rewritten: restart %s to complete</translation> + </message> + <message> + <source>Error: Listening for incoming connections failed (listen returned error %s)</source> + <translation>Error: Listening for incoming connections failed (listen returned error %s)</translation> + </message> + <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> + <translation>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</translation> + </message> + <message> + <source>The transaction amount is too small to send after the fee has been deducted</source> + <translation>The transaction amount is too small to send after the fee has been deducted</translation> + </message> + <message> + <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> + <translation>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</translation> + </message> + <message> + <source>Error reading from database, shutting down.</source> + <translation>Error reading from database, shutting down.</translation> + </message> + <message> + <source>Error upgrading chainstate database</source> + <translation>Error upgrading chainstate database</translation> + </message> + <message> + <source>Error: Disk space is low for %s</source> + <translation>Error: Disk space is low for %s</translation> + </message> + <message> + <source>Invalid -onion address or hostname: '%s'</source> + <translation>Invalid -onion address or hostname: '%s'</translation> + </message> + <message> + <source>Invalid -proxy address or hostname: '%s'</source> + <translation>Invalid -proxy address or hostname: '%s'</translation> + </message> + <message> + <source>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</source> + <translation>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</translation> + </message> + <message> + <source>Invalid netmask specified in -whitelist: '%s'</source> + <translation>Invalid netmask specified in -whitelist: '%s'</translation> + </message> + <message> + <source>Need to specify a port with -whitebind: '%s'</source> + <translation>Need to specify a port with -whitebind: '%s'</translation> + </message> + <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>Prune mode is incompatible with -blockfilterindex.</translation> + </message> + <message> + <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> + <translation>Reducing -maxconnections from %d to %d, because of system limitations.</translation> + </message> + <message> + <source>Section [%s] is not recognized.</source> + <translation>Section [%s] is not recognized.</translation> + </message> + <message> + <source>Signing transaction failed</source> + <translation>Signing transaction failed</translation> + </message> + <message> + <source>Specified -walletdir "%s" does not exist</source> + <translation>Specified -walletdir "%s" does not exist</translation> + </message> + <message> + <source>Specified -walletdir "%s" is a relative path</source> + <translation>Specified -walletdir "%s" is a relative path</translation> + </message> + <message> + <source>Specified -walletdir "%s" is not a directory</source> + <translation>Specified -walletdir "%s" is not a directory</translation> + </message> + <message> + <source>The specified config file %s does not exist +</source> + <translation>The specified config file %s does not exist +</translation> + </message> + <message> + <source>The transaction amount is too small to pay the fee</source> + <translation>The transaction amount is too small to pay the fee</translation> </message> <message> <source>This is experimental software.</source> - <translation>এটি পরীক্ষামূলক সফটওয়্যার।</translation> + <translation>This is experimental software.</translation> </message> <message> <source>Transaction amount too small</source> - <translation>লেনদেনের পরিমান অনেক ছোট</translation> + <translation>Transaction amount too small</translation> </message> <message> <source>Transaction too large</source> - <translation>লেনদেনর অংক অনেক বড়</translation> + <translation>Transaction too large</translation> + </message> + <message> + <source>Unable to bind to %s on this computer (bind returned error %s)</source> + <translation>Unable to bind to %s on this computer (bind returned error %s)</translation> + </message> + <message> + <source>Unable to create the PID file '%s': %s</source> + <translation>Unable to create the PID file '%s': %s</translation> + </message> + <message> + <source>Unable to generate initial keys</source> + <translation>Unable to generate initial keys</translation> + </message> + <message> + <source>Unknown -blockfilterindex value %s.</source> + <translation>Unknown -blockfilterindex value %s.</translation> + </message> + <message> + <source>Verifying wallet(s)...</source> + <translation>Verifying wallet(s)...</translation> + </message> + <message> + <source>Warning: unknown new rules activated (versionbit %i)</source> + <translation>Warning: unknown new rules activated (versionbit %i)</translation> + </message> + <message> + <source>Zapping all transactions from wallet...</source> + <translation>Zapping all transactions from wallet...</translation> + </message> + <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</translation> + </message> + <message> + <source>This is the transaction fee you may pay when fee estimates are not available.</source> + <translation>This is the transaction fee you may pay when fee estimates are not available.</translation> + </message> + <message> + <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> + <translation>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</translation> + </message> + <message> + <source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source> + <translation>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</translation> + </message> + <message> + <source>%s is set very high!</source> + <translation>%s is set very high!</translation> + </message> + <message> + <source>Error loading wallet %s. Duplicate -wallet filename specified.</source> + <translation>Error loading wallet %s. Duplicate -wallet filename specified.</translation> + </message> + <message> + <source>Starting network threads...</source> + <translation>Starting network threads...</translation> + </message> + <message> + <source>The wallet will avoid paying less than the minimum relay fee.</source> + <translation>The wallet will avoid paying less than the minimum relay fee.</translation> + </message> + <message> + <source>This is the minimum transaction fee you pay on every transaction.</source> + <translation>This is the minimum transaction fee you pay on every transaction.</translation> + </message> + <message> + <source>This is the transaction fee you will pay if you send a transaction.</source> + <translation>This is the transaction fee you will pay if you send a transaction.</translation> + </message> + <message> + <source>Transaction amounts must not be negative</source> + <translation>Transaction amounts must not be negative</translation> + </message> + <message> + <source>Transaction has too long of a mempool chain</source> + <translation>Transaction has too long of a mempool chain</translation> + </message> + <message> + <source>Transaction must have at least one recipient</source> + <translation>Transaction must have at least one recipient</translation> + </message> + <message> + <source>Unknown network specified in -onlynet: '%s'</source> + <translation>Unknown network specified in -onlynet: '%s'</translation> + </message> + <message> + <source>Insufficient funds</source> + <translation>Insufficient funds</translation> + </message> + <message> + <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> + <translation>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</translation> + </message> + <message> + <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> + <translation>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</translation> + </message> + <message> + <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source> + <translation>Warning: Private keys detected in wallet {%s} with disabled private keys</translation> + </message> + <message> + <source>Cannot write to data directory '%s'; check permissions.</source> + <translation>Cannot write to data directory '%s'; check permissions.</translation> + </message> + <message> + <source>Loading block index...</source> + <translation>Loading block index...</translation> + </message> + <message> + <source>Loading wallet...</source> + <translation>Loading wallet...</translation> + </message> + <message> + <source>Cannot downgrade wallet</source> + <translation>Cannot downgrade wallet</translation> + </message> + <message> + <source>Rescanning...</source> + <translation>Rescanning...</translation> + </message> + <message> + <source>Done loading</source> + <translation>Done loading</translation> </message> - </context> +</context> </TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index e14fc3097e..c5a0d398ff 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -3,7 +3,7 @@ <name>AddressBookPage</name> <message> <source>Right-click to edit address or label</source> - <translation>Feu clic dret per a editar l'adreça o l'etiqueta</translation> + <translation>Feu clic al botó dret per a editar l'adreça o l'etiqueta</translation> </message> <message> <source>Create a new address</source> @@ -70,6 +70,10 @@ <translation>Aquestes són les vostres adreces de Bitcoin per enviar els pagaments. Sempre reviseu l'import i l'adreça del destinatari abans de transferir monedes.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>Aquestes són les teves adreces Bitcoin per rebre pagaments. Utilitza el botó "Crear nova adreça de recepció" de la pestanya de recepció per crear noves adreces.</translation> + </message> + <message> <source>&Copy Address</source> <translation>&Copia l'adreça</translation> </message> @@ -184,6 +188,10 @@ <translation>Introduïu la contrasenya antiga i la contrasenya nova a la cartera.</translation> </message> <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>Recorda que tot i xifrant la teva cartera, els teus bitcoins no estan completament protegits de robatori a través de programari maliciós que estigui infectant el teu ordinador.</translation> + </message> + <message> <source>Wallet to be encrypted</source> <translation>Cartera per ser encriptada</translation> </message> @@ -283,7 +291,7 @@ </message> <message> <source>Show information about %1</source> - <translation>Mosta informació sobre el %1</translation> + <translation>Mostra informació sobre el %1</translation> </message> <message> <source>About &Qt</source> @@ -318,6 +326,14 @@ <translation>Obre un &URI...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>Crear Cartera...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Crear una nova cartera</translation> + </message> + <message> <source>Wallet:</source> <translation>Moneder:</translation> </message> @@ -421,6 +437,10 @@ <source>&Command-line options</source> <translation>Opcions de la &línia d'ordres</translation> </message> + <message numerus="yes"> + <source>%n active connection(s) to Bitcoin network</source> + <translation><numerusform>Una connexió activa a la xarxa de Bitcoin</numerusform><numerusform>%n connexions actives a la xarxa de Bitcoin</numerusform></translation> + </message> <message> <source>Indexing blocks on disk...</source> <translation>S'estan indexant els blocs al disc...</translation> @@ -429,6 +449,10 @@ <source>Processing blocks on disk...</source> <translation>S'estan processant els blocs al disc...</translation> </message> + <message numerus="yes"> + <source>Processed %n block(s) of transaction history.</source> + <translation><numerusform>Processat un bloc de l'historial de transaccions.</numerusform><numerusform>Processat %n blocs de l'historial de transaccions.</numerusform></translation> + </message> <message> <source>%1 behind</source> <translation>%1 darrere</translation> @@ -458,6 +482,14 @@ <translation>Actualitzat</translation> </message> <message> + <source>Node window</source> + <translation>Finestra node</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Obrir depurador de node i consola de diagnosi.</translation> + </message> + <message> <source>&Sending addresses</source> <translation>Adreces d'&enviament</translation> </message> @@ -466,12 +498,16 @@ <translation>Adreces de &recepció</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Obrir un bitcoin: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Obre la cartera</translation> </message> <message> <source>Open a wallet</source> - <translation>Obre la cartera</translation> + <translation>Obre una cartera</translation> </message> <message> <source>Close Wallet...</source> @@ -526,6 +562,10 @@ <translation>Avís: %1</translation> </message> <message> + <source>Warning: %1</source> + <translation>Avís: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>Data: %1 @@ -747,10 +787,59 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>Creant cartera <b>%1</b>...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>La creació de cartera ha fallat</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Avís en la creació de la cartera</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Crear cartera</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Nom de la cartera</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Xifra la cartera. La cartera serà xifrada amb la contrasenya que escullis.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Xifrar la cartera</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Deshabilita les claus privades per a aquesta cartera. Carteres amb claus privades deshabilitades no tindran cap clau privada i no podran tenir cap llavor HD o importar claus privades. +Això és ideal per a carteres de mode només lectura.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Deshabilitar claus privades</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Crea una cartera en blanc. Carteres en blanc no tenen claus privades inicialment o scripts. Claus privades i adreces poden ser importades, o una llavor HD, més endavant.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Fes cartera en blanc</translation> + </message> + <message> + <source>Create</source> + <translation>Crear</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -856,13 +945,17 @@ </message> <message> <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source> - <translation>Com és la primera vegada que s'executa el programa, podeu triar on %1 emmagatzemarà les dades.</translation> + <translation>Com és la primera vegada que s'executa el programa, podeu triar on %1 emmagatzemaran les dades.</translation> </message> <message> <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source> <translation>Quan feu clic a D'acord, %1 començarà a descarregar i processar la cadena de blocs %4 completa (%2 GB) començant per les primeres transaccions de %3, any de llençament inicial de %4.</translation> </message> <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Desfer aquest canvi requereix tornar-se a descarregar el blockchain sencer. És més ràpid descarregar la cadena completa primer i després podar. Deshabilita algunes de les característiques avançades.</translation> + </message> + <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> <translation>Aquesta sincronització inicial és molt exigent i pot exposar problemes de maquinari amb l'equip que anteriorment havien passat desapercebuts. Cada vegada que executeu %1, continuarà descarregant des del punt on es va deixar.</translation> </message> @@ -883,6 +976,10 @@ <translation>Bitcoin</translation> </message> <message> + <source>Discard blocks after verification, except most recent %1 GB (prune)</source> + <translation>Descarta blocs després de la verificació, excepte el més recent %1 GB (podar)</translation> + </message> + <message> <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> <translation>Almenys %1 GB de dades s'emmagatzemaran en aquest directori, i creixerà amb el temps.</translation> </message> @@ -906,7 +1003,19 @@ <source>Error</source> <translation>Error</translation> </message> - </context> + <message numerus="yes"> + <source>%n GB of free space available</source> + <translation><numerusform>Un GB d'espai lliure disponible.</numerusform><numerusform>%n GB d'espai lliure disponibles</numerusform></translation> + </message> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(Un GB necessari)</numerusform><numerusform>(de %n GB necessàris)</numerusform></translation> + </message> + <message numerus="yes"> + <source>(%n GB needed for full chain)</source> + <translation><numerusform>(Un GB necessari per a la cadena completa)</numerusform><numerusform>(Un GB necessari per a la cadena completa)</numerusform></translation> + </message> +</context> <context> <name>ModalOverlay</name> <message> @@ -954,6 +1063,14 @@ <translation>Amaga</translation> </message> <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 sincronitzant ara mateix. Es descarregaran capçaleres i blocs d'altres peers i es validaran fins a obtenir la punta de la cadena de blocs. </translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Desconegut. Sincronització de les capçaleres (%1, %2%)...</translation> </message> @@ -961,6 +1078,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Obre Bitcoin URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -968,6 +1089,14 @@ <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet failed</source> + <translation>Ha fallat l'obertura de la cartera</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>Avís en l'obertura de la cartera</translation> + </message> + <message> <source>default wallet</source> <translation>moneder per defecte</translation> </message> @@ -1195,6 +1324,10 @@ <translation>URL de transaccions de tercers</translation> </message> <message> + <source>Options set in this dialog are overridden by the command line or in the configuration file:</source> + <translation>Opcions configurades en aquest diàleg són sobreescrites per la línia de comandes o el fitxer de configuració:</translation> + </message> + <message> <source>&OK</source> <translation>&D'acord</translation> </message> @@ -1341,6 +1474,18 @@ <translation>'bitcoin://' no és una URI vàlida. Usi 'bitcoin:' en lloc seu.</translation> </message> <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>No es pot processar la petició de pagament perquè BIP70 no està suportat.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>A causa dels defectes generalitzats en el BIP70 és altament recomanable que qualsevol instrucció comerciant per canviar carteres sigui ignorada.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>Si estàs rebent aquest error, hauries de demanar al comerciant que et doni una URI compatible amb el BIP21.</translation> + </message> + <message> <source>Invalid payment address %1</source> <translation>Adreça de pagament no vàlida %1</translation> </message> @@ -1418,10 +1563,34 @@ <source>%1 ms</source> <translation>%1 ms</translation> </message> + <message numerus="yes"> + <source>%n second(s)</source> + <translation><numerusform>Un segon</numerusform><numerusform>%n segons</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n minute(s)</source> + <translation><numerusform>Un minut</numerusform><numerusform>%n minuts</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n hour(s)</source> + <translation><numerusform>Una hora</numerusform><numerusform>%n hores</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation><numerusform>Un dia</numerusform><numerusform>%n dies</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n week(s)</source> + <translation><numerusform>Una setmana</numerusform><numerusform>%n setmanes</numerusform></translation> + </message> <message> <source>%1 and %2</source> <translation>%1 i %2</translation> </message> + <message numerus="yes"> + <source>%n year(s)</source> + <translation><numerusform>Un any</numerusform><numerusform>%n anys</numerusform></translation> + </message> <message> <source>%1 B</source> <translation>%1 B</translation> @@ -1478,6 +1647,10 @@ <translation>Error en codificar l'URI en un codi QR.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>Suport de codi QR no disponible.</translation> + </message> + <message> <source>Save QR Code</source> <translation>Desa el codi QR</translation> </message> @@ -1513,10 +1686,18 @@ <translation>Datadir</translation> </message> <message> + <source>To specify a non-default location of the data directory use the '%1' option.</source> + <translation>Per tal d'especificar una ubicació que no és per defecte del directori de dades utilitza la '%1' opció.</translation> + </message> + <message> <source>Blocksdir</source> <translation>Directori de blocs</translation> </message> <message> + <source>To specify a non-default location of the blocks directory use the '%1' option.</source> + <translation>Per tal d'especificar una ubicació que no és per defecte del directori de blocs utilitza la '%1' opció.</translation> + </message> + <message> <source>Startup time</source> <translation>&Temps d'inici</translation> </message> @@ -1609,10 +1790,22 @@ <translation>Blocs sincronitzats</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>El sistema autònom de mapat utilitzat per diversificar la selecció entre iguals.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapat com</translation> + </message> + <message> <source>User Agent</source> <translation>Agent d'usuari</translation> </message> <message> + <source>Node window</source> + <translation>Finestra node</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Obre el fitxer de registre de depuració %1 del directori de dades actual. Això pot trigar uns segons en fitxers de registre grans.</translation> </message> @@ -1824,6 +2017,18 @@ <translation>Un import opcional per sol·licitar. Deixeu-ho en blanc o zero per no sol·licitar cap import específic.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Una etiqueta opcional per associar-se a la nova adreça de recepció (usada per vostè per identificar una factura). També s’adjunta a la sol·licitud de pagament.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Un missatge opcional adjunt a la sol·licitud de pagament i que es pot mostrar al remitent.</translation> + </message> + <message> + <source>&Create new receiving address</source> + <translation>&Creeu una nova adreça de recepció</translation> + </message> + <message> <source>Clear all fields of the form.</source> <translation>Neteja tots els camps del formulari.</translation> </message> @@ -2073,6 +2278,18 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Polsim:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Amagueu la configuració de les tarifes de transacció</translation> + </message> + <message> + <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>Quan no hi ha prou espai en els blocs per encabir totes les transaccions, els miners i així mateix els nodes repetidors poden exigir una taxa mínima. És acceptable pagar únicament la taxa mínima, però tingueu present que pot resultar que la vostra transacció no sigui mai confirmada mentre hi hagi més demanda de transaccions bitcoin de les que la xarxa pot processar.</translation> + </message> + <message> + <source>A too low fee might result in a never confirming transaction (read the tooltip)</source> + <translation>Una taxa massa baixa pot resultar en una transacció que no es confirmi mai (llegiu el consell)</translation> + </message> + <message> <source>Confirmation time target:</source> <translation>Temps de confirmació objectiu:</translation> </message> @@ -2133,18 +2350,38 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>%1 (%2 blocs)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>Creació sense firmar</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Crea una transacció bitcoin parcialment signada (PSBT) per a utilitzar, per exemple, amb una cartera %1 fora de línia o amb una cartera compatible amb PSBT.</translation> + </message> + <message> <source> from wallet '%1'</source> <translation>de la cartera "%1"</translation> </message> <message> + <source>%1 to '%2'</source> + <translation>%1 a '%2'</translation> + </message> + <message> <source>%1 to %2</source> <translation>%1 a %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Voleu redactar aquesta transacció?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Esteu segur que ho voleu enviar?</translation> </message> <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Revisa la teva proposta de transacció. Es produirà una transacció de Bitcoin amb signatura parcial (PSBT) que podeu copiar i després signar, per exemple, amb una cartera %1 de tipus fora de línia o una cartera física compatible amb PSBT.</translation> + </message> + <message> <source>or</source> <translation>o</translation> </message> @@ -2161,14 +2398,42 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Comissió de transacció</translation> </message> <message> + <source>Not signalling Replace-By-Fee, BIP-125.</source> + <translation>Substitució per tarifa sense senyalització, BIP-125</translation> + </message> + <message> <source>Total Amount</source> <translation>Import total</translation> </message> <message> + <source>To review recipient list click "Show Details..."</source> + <translation>Per revisar la llista de destinataris, feu clic a "Mostra els detalls ..."</translation> + </message> + <message> <source>Confirm send coins</source> <translation>Confirma l'enviament de monedes</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Confirmeu la proposta de transacció</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Copiar PSBT al porta-retalls.</translation> + </message> + <message> + <source>Send</source> + <translation>Enviar</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT copiada</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Saldo només de vigilància:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>L'adreça del destinatari no és vàlida. Torneu-la a comprovar.</translation> </message> @@ -2200,6 +2465,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <source>Payment request expired.</source> <translation>La sol·licitud de pagament ha vençut.</translation> </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>S’estima que comenci la confirmació dintre d'un bloc.</numerusform><numerusform>S’estima que comenci la confirmació dintre de %n blocs.</numerusform></translation> + </message> <message> <source>Warning: Invalid Bitcoin address</source> <translation>Avís: adreça Bitcoin no vàlida</translation> @@ -2260,6 +2529,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Elimina aquesta entrada</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>L’import a enviar a la unitat seleccionada</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>La comissió es deduirà de l'import que s'enviarà. El destinatari rebrà menys bitcoins que les que introduïu al camp d'import. Si se seleccionen múltiples destinataris, la comissió es dividirà per igual.</translation> </message> @@ -2386,6 +2659,14 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>L'adreça Bitcoin amb què va ser signat el missatge</translation> </message> <message> + <source>The signed message to verify</source> + <translation>El missatge signat per verificar</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>La signatura donada quan es va signar el missatge</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Verificar el missatge per assegurar-se que ha estat signat amb una adreça Bitcoin específica</translation> </message> @@ -2418,6 +2699,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>S'ha cancel·lat el desblocatge de la cartera.</translation> </message> <message> + <source>No error</source> + <translation>Cap error</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>La clau privada per a la adreça introduïda no està disponible.</translation> </message> @@ -2459,6 +2744,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 </context> <context> <name>TransactionDesc</name> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Obre per un bloc més</numerusform><numerusform>Obre per %n blocs més</numerusform></translation> + </message> <message> <source>Open until %1</source> <translation>Obert fins %1</translation> @@ -2535,6 +2824,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <source>Credit</source> <translation>Crèdit</translation> </message> + <message numerus="yes"> + <source>matures in %n more block(s)</source> + <translation><numerusform>madura en un bloc més</numerusform><numerusform>madura en %n blocs més</numerusform></translation> + </message> <message> <source>not accepted</source> <translation>no acceptat</translation> @@ -2584,6 +2877,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Índex de resultats</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(El certificat no s'ha verificat)</translation> + </message> + <message> <source>Merchant</source> <translation>Mercader</translation> </message> @@ -2641,6 +2938,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <source>Label</source> <translation>Etiqueta</translation> </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Obre per un bloc més</numerusform><numerusform>Obre per %n blocs més</numerusform></translation> + </message> <message> <source>Open until %1</source> <translation>Obert fins %1</translation> @@ -2902,7 +3203,15 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <source>Close wallet</source> <translation>Tanca la cartera</translation> </message> - </context> + <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Segur que voleu tancar la cartera <i>%1 </i>?</translation> + </message> + <message> + <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> + <translation>Si tanqueu la cartera durant massa temps, es pot haver de tornar a sincronitzar tota la cadena si teniu el sistema de poda habilitat.</translation> + </message> +</context> <context> <name>WalletFrame</name> <message> @@ -2929,6 +3238,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Voleu augmentar la tarifa?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Voleu redactar una transacció amb augment de tarifes?</translation> + </message> + <message> <source>Current fee:</source> <translation>tarifa actual:</translation> </message> @@ -2945,6 +3258,14 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Confirmeu el recàrrec de tarifes</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>No es pot redactar la transacció.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT copiada</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>No es pot signar la transacció.</translation> </message> @@ -3027,10 +3348,18 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Els desenvolupadors %s</translation> </message> <message> + <source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source> + <translation>No es pot generar una clau d’adreça de canvi. No hi ha claus al keypool intern i no es pot generar cap clau.</translation> + </message> + <message> <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> <translation>No es pot obtenir un bloqueig al directori de dades %s. %s probablement ja s'estigui executant.</translation> </message> <message> + <source>Cannot provide specific connections and have addrman find outgoing connections at the same.</source> + <translation>No es poden proporcionar connexions específiques i no es poden trobar connexions sortint al mateix temps.</translation> + </message> + <message> <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> <translation>S'ha produït un error en llegir %s. Totes les claus es llegeixen correctament, però les dades de la transacció o les entrades de la llibreta d'adreces podrien faltar o ser incorrectes.</translation> </message> @@ -3091,6 +3420,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Canvieu l'índex fora de l'abast</translation> </message> <message> + <source>Config setting for %s only applied on %s network when in [%s] section.</source> + <translation>Configuració per a %s únicament aplicada a %s de la xarxa quan es troba a la secció [%s].</translation> + </message> + <message> <source>Copyright (C) %i-%i</source> <translation>Copyright (C) %i-%i</translation> </message> @@ -3099,6 +3432,14 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>S'ha detectat una base de dades de blocs corrupta</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>No s'ha pogut trobar el fitxer asmap %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>No s'ha pogut analitzar el fitxer asmap %s</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>Voleu reconstruir la base de dades de blocs ara?</translation> </message> @@ -3115,6 +3456,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Error carregant %s</translation> </message> <message> + <source>Error loading %s: Private keys can only be disabled during creation</source> + <translation>Error carregant %s: les claus privades només es poden desactivar durant la creació</translation> + </message> + <message> <source>Error loading %s: Wallet corrupted</source> <translation>S'ha produït un error en carregar %s: la cartera és corrupta</translation> </message> @@ -3135,6 +3480,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Ha fallat escoltar a qualsevol port. Feu servir -listen=0 si voleu fer això.</translation> </message> <message> + <source>Failed to rescan the wallet during initialization</source> + <translation>No s'ha pogut escanejar novament la cartera durant la inicialització</translation> + </message> + <message> <source>Importing...</source> <translation>S'està important...</translation> </message> @@ -3147,6 +3496,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>S'ha produït un error en la verificació de sanejament d'inicialització. S'està tancant %s.</translation> </message> <message> + <source>Invalid P2P permission: '%s'</source> + <translation>Permís P2P no vàlid: '%s'</translation> + </message> + <message> <source>Invalid amount for -%s=<amount>: '%s'</source> <translation>Import invàlid per -%s=<amount>: '%s'</translation> </message> @@ -3159,10 +3512,30 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Import invàlid per -fallbackfee=<amount>: '%s'</translation> </message> <message> + <source>Specified blocks directory "%s" does not exist.</source> + <translation>El directori de blocs especificat "%s" no existeix.</translation> + </message> + <message> + <source>Unknown address type '%s'</source> + <translation>Tipus d'adreça desconegut '%s'</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>Tipus de canvi desconegut '%s'</translation> + </message> + <message> + <source>Upgrading txindex database</source> + <translation>Actualitzant txindex de la base de dades</translation> + </message> + <message> <source>Loading P2P addresses...</source> <translation>S'estan carregant les adreces P2P ...</translation> </message> <message> + <source>Error: Disk space is too low!</source> + <translation>Error: l'espai del disc és insuficient.</translation> + </message> + <message> <source>Loading banlist...</source> <translation>Carregant banlist ...</translation> </message> @@ -3247,6 +3620,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>S'ha produït un error en actualitzar la base de dades de chainstate</translation> </message> <message> + <source>Error: Disk space is low for %s</source> + <translation>Error: l'espai del disc és insuficient per a %s</translation> + </message> + <message> <source>Invalid -onion address or hostname: '%s'</source> <translation>Adreça o nom de l'ordinador -onion no vàlida: '%s'</translation> </message> @@ -3267,6 +3644,10 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Cal especificar un port amb -whitebind: «%s»</translation> </message> <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>El mode de poda no és compatible amb -blockfilterindex.</translation> + </message> + <message> <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> <translation>Reducció de -maxconnections de %d a %d, a causa de les limitacions del sistema.</translation> </message> @@ -3279,6 +3660,24 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Ha fallat la signatura de la transacció</translation> </message> <message> + <source>Specified -walletdir "%s" does not exist</source> + <translation>-Walletdir especificat "%s" no existeix</translation> + </message> + <message> + <source>Specified -walletdir "%s" is a relative path</source> + <translation>-Walletdir especificat "%s" és una ruta relativa</translation> + </message> + <message> + <source>Specified -walletdir "%s" is not a directory</source> + <translation>-Walletdir especificat "%s" no és un directori</translation> + </message> + <message> + <source>The specified config file %s does not exist +</source> + <translation>El fitxer de configuració especificat %s no existeix +</translation> + </message> + <message> <source>The transaction amount is too small to pay the fee</source> <translation>L'import de la transacció és massa petit per pagar-ne una comissió</translation> </message> @@ -3299,10 +3698,18 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>No s'ha pogut vincular a %s en aquest ordinador (la vinculació ha retornat l'error %s)</translation> </message> <message> + <source>Unable to create the PID file '%s': %s</source> + <translation>No es pot crear el fitxer PID '%s': %s</translation> + </message> + <message> <source>Unable to generate initial keys</source> <translation>No s'han pogut generar les claus inicials</translation> </message> <message> + <source>Unknown -blockfilterindex value %s.</source> + <translation>Valor %s -blockfilterindex desconegut</translation> + </message> + <message> <source>Verifying wallet(s)...</source> <translation>S'estan verificant les carteres...</translation> </message> @@ -3375,6 +3782,18 @@ Nota: Com que la comissió es calcula en funció dels bytes, una comissió de "1 <translation>Balanç insuficient</translation> </message> <message> + <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> + <translation>No es pot actualitzar una cartera de tipus dividida que no sigui física sense haver d'actualitzar per tal de suportar keypool pre dividida. Si us plau, utilitzeu -upgradewallet = 169900 o -upgradewallet sense cap versió especificada.</translation> + </message> + <message> + <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> + <translation>L'estimació de la quota ha fallat. Fallbackfee està desactivat. Espereu uns quants blocs o activeu -fallbackfee.</translation> + </message> + <message> + <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source> + <translation>Avís: Claus privades detectades en la cartera {%s} amb claus privades deshabilitades</translation> + </message> + <message> <source>Cannot write to data directory '%s'; check permissions.</source> <translation>No es pot escriure en el directori de dades "%s". Reviseu-ne els permisos.</translation> </message> diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/bitcoin_cs.ts index 70334087e8..7d6ba6772b 100644 --- a/src/qt/locale/bitcoin_cs.ts +++ b/src/qt/locale/bitcoin_cs.ts @@ -482,6 +482,14 @@ <translation>Aktuální</translation> </message> <message> + <source>Node window</source> + <translation>Okno uzlu</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Otevřít konzolu pro ladění a diagnostiku uzlů</translation> + </message> + <message> <source>&Sending addresses</source> <translation>Odesílací adresy</translation> </message> @@ -490,6 +498,10 @@ <translation>Přijímací adresy</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Načíst Bitcoin: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Otevřít peněženku</translation> </message> @@ -550,6 +562,10 @@ <translation>Chyba: %1</translation> </message> <message> + <source>Warning: %1</source> + <translation>Varování: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>Datum: %1 @@ -771,10 +787,58 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>Vytvářím peněženku <b>%1</b>...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>Vytvoření peněženky selhalo</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Vytvořit varování peněženky</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Vytvořit peněženku</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Název peněženky</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Zašifrovat peněženku. Peněženka bude zašifrována pomocí vašeho hesla.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Zašifrovat peněženku</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Vypnout soukromé klíče pro tuto peněženku. Peněženky s vypnutými soukromými klíči nebudou mít soukromé klíče a nemohou mít HD inicializaci ani importované soukromé klíče. Tohle je ideální pro peněženky pouze na sledování.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Zrušit soukromé klíče</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Vytvořit prázdnou peněženku. Prázdné peněženky na začátku nemají žádné soukromé klíče ani skripty. Později mohou být importovány soukromé klíče a adresy nebo nastavená HD inicializace.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Vytvořit prázdnou peněženku</translation> + </message> + <message> + <source>Create</source> + <translation>Vytvořit</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -887,6 +951,10 @@ <translation>Jakmile stiskneš OK, %1 začne stahovat a zpracovávat celý %4ový blockchain (%2 GB), počínaje nejstaršími transakcemi z roku %3, kdy byl %4 spuštěn.</translation> </message> <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Vrácení tohoto nastavení vyžaduje opětovné stažení celého blockchainu. Je rychlejší stáhnout celý řetězec nejprve a prořezat jej později. Některé pokročilé funkce budou zakázány, dokud celý blockchain nebude stažen nanovo.</translation> + </message> + <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> <translation>Prvotní synchronizace je velice náročná, a mohou se tak díky ní začít na tvém počítači projevovat dosud skryté hardwarové problémy. Pokaždé, když spustíš %1, bude stahování pokračovat tam, kde skončilo.</translation> </message> @@ -907,6 +975,10 @@ <translation>Bitcoin</translation> </message> <message> + <source>Discard blocks after verification, except most recent %1 GB (prune)</source> + <translation>Zahodit bloky po ověření, s výjimkou posledních %1 GB (prořezat)</translation> + </message> + <message> <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> <translation>Bude proto potřebovat do tohoto adresáře uložit nejméně %1 GB dat – tohle číslo navíc bude v průběhu času růst.</translation> </message> @@ -938,7 +1010,11 @@ <source>(of %n GB needed)</source> <translation><numerusform>(z potřebného %n GB)</numerusform><numerusform>(z potřebných %n GB)</numerusform><numerusform>(z potřebných %n GB)</numerusform><numerusform>(z potřebných %n GB)</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(%n GB needed for full chain)</source> + <translation><numerusform>(%n GB potřeba pre plný řetězec)</numerusform><numerusform>(%n GB potřeba pre plný řetězec) </numerusform><numerusform>(%n GB potřeba pre plný řetězec) </numerusform><numerusform>(%n GB potřeba pre plný řetězec) </numerusform></translation> + </message> +</context> <context> <name>ModalOverlay</name> <message> @@ -986,6 +1062,14 @@ <translation>Skryj</translation> </message> <message> + <source>Esc</source> + <translation>Esc - úniková klávesa</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 se právě synchronizuje. Stáhnou se hlavičky a bloky od protějsků. Ty se budou se ověřovat až se kompletně ověří celý řetězec bloků.</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Neznámé. Synchronizace hlaviček (%1, %2)...</translation> </message> @@ -993,6 +1077,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Otevřít bitcoin URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -1000,6 +1088,14 @@ <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet failed</source> + <translation>Otevření peněženky selhalo</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>Varování otevření peněženky</translation> + </message> + <message> <source>default wallet</source> <translation>výchozí peněženka</translation> </message> @@ -1377,6 +1473,18 @@ <translation>'bitcoin://' není platné URI. Místo toho použij 'bitcoin:'.</translation> </message> <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Nelze zpracovat žádost o platbu, protože podpora pro BIP70 není podporována.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>Vzhledem k rozšířeným bezpečnostním nedostatkům v BIP70 se důrazně doporučuje, aby byly ignorovány veškeré obchodní pokyny pro přepínání peněženek.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>Pokud obdržíte tuto chybu, měli byste požádat obchodníka, aby poskytl URI kompatibilní s BIP21.</translation> + </message> + <message> <source>Invalid payment address %1</source> <translation>Neplatná platební adresa %1</translation> </message> @@ -1538,6 +1646,10 @@ <translation>Chyba při kódování URI do QR kódu.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>Podpora QR kódu není k dispozici.</translation> + </message> + <message> <source>Save QR Code</source> <translation>Ulož QR kód</translation> </message> @@ -1677,10 +1789,22 @@ <translation>Aktuálně bloků</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Mapovaný nezávislý - Autonomní Systém používaný pro rozšírení vzájemného výběru protějsků.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapovaný AS</translation> + </message> + <message> <source>User Agent</source> <translation>Typ klienta</translation> </message> <message> + <source>Node window</source> + <translation>Okno uzlu</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Otevři soubor s ladicími záznamy %1 z aktuálního datového adresáře. U velkých žurnálů to může pár vteřin zabrat.</translation> </message> @@ -1892,6 +2016,18 @@ <translation>Volitelná částka, kterou požaduješ. Nech prázdné nebo nulové, pokud nepožaduješ konkrétní částku.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Volitelný popis který sa přidá k téjo nové přijímací adrese (pro jednoduchší identifikaci). Tenhle popis bude také přidán do výzvy k platbě.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Volitelná zpráva která se přidá k téjo platební výzvě a může být zobrazena odesílateli.</translation> + </message> + <message> + <source>&Create new receiving address</source> + <translation>&Vytvořit novou přijímací adresu</translation> + </message> + <message> <source>Clear all fields of the form.</source> <translation>Promaž obsah ze všech formulářových políček.</translation> </message> @@ -1905,7 +2041,7 @@ </message> <message> <source>Generate native segwit (Bech32) address</source> - <translation>Generovat nativní segwit adresu (Bench32)</translation> + <translation>Generovat nativní segwit adresu (Bech32)</translation> </message> <message> <source>Requested payments history</source> @@ -2141,6 +2277,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Prach:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Schovat nastavení poplatků transakce - transaction fee</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>Když je zde měně transakcí než místa na bloky, mineři stejně tak relay-e mohou nasadit minimální poplatky. Zaplacením pouze minimálního poplatku je v pohodě, ale mějte na paměti že toto může mít za následek nikdy neověřenou transakci pokud zde bude více bitcoinových transakcí než může síť zvládnout.</translation> </message> @@ -2209,14 +2349,38 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>%1 (%2 bloků)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>Vytvořit bez podpisu</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Vytvořit částečně podepsanou Bitcoin transakci (Partially Signed Bitcoin Transaction - PSBT) k použtí kupříkladu s offline %1 peněženkou nebo s jinou kompatibilní PSBT hardware peněženkou.</translation> + </message> + <message> + <source> from wallet '%1'</source> + <translation>z peněženky '%1'</translation> + </message> + <message> + <source>%1 to '%2'</source> + <translation>%1 do '%2'</translation> + </message> + <message> <source>%1 to %2</source> - <translation>%1 pro %2</translation> + <translation>%1 do %2</translation> + </message> + <message> + <source>Do you want to draft this transaction?</source> + <translation>Chcete naplánovat tuhle transakci?</translation> </message> <message> <source>Are you sure you want to send?</source> <translation>Jsi si jistý, že tuhle transakci chceš poslat?</translation> </message> <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Zkontrolujte prosím svůj návrh transakce. Výsledkem bude částečně podepsaná bitcoinová transakce (PSBT), kterou můžete kopírovat a poté podepsat např. pomocí offline %1 peněženky nebo hardwarové peněženky kompatibilní s PSBT.</translation> + </message> + <message> <source>or</source> <translation>nebo</translation> </message> @@ -2241,12 +2405,32 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Celková částka</translation> </message> <message> + <source>To review recipient list click "Show Details..."</source> + <translation>Chcete-li zkontrolovat seznam příjemců, klikněte na „Zobrazit podrobnosti ...“</translation> + </message> + <message> <source>Confirm send coins</source> <translation>Potvrď odeslání mincí</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Potvrdit návrh transakce</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Zkopírovat PSBT do schránky</translation> + </message> + <message> <source>Send</source> - <translation>Pošli</translation> + <translation>Odeslat</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT zkopírován</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Pouze sledovaný zůstatek:</translation> </message> <message> <source>The recipient address is not valid. Please recheck.</source> @@ -2344,6 +2528,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Smaž tento záznam</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>Částka k odeslání ve vybrané měně</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>Poplatek se odečte od posílané částky. Příjemce tak dostane méně bitcoinů, než zadáš do pole Částka. Pokud vybereš více příjemců, tak se poplatek rovnoměrně rozloží.</translation> </message> @@ -2470,6 +2658,14 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Bitcoinová adresa, kterou je zpráva podepsána</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Podepsaná zpráva na ověření</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>Podpis daný při podpisu zprávy</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Ověř zprávu, aby ses ujistil, že byla podepsána danou bitcoinovou adresou</translation> </message> @@ -2502,6 +2698,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Odemčení peněženky bylo zrušeno.</translation> </message> <message> + <source>No error</source> + <translation>Bez chyby</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>Soukromý klíč pro zadanou adresu není dostupný.</translation> </message> @@ -2676,6 +2876,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Pořadí výstupu</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(Certifikát nebyl ověřen)</translation> + </message> + <message> <source>Merchant</source> <translation>Obchodník</translation> </message> @@ -2999,6 +3203,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Zavřít peněženku</translation> </message> <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Opravdu chcete zavřít peněženku <i>%1</i>?</translation> + </message> + <message> <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> <translation>Zavření peněženky na příliš dlouhou dobu může vyústit v potřebu resynchronizace celého blockchainu pokud je zapnuté prořezávání.</translation> </message> @@ -3026,7 +3234,11 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa </message> <message> <source>Do you want to increase the fee?</source> - <translation>Chceš poplatek navýšit?</translation> + <translation>Chcete navýšit poplatek?</translation> + </message> + <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Chcete naplánovat tuhle transakci s navýšením poplatku?</translation> </message> <message> <source>Current fee:</source> @@ -3045,6 +3257,14 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Potvrď navýšení poplatku</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>Nelze navrhnout transakci.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT zkopírováno</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>Nemůžu podepsat transakci.</translation> </message> @@ -3211,6 +3431,14 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Bylo zjištěno poškození databáze bloků</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>Soubor asmap nelze najít %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Soubor asmap nelze analyzovat %s</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>Chceš přestavět databázi bloků hned teď?</translation> </message> @@ -3267,6 +3495,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Selhala úvodní zevrubná prověrka. %s se ukončuje.</translation> </message> <message> + <source>Invalid P2P permission: '%s'</source> + <translation>Neplatné oprávnenie P2P: '%s'</translation> + </message> + <message> <source>Invalid amount for -%s=<amount>: '%s'</source> <translation>Neplatná částka pro -%s=<částka>: '%s'</translation> </message> @@ -3283,6 +3515,14 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Zadaný adresář bloků "%s" neexistuje.</translation> </message> <message> + <source>Unknown address type '%s'</source> + <translation>Neznámý typ adresy '%s'</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>Neznámý typ změny '%s'</translation> + </message> + <message> <source>Upgrading txindex database</source> <translation>Aktualizuje se txindex databáze</translation> </message> @@ -3291,6 +3531,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Načítám P2P adresy…</translation> </message> <message> + <source>Error: Disk space is too low!</source> + <translation>Chyba: Místo na disku je příliš malé!</translation> + </message> + <message> <source>Loading banlist...</source> <translation>Načítám seznam klateb...</translation> </message> @@ -3399,6 +3643,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>V rámci -whitebind je třeba specifikovat i port: '%s'</translation> </message> <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>Režim prořezávání není kompatibilní s -blockfilterindex.</translation> + </message> + <message> <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> <translation>Omezuji -maxconnections z %d na %d kvůli systémovým omezením.</translation> </message> @@ -3457,6 +3705,10 @@ Poznámka: Jelikož je poplatek počítaný za bajt, poplatek o hodnotě "100 sa <translation>Nepodařilo se mi vygenerovat počáteční klíče</translation> </message> <message> + <source>Unknown -blockfilterindex value %s.</source> + <translation>Neznámá -blockfilterindex hodnota %s.</translation> + </message> + <message> <source>Verifying wallet(s)...</source> <translation>Kontroluji peněženku/y…</translation> </message> diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/bitcoin_da.ts index 0fb4d104aa..a087ebe522 100644 --- a/src/qt/locale/bitcoin_da.ts +++ b/src/qt/locale/bitcoin_da.ts @@ -1789,6 +1789,14 @@ <translation>Synkroniserede blokke</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Afbildning fra Autonome Systemer (et Internet-Protocol-rutefindingsprefiks) til IP-adresser som bruges til at diversificere knudeforbindelser. Den engelske betegnelse er "asmap".</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Autonomt-System-afbildning</translation> + </message> + <message> <source>User Agent</source> <translation>Brugeragent</translation> </message> diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/bitcoin_de.ts index ff763b002c..ff272af443 100644 --- a/src/qt/locale/bitcoin_de.ts +++ b/src/qt/locale/bitcoin_de.ts @@ -658,7 +658,7 @@ </message> <message> <source>Dust:</source> - <translation>"Dust":</translation> + <translation>"Staub":</translation> </message> <message> <source>After Fee:</source> @@ -808,7 +808,7 @@ </message> <message> <source>Wallet Name</source> - <translation>Wallet Name</translation> + <translation>Wallet-Name</translation> </message> <message> <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> @@ -1012,7 +1012,7 @@ </message> <message numerus="yes"> <source>(%n GB needed for full chain)</source> - <translation><numerusform>(%n GB benötigt für komplette Blockchain)</numerusform><numerusform>(%n GB benötigt für komplette Blockchain)</numerusform></translation> + <translation><numerusform>(%n GB benötigt für komplette Blockchain)</numerusform><numerusform>(%n GB wird die komplette Blockchain benötigen)</numerusform></translation> </message> </context> <context> @@ -1067,7 +1067,7 @@ </message> <message> <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> - <translation>%1 synchronisiert gerade. Es lädt Header und Blöcke von anderen Nodes und validiert sie bis zum Erreichen der Spitze der Blockkette.</translation> + <translation>%1 synchronisiert gerade. Es lädt Header und Blöcke von Gegenstellen und validiert sie bis zum Erreichen der Spitze der Blockkette.</translation> </message> <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> @@ -1097,7 +1097,7 @@ </message> <message> <source>default wallet</source> - <translation>Standard Wallet</translation> + <translation>Standard-Wallet</translation> </message> <message> <source>Opening Wallet <b>%1</b>...</source> @@ -1124,7 +1124,7 @@ </message> <message> <source>Size of &database cache</source> - <translation>Größe des &Datenbankcaches</translation> + <translation>Größe des &Datenbankpufferspeichers</translation> </message> <message> <source>Number of script &verification threads</source> @@ -1758,7 +1758,7 @@ </message> <message> <source>Banned peers</source> - <translation>Gesperrte Peers</translation> + <translation>Gesperrte Gegenstellen</translation> </message> <message> <source>Select a peer to view detailed information.</source> @@ -1789,6 +1789,14 @@ <translation>Synchronisierte Blöcke</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Das zugeordnete autonome System zur Diversifizierung der Gegenstellen-Auswahl.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Zugeordnetes AS</translation> + </message> + <message> <source>User Agent</source> <translation>User-Agent</translation> </message> @@ -2266,7 +2274,7 @@ Hinweis: Eine Gebühr von "100 Satoshis pro kB" bei einer Größe der Transaktio </message> <message> <source>Dust:</source> - <translation>"Dust":</translation> + <translation>"Staub":</translation> </message> <message> <source>Hide transaction fee settings</source> diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/bitcoin_el.ts index d903e2f85d..d4787e6218 100644 --- a/src/qt/locale/bitcoin_el.ts +++ b/src/qt/locale/bitcoin_el.ts @@ -1774,6 +1774,14 @@ <translation>Συγχρονισμένα Μπλοκς</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Το χαρτογραφημένο Αυτόνομο Σύστημα που χρησιμοποιείται για τη διαφοροποίηση της επιλογής ομοτίμων.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Χαρτογραφημένο ως</translation> + </message> + <message> <source>User Agent</source> <translation>Agent χρήστη</translation> </message> diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 6b4174f313..71467a915b 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -90,7 +90,8 @@ </message> <message> <location line="+5"/> - <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses. +Signing is only possible with addresses of the type 'legacy'.</source> <translation type="unfinished"></translation> </message> <message> @@ -109,7 +110,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+177"/> + <location line="+179"/> <source>Export Address List</source> <translation type="unfinished"></translation> </message> @@ -132,7 +133,7 @@ <context> <name>AddressTableModel</name> <message> - <location filename="../addresstablemodel.cpp" line="+165"/> + <location filename="../addresstablemodel.cpp" line="+168"/> <source>Label</source> <translation type="unfinished"></translation> </message> @@ -175,7 +176,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../askpassphrasedialog.cpp" line="+50"/> + <location filename="../askpassphrasedialog.cpp" line="+51"/> <source>Encrypt wallet</source> <translation type="unfinished"></translation> </message> @@ -205,7 +206,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+46"/> + <location line="+48"/> <source>Confirm wallet encryption</source> <translation type="unfinished"></translation> </message> @@ -226,7 +227,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="-145"/> + <location line="-147"/> <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> <translation type="unfinished"></translation> </message> @@ -236,7 +237,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+53"/> + <location line="+55"/> <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> <translation type="unfinished"></translation> </message> @@ -325,17 +326,17 @@ <context> <name>BitcoinGUI</name> <message> - <location filename="../bitcoingui.cpp" line="+316"/> + <location filename="../bitcoingui.cpp" line="+322"/> <source>Sign &message...</source> <translation>Sign &message...</translation> </message> <message> - <location line="+630"/> + <location line="+668"/> <source>Synchronizing with network...</source> <translation>Synchronizing with network...</translation> </message> <message> - <location line="-708"/> + <location line="-746"/> <source>&Overview</source> <translation>&Overview</translation> </message> @@ -410,7 +411,7 @@ <translation>&Change Passphrase...</translation> </message> <message> - <location line="+18"/> + <location line="+22"/> <source>Open &URI...</source> <translation type="unfinished"></translation> </message> @@ -425,12 +426,12 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+191"/> + <location line="+210"/> <source>Wallet:</source> <translation type="unfinished"></translation> </message> <message> - <location line="+339"/> + <location line="+350"/> <source>Click to disable network activity.</source> <translation type="unfinished"></translation> </message> @@ -450,17 +451,17 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+53"/> + <location line="+57"/> <source>Reindexing blocks on disk...</source> <translation>Reindexing blocks on disk...</translation> </message> <message> - <location line="+317"/> + <location line="+315"/> <source>Proxy is <b>enabled</b>: %1</source> <translation type="unfinished"></translation> </message> <message> - <location line="-1028"/> + <location line="-1064"/> <source>Send coins to a Bitcoin address</source> <translation>Send coins to a Bitcoin address</translation> </message> @@ -515,17 +516,17 @@ <translation>Verify messages to ensure they were signed with specified Bitcoin addresses</translation> </message> <message> - <location line="+111"/> + <location line="+129"/> <source>&File</source> <translation>&File</translation> </message> <message> - <location line="+15"/> + <location line="+18"/> <source>&Settings</source> <translation>&Settings</translation> </message> <message> - <location line="+59"/> + <location line="+61"/> <source>&Help</source> <translation>&Help</translation> </message> @@ -535,12 +536,12 @@ <translation>Tabs toolbar</translation> </message> <message> - <location line="-258"/> + <location line="-281"/> <source>Request payments (generates QR codes and bitcoin: URIs)</source> <translation type="unfinished"></translation> </message> <message> - <location line="+71"/> + <location line="+75"/> <source>Show the list of used sending addresses and labels</source> <translation type="unfinished"></translation> </message> @@ -550,12 +551,12 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+17"/> + <location line="+20"/> <source>&Command-line options</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location line="+528"/> + <location line="+555"/> <source>%n active connection(s) to Bitcoin network</source> <translation> <numerusform>%n active connection to Bitcoin network</numerusform> @@ -563,7 +564,7 @@ </translation> </message> <message> - <location line="+76"/> + <location line="+80"/> <source>Indexing blocks on disk...</source> <translation type="unfinished"></translation> </message> @@ -596,7 +597,7 @@ <translation>Transactions after this will not yet be visible.</translation> </message> <message> - <location line="+28"/> + <location line="+25"/> <source>Error</source> <translation>Error</translation> </message> @@ -611,12 +612,32 @@ <translation>Information</translation> </message> <message> - <location line="-81"/> + <location line="-78"/> <source>Up to date</source> <translation>Up to date</translation> </message> <message> - <location line="-655"/> + <location line="-694"/> + <source>&Load PSBT from file...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Load Partially Signed Bitcoin Transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Load PSBT from clipboard...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Load Partially Signed Bitcoin Transaction from clipboard</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> <source>Node window</source> <translation type="unfinished"></translation> </message> @@ -661,12 +682,32 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location line="+6"/> + <source>Close All Wallets...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Close all wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source> <translation type="unfinished"></translation> </message> <message> - <location line="+29"/> + <location line="+2"/> + <source>&Mask values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Mask the values in the Overview tab</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+32"/> <source>default wallet</source> <translation type="unfinished"></translation> </message> @@ -676,7 +717,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+55"/> + <location line="+64"/> <source>&Window</source> <translation type="unfinished">&Window</translation> </message> @@ -696,12 +737,12 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+238"/> + <location line="+245"/> <source>%1 client</source> <translation type="unfinished"></translation> </message> <message> - <location line="+241"/> + <location line="+249"/> <source>Connecting to peers...</source> <translation type="unfinished"></translation> </message> @@ -711,7 +752,7 @@ <translation>Catching up...</translation> </message> <message> - <location line="+50"/> + <location line="+47"/> <source>Error: %1</source> <translation type="unfinished"></translation> </message> @@ -721,7 +762,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+99"/> + <location line="+100"/> <source>Date: %1 </source> <translation type="unfinished"></translation> @@ -792,8 +833,13 @@ <translation>Wallet is <b>encrypted</b> and currently <b>locked</b></translation> </message> <message> - <location filename="../bitcoin.cpp" line="+384"/> - <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source> + <location line="+129"/> + <source>Original message:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../bitcoin.cpp" line="+418"/> + <source>A fatal error occurred. %1 can no longer continue safely and will quit.</source> <translation type="unfinished"></translation> </message> </context> @@ -885,7 +931,7 @@ <translation type="unfinished">Confirmed</translation> </message> <message> - <location filename="../coincontroldialog.cpp" line="+53"/> + <location filename="../coincontroldialog.cpp" line="+54"/> <source>Copy address</source> <translation type="unfinished"></translation> </message> @@ -946,12 +992,12 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+313"/> + <location line="+302"/> <source>(%1 locked)</source> <translation type="unfinished"></translation> </message> <message> - <location line="+157"/> + <location line="+155"/> <source>yes</source> <translation type="unfinished"></translation> </message> @@ -971,7 +1017,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+45"/> + <location line="+38"/> <location line="+54"/> <source>(no label)</source> <translation type="unfinished"></translation> @@ -990,12 +1036,12 @@ <context> <name>CreateWalletActivity</name> <message> - <location filename="../walletcontroller.cpp" line="+209"/> + <location filename="../walletcontroller.cpp" line="+241"/> <source>Creating Wallet <b>%1</b>...</source> <translation type="unfinished"></translation> </message> <message> - <location line="+26"/> + <location line="+28"/> <source>Create wallet failed</source> <translation type="unfinished"></translation> </message> @@ -1048,6 +1094,16 @@ <translation type="unfinished"></translation> </message> <message> + <location line="+13"/> + <source>Use descriptors for scriptPubKey management</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Descriptor Wallet</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../createwalletdialog.cpp" line="+19"/> <source>Create</source> <translation type="unfinished"></translation> @@ -1096,7 +1152,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+75"/> + <location line="+77"/> <source>The entered address "%1" is not a valid Bitcoin address.</source> <translation type="unfinished"></translation> </message> @@ -1124,7 +1180,7 @@ <context> <name>FreespaceChecker</name> <message> - <location filename="../intro.cpp" line="+71"/> + <location filename="../intro.cpp" line="+72"/> <source>A new data directory will be created.</source> <translation>A new data directory will be created.</translation> </message> @@ -1152,7 +1208,7 @@ <context> <name>HelpMessageDialog</name> <message> - <location filename="../utilitydialog.cpp" line="+35"/> + <location filename="../utilitydialog.cpp" line="+37"/> <source>version</source> <translation type="unfinished">version</translation> </message> @@ -1304,7 +1360,7 @@ <message> <location line="+7"/> <location line="+26"/> - <location filename="../modaloverlay.cpp" line="+145"/> + <location filename="../modaloverlay.cpp" line="+153"/> <source>Unknown...</source> <translation type="unfinished"></translation> </message> @@ -1345,12 +1401,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../modaloverlay.cpp" line="-111"/> + <location filename="../modaloverlay.cpp" line="-119"/> <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+117"/> + <location line="+125"/> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation type="unfinished"></translation> </message> @@ -1437,12 +1493,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+38"/> - <source>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+108"/> + <location line="+146"/> <source>Hide the icon from the system tray.</source> <translation type="unfinished"></translation> </message> @@ -1611,12 +1662,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+25"/> - <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+105"/> + <location line="+130"/> <source>&Window</source> <translation>&Window</translation> </message> @@ -1666,7 +1712,17 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+464"/> + <location line="+250"/> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor onion services.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Use separate SOCKS&5 proxy to reach peers via Tor onion services:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+211"/> <source>&Third party transaction URLs</source> <translation type="unfinished"></translation> </message> @@ -1691,7 +1747,7 @@ <translation>default</translation> </message> <message> - <location line="+65"/> + <location line="+67"/> <source>none</source> <translation type="unfinished"></translation> </message> @@ -1751,12 +1807,12 @@ </message> <message> <location line="+62"/> - <location line="+386"/> + <location line="+394"/> <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> <translation>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</translation> </message> <message> - <location line="-139"/> + <location line="-141"/> <source>Watch-only:</source> <translation type="unfinished"></translation> </message> @@ -1766,22 +1822,22 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+16"/> + <location line="+17"/> <source>Your current spendable balance</source> <translation>Your current spendable balance</translation> </message> <message> - <location line="+41"/> + <location line="+42"/> <source>Pending:</source> <translation type="unfinished"></translation> </message> <message> - <location line="-236"/> + <location line="-242"/> <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> <translation>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</translation> </message> <message> - <location line="+112"/> + <location line="+114"/> <source>Immature:</source> <translation>Immature:</translation> </message> @@ -1791,22 +1847,22 @@ <translation>Mined balance that has not yet matured</translation> </message> <message> - <location line="-177"/> + <location line="-181"/> <source>Balances</source> <translation type="unfinished"></translation> </message> <message> - <location line="+161"/> + <location line="+164"/> <source>Total:</source> <translation>Total:</translation> </message> <message> - <location line="+61"/> + <location line="+63"/> <source>Your current total balance</source> <translation>Your current total balance</translation> </message> <message> - <location line="+92"/> + <location line="+95"/> <source>Your current balance in watch-only addresses</source> <translation type="unfinished"></translation> </message> @@ -1821,20 +1877,178 @@ <translation type="unfinished"></translation> </message> <message> - <location line="-317"/> + <location line="-324"/> <source>Unconfirmed transactions to watch-only addresses</source> <translation type="unfinished"></translation> </message> <message> - <location line="+50"/> + <location line="+52"/> <source>Mined balance in watch-only addresses that has not yet matured</source> <translation type="unfinished"></translation> </message> <message> - <location line="+128"/> + <location line="+131"/> <source>Current total balance in watch-only addresses</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../overviewpage.cpp" line="+166"/> + <source>Privacy mode activated for the Overview tab. To unmask the values, uncheck Settings->Mask values.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>PSBTOperationsDialog</name> + <message> + <location filename="../forms/psbtoperationsdialog.ui" line="+14"/> + <source>Dialog</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+72"/> + <source>Sign Tx</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Broadcast Tx</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Copy to Clipboard</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Save...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../psbtoperationsdialog.cpp" line="+55"/> + <source>Failed to load transaction: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Failed to sign transaction: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Could not sign any more inputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Signed %1 inputs, but more signatures are still required.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Signed transaction successfully. Transaction is ready to broadcast.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Unknown error processing transaction.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Transaction broadcast successfully! Transaction ID: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Transaction broadcast failed: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>PSBT copied to clipboard.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Save Transaction Data</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Partially Signed Transaction (Binary) (*.psbt)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>PSBT saved to disk.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source> * Sends %1 to %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Unable to calculate transaction fee or total transaction amount.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Pays transaction fee: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Total Amount</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>or</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Transaction has %1 unsigned inputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+42"/> + <source>Transaction is missing some information about inputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Transaction still needs signature(s).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>(But this wallet cannot sign transactions.)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>(But this wallet does not have the right keys.)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Transaction is fully signed and ready for broadcast.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Transaction status is unknown.</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PaymentServer</name> @@ -1931,17 +2145,17 @@ <context> <name>QObject</name> <message> - <location filename="../bitcoinunits.cpp" line="+195"/> + <location filename="../bitcoinunits.cpp" line="+209"/> <source>Amount</source> <translation type="unfinished">Amount</translation> </message> <message> - <location filename="../guiutil.cpp" line="+111"/> + <location filename="../guiutil.cpp" line="+108"/> <source>Enter a Bitcoin address (e.g. %1)</source> <translation type="unfinished"></translation> </message> <message> - <location line="+618"/> + <location line="+652"/> <source>%1 d</source> <translation type="unfinished"></translation> </message> @@ -1957,7 +2171,7 @@ </message> <message> <location line="+2"/> - <location line="+48"/> + <location line="+26"/> <source>%1 s</source> <translation type="unfinished"></translation> </message> @@ -2051,7 +2265,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../bitcoin.cpp" line="+114"/> + <location filename="../bitcoin.cpp" line="+102"/> <source>Error: Specified data directory "%1" does not exist.</source> <translation type="unfinished"></translation> </message> @@ -2066,6 +2280,11 @@ <translation type="unfinished"></translation> </message> <message> + <location line="+9"/> + <source>Error initializing settings: %1</source> + <translation type="unfinished"></translation> + </message> + <message> <location line="+65"/> <source>%1 didn't yet exit safely...</source> <translation type="unfinished"></translation> @@ -2129,8 +2348,7 @@ <location line="+23"/> <location line="+36"/> <location line="+23"/> - <location line="+716"/> - <location line="+23"/> + <location line="+710"/> <location line="+23"/> <location line="+23"/> <location line="+23"/> @@ -2148,12 +2366,13 @@ <location line="+23"/> <location line="+23"/> <location line="+26"/> - <location filename="../rpcconsole.cpp" line="+1121"/> + <location filename="../rpcconsole.cpp" line="+1127"/> + <location line="+8"/> <source>N/A</source> <translation>N/A</translation> </message> <message> - <location line="-1456"/> + <location line="-1427"/> <source>Client version</source> <translation>Client version</translation> </message> @@ -2218,12 +2437,7 @@ <translation>Block chain</translation> </message> <message> - <location line="+7"/> - <source>Current number of blocks</source> - <translation>Current number of blocks</translation> - </message> - <message> - <location line="+52"/> + <location line="+59"/> <source>Memory Pool</source> <translation type="unfinished"></translation> </message> @@ -2254,18 +2468,18 @@ </message> <message> <location line="+80"/> - <location line="+589"/> + <location line="+560"/> <source>Received</source> <translation type="unfinished"></translation> </message> <message> - <location line="-509"/> - <location line="+486"/> + <location line="-480"/> + <location line="+457"/> <source>Sent</source> <translation type="unfinished"></translation> </message> <message> - <location line="-445"/> + <location line="-416"/> <source>&Peers</source> <translation type="unfinished"></translation> </message> @@ -2276,18 +2490,13 @@ </message> <message> <location line="+65"/> - <location filename="../rpcconsole.cpp" line="-624"/> - <location line="+756"/> + <location filename="../rpcconsole.cpp" line="-637"/> + <location line="+766"/> <source>Select a peer to view detailed information.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+37"/> - <source>Whitelisted</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+23"/> + <location line="+54"/> <source>Direction</source> <translation type="unfinished"></translation> </message> @@ -2312,7 +2521,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+256"/> + <location line="+233"/> <source>The mapped Autonomous System used for diversifying peer selection.</source> <translation type="unfinished"></translation> </message> @@ -2322,18 +2531,23 @@ <translation type="unfinished"></translation> </message> <message> - <location line="-1423"/> - <location line="+1072"/> + <location line="-1394"/> + <location line="+1066"/> <source>User Agent</source> <translation type="unfinished"></translation> </message> <message> - <location line="-1146"/> + <location line="-1140"/> <source>Node window</source> <translation type="unfinished"></translation> </message> <message> - <location line="+409"/> + <location line="+279"/> + <source>Current block height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+130"/> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation type="unfinished"></translation> </message> @@ -2348,17 +2562,17 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+644"/> - <source>Services</source> + <location line="+546"/> + <source>Permissions</source> <translation type="unfinished"></translation> </message> <message> <location line="+92"/> - <source>Ban Score</source> + <source>Services</source> <translation type="unfinished"></translation> </message> <message> - <location line="+23"/> + <location line="+92"/> <source>Connection Time</source> <translation type="unfinished"></translation> </message> @@ -2398,7 +2612,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="-1169"/> + <location line="-1140"/> <source>Last block time</source> <translation>Last block time</translation> </message> @@ -2423,7 +2637,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../rpcconsole.cpp" line="-408"/> + <location filename="../rpcconsole.cpp" line="-416"/> <source>In:</source> <translation type="unfinished"></translation> </message> @@ -2521,7 +2735,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+189"/> + <location line="+192"/> <source>(node id: %1)</source> <translation type="unfinished"></translation> </message> @@ -2547,17 +2761,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> - <source>Yes</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+0"/> - <source>No</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> + <location line="+20"/> <location line="+6"/> <source>Unknown</source> <translation type="unfinished"></translation> @@ -2597,12 +2801,12 @@ </message> <message> <location line="-39"/> - <location line="+153"/> + <location line="+159"/> <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source> <translation type="unfinished"></translation> </message> <message> - <location line="-121"/> + <location line="-127"/> <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> <translation type="unfinished"></translation> </message> @@ -2617,7 +2821,7 @@ <translation type="unfinished"></translation> </message> <message> - <location line="+17"/> + <location line="+23"/> <source>Clear all fields of the form.</source> <translation type="unfinished"></translation> </message> @@ -2681,68 +2885,73 @@ <source>Copy amount</source> <translation type="unfinished"></translation> </message> + <message> + <location line="+131"/> + <source>Could not unlock wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Could not generate new %1 address</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>ReceiveRequestDialog</name> <message> - <location filename="../forms/receiverequestdialog.ui" line="+29"/> - <source>QR Code</source> + <location filename="../forms/receiverequestdialog.ui" line="+14"/> + <source>Request payment to ...</source> <translation type="unfinished"></translation> </message> <message> - <location line="+46"/> - <source>Copy &URI</source> + <location line="+76"/> + <source>Address:</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> - <source>Copy &Address</source> + <location line="+29"/> + <source>Amount:</source> <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> - <source>&Save Image...</source> + <location line="+29"/> + <source>Label:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../receiverequestdialog.cpp" line="+64"/> - <source>Request payment to %1</source> + <location line="+32"/> + <source>Message:</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> - <source>Payment information</source> + <location line="+32"/> + <source>Wallet:</source> <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> - <source>URI</source> + <location line="+28"/> + <source>Copy &URI</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> - <source>Address</source> + <location line="+10"/> + <source>Copy &Address</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> - <source>Amount</source> - <translation type="unfinished">Amount</translation> - </message> - <message> - <location line="+2"/> - <source>Label</source> + <location line="+10"/> + <source>&Save Image...</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> - <source>Message</source> + <location filename="../receiverequestdialog.cpp" line="+49"/> + <source>Request payment to %1</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> - <source>Wallet</source> - <translation type="unfinished">Wallet</translation> + <location filename="../forms/receiverequestdialog.ui" line="-221"/> + <source>Payment information</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -2787,7 +2996,7 @@ <name>SendCoinsDialog</name> <message> <location filename="../forms/sendcoinsdialog.ui" line="+14"/> - <location filename="../sendcoinsdialog.cpp" line="+622"/> + <location filename="../sendcoinsdialog.cpp" line="+662"/> <source>Send Coins</source> <translation>Send Coins</translation> </message> @@ -2974,7 +3183,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation>S&end</translation> </message> <message> - <location filename="../sendcoinsdialog.cpp" line="-533"/> + <location filename="../sendcoinsdialog.cpp" line="-572"/> <source>Copy quantity</source> <translation type="unfinished"></translation> </message> @@ -3024,7 +3233,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+100"/> + <location line="+90"/> <source> from wallet '%1'</source> <translation type="unfinished"></translation> </message> @@ -3039,7 +3248,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location line="+7"/> <source>Do you want to draft this transaction?</source> <translation type="unfinished"></translation> </message> @@ -3049,12 +3258,27 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+5"/> - <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <location line="+71"/> + <source>Create Unsigned</source> <translation type="unfinished"></translation> </message> <message> - <location line="+43"/> + <location line="+44"/> + <source>Save Transaction Data</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Partially Signed Transaction (Binary) (*.psbt)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>PSBT saved</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-75"/> <source>or</source> <translation type="unfinished"></translation> </message> @@ -3064,7 +3288,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="-22"/> + <location line="-24"/> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> <source>Please, review your transaction.</source> <translation type="unfinished"></translation> </message> @@ -3084,12 +3313,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+9"/> + <location line="+7"/> <source>To review recipient list click "Show Details..."</source> <translation type="unfinished"></translation> </message> <message> - <location line="+5"/> + <location line="+18"/> <source>Confirm send coins</source> <translation type="unfinished"></translation> </message> @@ -3100,21 +3329,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos </message> <message> <location line="+1"/> - <source>Copy PSBT to clipboard</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+0"/> <source>Send</source> <translation type="unfinished"></translation> </message> <message> - <location line="+23"/> - <source>PSBT copied</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+166"/> + <location line="+228"/> <source>Watch-only balance:</source> <translation type="unfinished"></translation> </message> @@ -3159,7 +3378,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location line="+125"/> + <location line="+118"/> <source>Estimated to begin confirmation within %n block(s).</source> <translation> <numerusform>Estimated to begin confirmation within %n block.</numerusform> @@ -3167,7 +3386,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos </translation> </message> <message> - <location line="+101"/> + <location line="+100"/> <source>Warning: Invalid Bitcoin address</source> <translation type="unfinished"></translation> </message> @@ -3305,7 +3524,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <context> <name>ShutdownWindow</name> <message> - <location filename="../utilitydialog.cpp" line="+83"/> + <location filename="../utilitydialog.cpp" line="+85"/> <source>%1 is shutting down...</source> <translation type="unfinished"></translation> </message> @@ -3444,7 +3663,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location filename="../signverifymessagedialog.cpp" line="+117"/> + <location filename="../signverifymessagedialog.cpp" line="+120"/> <location line="+99"/> <source>The entered address is invalid.</source> <translation type="unfinished"></translation> @@ -3518,7 +3737,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <context> <name>TrafficGraphWidget</name> <message> - <location filename="../trafficgraphwidget.cpp" line="+81"/> + <location filename="../trafficgraphwidget.cpp" line="+82"/> <source>KB/s</source> <translation type="unfinished"></translation> </message> @@ -3764,7 +3983,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation>This pane shows a detailed description of the transaction</translation> </message> <message> - <location filename="../transactiondescdialog.cpp" line="+17"/> + <location filename="../transactiondescdialog.cpp" line="+18"/> <source>Details for %1</source> <translation type="unfinished"></translation> </message> @@ -3772,7 +3991,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <context> <name>TransactionTableModel</name> <message> - <location filename="../transactiontablemodel.cpp" line="+225"/> + <location filename="../transactiontablemodel.cpp" line="+221"/> <source>Date</source> <translation type="unfinished">Date</translation> </message> @@ -4094,7 +4313,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+171"/> + <location line="+172"/> <source>Range:</source> <translation type="unfinished"></translation> </message> @@ -4107,7 +4326,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <context> <name>UnitDisplayStatusBarControl</name> <message> - <location filename="../bitcoingui.cpp" line="+156"/> + <location filename="../bitcoingui.cpp" line="+40"/> <source>Unit to show amounts in. Click to select another unit.</source> <translation type="unfinished"></translation> </message> @@ -4115,7 +4334,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <context> <name>WalletController</name> <message> - <location filename="../walletcontroller.cpp" line="-211"/> + <location filename="../walletcontroller.cpp" line="-238"/> <source>Close wallet</source> <translation type="unfinished"></translation> </message> @@ -4129,24 +4348,41 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> <translation type="unfinished"></translation> </message> + <message> + <location line="+13"/> + <source>Close all wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Are you sure you wish to close all wallets?</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>WalletFrame</name> <message> - <location filename="../walletframe.cpp" line="+28"/> - <source>No wallet has been loaded.</source> + <location filename="../walletframe.cpp" line="+37"/> + <source>No wallet has been loaded. +Go to File > Open Wallet to load a wallet. +- OR -</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Create a new wallet</source> <translation type="unfinished"></translation> </message> </context> <context> <name>WalletModel</name> <message> - <location filename="../walletmodel.cpp" line="+195"/> + <location filename="../walletmodel.cpp" line="+214"/> <source>Send Coins</source> <translation type="unfinished">Send Coins</translation> </message> <message> - <location line="+288"/> + <location line="+282"/> <location line="+45"/> <location line="+13"/> <location line="+5"/> @@ -4217,7 +4453,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <context> <name>WalletView</name> <message> - <location filename="../walletview.cpp" line="+46"/> + <location filename="../walletview.cpp" line="+51"/> <source>&Export</source> <translation type="unfinished">&Export</translation> </message> @@ -4227,7 +4463,39 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished">Export the data in the current tab to a file</translation> </message> <message> - <location line="+182"/> + <location line="+165"/> + <location line="+9"/> + <location line="+10"/> + <source>Error</source> + <translation type="unfinished">Error</translation> + </message> + <message> + <location line="-19"/> + <source>Unable to decode PSBT from clipboard (invalid base64)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Load Transaction Data</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Partially Signed Transaction (*.psbt)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>PSBT file must be smaller than 100 MiB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Unable to decode PSBT</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+39"/> <source>Backup Wallet</source> <translation type="unfinished"></translation> </message> @@ -4265,7 +4533,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <context> <name>bitcoin-core</name> <message> - <location filename="../bitcoinstrings.cpp" line="+28"/> + <location filename="../bitcoinstrings.cpp" line="+27"/> <source>Distributed under the MIT software license, see the accompanying file %s or %s</source> <translation type="unfinished"></translation> </message> @@ -4280,12 +4548,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+68"/> - <source>Error: A fatal internal error occurred, see debug.log for details</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+26"/> + <location line="+102"/> <source>Pruning blockstore...</source> <translation type="unfinished"></translation> </message> @@ -4295,17 +4558,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="-162"/> + <location line="-169"/> <source>The %s developers</source> <translation type="unfinished"></translation> </message> <message> - <location line="+4"/> - <source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+3"/> + <location line="+7"/> <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> <translation type="unfinished"></translation> </message> @@ -4315,7 +4573,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+10"/> + <location line="+9"/> <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> <translation type="unfinished"></translation> </message> @@ -4335,17 +4593,17 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location line="+11"/> <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> <translation type="unfinished"></translation> </message> <message> - <location line="+3"/> + <location line="+6"/> <source>This is the transaction fee you may discard if change is smaller than dust at this level</source> <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location line="+11"/> <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source> <translation type="unfinished"></translation> </message> @@ -4360,32 +4618,22 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+7"/> + <location line="+3"/> <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6"/> - <source>%d of last 100 blocks have unexpected version</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+1"/> - <source>%s corrupt, salvage failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+2"/> + <location line="+7"/> <source>-maxmempool must be at least %d MB</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>Cannot resolve -%s address: '%s'</source> <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>Change index out of range</source> <translation type="unfinished"></translation> </message> @@ -4415,7 +4663,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> + <location line="+2"/> <source>Do you want to rebuild the block database now?</source> <translation>Do you want to rebuild the block database now?</translation> </message> @@ -4460,7 +4708,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation>Error opening block database</translation> </message> <message> - <location line="+6"/> + <location line="+5"/> <source>Failed to listen on any port. Use -listen=0 if you want this.</source> <translation>Failed to listen on any port. Use -listen=0 if you want this.</translation> </message> @@ -4470,7 +4718,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> + <location line="+2"/> <source>Importing...</source> <translation type="unfinished"></translation> </message> @@ -4505,7 +4753,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+22"/> + <location line="+23"/> <source>Specified blocks directory "%s" does not exist.</source> <translation type="unfinished"></translation> </message> @@ -4525,22 +4773,17 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="-46"/> + <location line="-47"/> <source>Loading P2P addresses...</source> <translation type="unfinished"></translation> </message> <message> - <location line="-15"/> - <source>Error: Disk space is too low!</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+16"/> + <location line="+1"/> <source>Loading banlist...</source> <translation type="unfinished"></translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>Not enough file descriptors available.</source> <translation>Not enough file descriptors available.</translation> </message> @@ -4610,12 +4853,22 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="-151"/> + <location line="-159"/> <source>Error: Listening for incoming connections failed (listen returned error %s)</source> <translation type="unfinished"></translation> </message> <message> - <location line="+5"/> + <location line="-20"/> + <source>%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring a backup.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use version 169900 or no version specified.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> <translation type="unfinished"></translation> </message> @@ -4625,12 +4878,42 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+31"/> + <location line="+2"/> + <source>This error could occur if this wallet was not shutdown cleanly and was last loaded using a build with a newer version of Berkeley DB. If so, please use the software that last loaded this wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>This is the maximum transaction fee you pay (in addition to the normal fee) to prioritize partial spend avoidance over regular coin selection.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Transaction needs a change address, but we can't generate it. Please call keypoolrefill first.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> <translation type="unfinished"></translation> </message> <message> - <location line="+27"/> + <location line="+5"/> + <source>A fatal internal error occurred, see debug.log for details</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Cannot set -peerblockfilters without -blockfilterindex.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Disk space is too low!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> <source>Error reading from database, shutting down.</source> <translation type="unfinished"></translation> </message> @@ -4640,12 +4923,22 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+2"/> + <location line="+1"/> <source>Error: Disk space is low for %s</source> <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location line="+1"/> + <source>Error: Keypool ran out, please call keypoolrefill first</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Fee rate (%s) is lower than the minimum fee rate setting (%s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> <source>Invalid -onion address or hostname: '%s'</source> <translation type="unfinished"></translation> </message> @@ -4670,6 +4963,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> + <location line="+1"/> + <source>No proxy server specified. Use -proxy=<ip> or -proxy=<ip:port>.</source> + <translation type="unfinished"></translation> + </message> + <message> <location line="+3"/> <source>Prune mode is incompatible with -blockfilterindex.</source> <translation type="unfinished"></translation> @@ -4761,17 +5059,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> - <source>Zapping all transactions from wallet...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="-174"/> + <location line="-177"/> <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+53"/> + <location line="+56"/> <source>This is the transaction fee you may pay when fee estimates are not available.</source> <translation type="unfinished"></translation> </message> @@ -4781,22 +5074,17 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation type="unfinished"></translation> </message> <message> - <location line="+14"/> - <source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+12"/> + <location line="+23"/> <source>%s is set very high!</source> <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> + <location line="+23"/> <source>Error loading wallet %s. Duplicate -wallet filename specified.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+41"/> + <location line="+42"/> <source>Starting network threads...</source> <translation type="unfinished"></translation> </message> @@ -4836,32 +5124,27 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation>Unknown network specified in -onlynet: '%s'</translation> </message> <message> - <location line="-52"/> + <location line="-53"/> <source>Insufficient funds</source> <translation>Insufficient funds</translation> </message> <message> - <location line="-102"/> - <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+12"/> + <location line="-97"/> <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+41"/> + <location line="+51"/> <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source> <translation type="unfinished"></translation> </message> <message> - <location line="+21"/> + <location line="+17"/> <source>Cannot write to data directory '%s'; check permissions.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+39"/> + <location line="+40"/> <source>Loading block index...</source> <translation>Loading block index...</translation> </message> @@ -4871,17 +5154,17 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satos <translation>Loading wallet...</translation> </message> <message> - <location line="-42"/> + <location line="-44"/> <source>Cannot downgrade wallet</source> <translation>Cannot downgrade wallet</translation> </message> <message> - <location line="+51"/> + <location line="+54"/> <source>Rescanning...</source> <translation>Rescanning...</translation> </message> <message> - <location line="-41"/> + <location line="-42"/> <source>Done loading</source> <translation>Done loading</translation> </message> diff --git a/src/qt/locale/bitcoin_en_GB.ts b/src/qt/locale/bitcoin_en_GB.ts index ab674f0c7d..4d943fd532 100644 --- a/src/qt/locale/bitcoin_en_GB.ts +++ b/src/qt/locale/bitcoin_en_GB.ts @@ -189,7 +189,7 @@ </message> <message> <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> - <translation>Remember that encrypting your wallet cannot fully protect your Bitcoins from being stolen by malware infecting your computer.</translation> + <translation>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</translation> </message> <message> <source>Wallet to be encrypted</source> @@ -255,11 +255,11 @@ <name>BitcoinGUI</name> <message> <source>Sign &message...</source> - <translation>Sign &message ...</translation> + <translation>Sign &message...</translation> </message> <message> <source>Synchronizing with network...</source> - <translation>Synchronising with network ...</translation> + <translation>Synchronizing with network...</translation> </message> <message> <source>&Overview</source> @@ -303,7 +303,7 @@ </message> <message> <source>&Options...</source> - <translation>&Options ...</translation> + <translation>&Options...</translation> </message> <message> <source>Modify configuration options for %1</source> @@ -311,19 +311,19 @@ </message> <message> <source>&Encrypt Wallet...</source> - <translation>&Encrypt Wallet ...</translation> + <translation>&Encrypt Wallet...</translation> </message> <message> <source>&Backup Wallet...</source> - <translation>&Backup Wallet ...</translation> + <translation>&Backup Wallet...</translation> </message> <message> <source>&Change Passphrase...</source> - <translation>&Change Passphrase ...</translation> + <translation>&Change Passphrase...</translation> </message> <message> <source>Open &URI...</source> - <translation>Open &URI ...</translation> + <translation>Open &URI...</translation> </message> <message> <source>Create Wallet...</source> @@ -351,11 +351,11 @@ </message> <message> <source>Syncing Headers (%1%)...</source> - <translation>Syncing Headers (%1%) ...</translation> + <translation>Syncing Headers (%1%)...</translation> </message> <message> <source>Reindexing blocks on disk...</source> - <translation>Reindexing blocks on disk ...</translation> + <translation>Reindexing blocks on disk...</translation> </message> <message> <source>Proxy is <b>enabled</b>: %1</source> @@ -375,7 +375,7 @@ </message> <message> <source>&Verify message...</source> - <translation>&Verify message ...</translation> + <translation>&Verify message...</translation> </message> <message> <source>&Send</source> @@ -443,11 +443,11 @@ </message> <message> <source>Indexing blocks on disk...</source> - <translation>Indexing blocks on disk ...</translation> + <translation>Indexing blocks on disk...</translation> </message> <message> <source>Processing blocks on disk...</source> - <translation>Processing blocks on disk ...</translation> + <translation>Processing blocks on disk...</translation> </message> <message numerus="yes"> <source>Processed %n block(s) of transaction history.</source> @@ -499,7 +499,7 @@ </message> <message> <source>Open a bitcoin: URI</source> - <translation>Open a Bitcoin: URI</translation> + <translation>Open a bitcoin: URI</translation> </message> <message> <source>Open Wallet</source> @@ -511,7 +511,7 @@ </message> <message> <source>Close Wallet...</source> - <translation>Close Wallet ...</translation> + <translation>Close Wallet...</translation> </message> <message> <source>Close wallet</source> @@ -535,7 +535,7 @@ </message> <message> <source>Minimize</source> - <translation>Minimise</translation> + <translation>Minimize</translation> </message> <message> <source>Zoom</source> @@ -551,11 +551,11 @@ </message> <message> <source>Connecting to peers...</source> - <translation>Connecting to peers ...</translation> + <translation>Connecting to peers...</translation> </message> <message> <source>Catching up...</source> - <translation>Catching up ...</translation> + <translation>Catching up...</translation> </message> <message> <source>Error: %1</source> @@ -952,7 +952,7 @@ </message> <message> <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> - <translation>Reverting this setting requires re-downloading the entire Blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</translation> + <translation>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</translation> </message> <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> @@ -960,7 +960,7 @@ </message> <message> <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source> - <translation>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterwards to keep your disk usage low.</translation> + <translation>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</translation> </message> <message> <source>Use the default data directory</source> @@ -1023,11 +1023,11 @@ </message> <message> <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source> - <translation>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronising with the Bitcoin network, as detailed below.</translation> + <translation>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</translation> </message> <message> <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source> - <translation>Attempting to spend Bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</translation> + <translation>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</translation> </message> <message> <source>Number of blocks left</source> @@ -1035,7 +1035,7 @@ </message> <message> <source>Unknown...</source> - <translation>Unknown ...</translation> + <translation>Unknown...</translation> </message> <message> <source>Last block time</source> @@ -1051,7 +1051,7 @@ </message> <message> <source>calculating...</source> - <translation>calculating ...</translation> + <translation>calculating...</translation> </message> <message> <source>Estimated time left until synced</source> @@ -1071,14 +1071,14 @@ </message> <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> - <translation>Unknown. Syncing Headers (%1, %2%) ...</translation> + <translation>Unknown. Syncing Headers (%1, %2%)...</translation> </message> </context> <context> <name>OpenURIDialog</name> <message> <source>Open bitcoin URI</source> - <translation>Open Bitcoin URI</translation> + <translation>Open bitcoin URI</translation> </message> <message> <source>URI:</source> @@ -1101,7 +1101,7 @@ </message> <message> <source>Opening Wallet <b>%1</b>...</source> - <translation>Opening Wallet <b>%1</b> ...</translation> + <translation>Opening Wallet <b>%1</b>...</translation> </message> </context> <context> @@ -1152,7 +1152,7 @@ </message> <message> <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source> - <translation>Minimise instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</translation> + <translation>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</translation> </message> <message> <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> @@ -1284,15 +1284,15 @@ </message> <message> <source>Show only a tray icon after minimizing the window.</source> - <translation>Show on a tray icon after minimising the window.</translation> + <translation>Show only a tray icon after minimizing the window.</translation> </message> <message> <source>&Minimize to the tray instead of the taskbar</source> - <translation>&Minimise to the tray instead of the task bar</translation> + <translation>&Minimize to the tray instead of the taskbar</translation> </message> <message> <source>M&inimize on close</source> - <translation>M&inimise on close</translation> + <translation>M&inimize on close</translation> </message> <message> <source>&Display</source> @@ -1387,7 +1387,7 @@ </message> <message> <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> - <translation>The displayed information may be out of date. Your Wallet automatically synchronises with the Bitcoin Network after a connection is established, but this process has not been completed yet.</translation> + <translation>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.</translation> </message> <message> <source>Watch-only:</source> @@ -1462,7 +1462,7 @@ </message> <message> <source>Cannot start bitcoin: click-to-pay handler</source> - <translation>Cannot start Bitcoin: click-to-pay handler</translation> + <translation>Cannot start bitcoin: click-to-pay handler</translation> </message> <message> <source>URI handling</source> @@ -1620,7 +1620,7 @@ </message> <message> <source>%1 didn't yet exit safely...</source> - <translation>%1 didn't exit safely yet ...</translation> + <translation>%1 didn't yet exit safely...</translation> </message> <message> <source>unknown</source> @@ -1631,7 +1631,7 @@ <name>QRImageWidget</name> <message> <source>&Save Image...</source> - <translation>&Save Image ...</translation> + <translation>&Save Image...</translation> </message> <message> <source>&Copy Image</source> @@ -1698,7 +1698,7 @@ </message> <message> <source>Startup time</source> - <translation>Start up time</translation> + <translation>Startup time</translation> </message> <message> <source>Network</source> @@ -1734,7 +1734,7 @@ </message> <message> <source>Wallet: </source> - <translation>Wallet:</translation> + <translation>Wallet: </translation> </message> <message> <source>(none)</source> @@ -1789,6 +1789,14 @@ <translation>Synced Blocks</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>The mapped Autonomous System used for diversifying peer selection.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapped AS</translation> + </message> + <message> <source>User Agent</source> <translation>User Agent</translation> </message> @@ -1930,7 +1938,7 @@ </message> <message> <source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</source> - <translation>WARNING: Scammers have been active, telling users to type commands here and stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</translation> + <translation>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</translation> </message> <message> <source>Network activity disabled</source> @@ -2088,7 +2096,7 @@ </message> <message> <source>&Save Image...</source> - <translation>&Save Image ...</translation> + <translation>&Save Image...</translation> </message> <message> <source>Request payment to %1</source> @@ -2166,7 +2174,7 @@ </message> <message> <source>Inputs...</source> - <translation>Inputs ...</translation> + <translation>Inputs...</translation> </message> <message> <source>automatically selected</source> @@ -2214,11 +2222,11 @@ </message> <message> <source>Choose...</source> - <translation>Choose ...</translation> + <translation>Choose...</translation> </message> <message> <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source> - <translation>Using the fallback fee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</translation> + <translation>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</translation> </message> <message> <source>Warning: Fee estimation is currently not possible.</source> @@ -2250,7 +2258,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> - <translation>(Smart fee not initialised yet. This usually takes a few blocks ...)</translation> + <translation>(Smart fee not initialized yet. This usually takes a few blocks...)</translation> </message> <message> <source>Send to multiple recipients at once</source> @@ -2278,7 +2286,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>A too low fee might result in a never confirming transaction (read the tooltip)</source> - <translation>A too low fee might result in a never-confirming transaction (read the tooltip)</translation> + <translation>A too low fee might result in a never confirming transaction (read the tooltip)</translation> </message> <message> <source>Confirmation time target:</source> @@ -2568,7 +2576,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <name>ShutdownWindow</name> <message> <source>%1 is shutting down...</source> - <translation>%1 is shutting down ...</translation> + <translation>%1 is shutting down...</translation> </message> <message> <source>Do not shut down the computer until this window disappears.</source> @@ -3050,7 +3058,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Range...</source> - <translation>Range ...</translation> + <translation>Range...</translation> </message> <message> <source>Received with</source> @@ -3074,7 +3082,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Enter address, transaction id, or label to search</source> - <translation>Enter address, transaction id or label to search.</translation> + <translation>Enter address, transaction id, or label to search</translation> </message> <message> <source>Min amount</source> @@ -3222,7 +3230,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Increasing transaction fee failed</source> - <translation>Increasing transaction fee failed.</translation> + <translation>Increasing transaction fee failed</translation> </message> <message> <source>Do you want to increase the fee?</source> @@ -3262,7 +3270,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Could not commit transaction</source> - <translation>Could not commit transaction.</translation> + <translation>Could not commit transaction</translation> </message> <message> <source>default wallet</source> @@ -3312,7 +3320,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <name>bitcoin-core</name> <message> <source>Distributed under the MIT software license, see the accompanying file %s or %s</source> - <translation>Distributed under the MIT software license, see the accompanying file %s or %s.</translation> + <translation>Distributed under the MIT software license, see the accompanying file %s or %s</translation> </message> <message> <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> @@ -3328,7 +3336,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Pruning blockstore...</source> - <translation>Pruning blockstore ...</translation> + <translation>Pruning blockstore...</translation> </message> <message> <source>Unable to start HTTP server. See debug log for details.</source> @@ -3372,7 +3380,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>This is the transaction fee you may discard if change is smaller than dust at this level</source> - <translation>This is the transaction fee you may discard if change is smaller than dust at this level.</translation> + <translation>This is the transaction fee you may discard if change is smaller than dust at this level</translation> </message> <message> <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source> @@ -3380,7 +3388,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</source> - <translation>Unable to rewind the database to a pre-fork state. You will need to re-download the blockchain</translation> + <translation>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</translation> </message> <message> <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> @@ -3392,7 +3400,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>%d of last 100 blocks have unexpected version</source> - <translation>%d of last 100 blocks have unexpected version.</translation> + <translation>%d of last 100 blocks have unexpected version</translation> </message> <message> <source>%s corrupt, salvage failed</source> @@ -3436,11 +3444,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Error initializing block database</source> - <translation>Error initialising block database</translation> + <translation>Error initializing block database</translation> </message> <message> <source>Error initializing wallet database environment %s!</source> - <translation>Error initialising wallet database environment %s!</translation> + <translation>Error initializing wallet database environment %s!</translation> </message> <message> <source>Error loading %s</source> @@ -3472,11 +3480,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Failed to rescan the wallet during initialization</source> - <translation>Failed to rescan the wallet during initialisation.</translation> + <translation>Failed to rescan the wallet during initialization</translation> </message> <message> <source>Importing...</source> - <translation>Importing ...</translation> + <translation>Importing...</translation> </message> <message> <source>Incorrect or no genesis block found. Wrong datadir for network?</source> @@ -3484,7 +3492,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Initialization sanity check failed. %s is shutting down.</source> - <translation>Initialisation sanity check failed. %s is shutting down.</translation> + <translation>Initialization sanity check failed. %s is shutting down.</translation> </message> <message> <source>Invalid P2P permission: '%s'</source> @@ -3520,7 +3528,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Loading P2P addresses...</source> - <translation>Loading P2P addresses ...</translation> + <translation>Loading P2P addresses...</translation> </message> <message> <source>Error: Disk space is too low!</source> @@ -3528,7 +3536,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Loading banlist...</source> - <translation>Loading banlist ...</translation> + <translation>Loading banlist...</translation> </message> <message> <source>Not enough file descriptors available.</source> @@ -3544,11 +3552,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Replaying blocks...</source> - <translation>Replaying blocks ...</translation> + <translation>Replaying blocks...</translation> </message> <message> <source>Rewinding blocks...</source> - <translation>Rewinding blocks ...</translation> + <translation>Rewinding blocks...</translation> </message> <message> <source>The source code is available from %s.</source> @@ -3556,7 +3564,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Transaction fee and change calculation failed</source> - <translation>Transaction fee and change calculation failed.</translation> + <translation>Transaction fee and change calculation failed</translation> </message> <message> <source>Unable to bind to %s on this computer. %s is probably already running.</source> @@ -3580,7 +3588,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Verifying blocks...</source> - <translation>Verifying blocks ...</translation> + <translation>Verifying blocks...</translation> </message> <message> <source>Wallet needed to be rewritten: restart %s to complete</source> @@ -3608,7 +3616,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Error upgrading chainstate database</source> - <translation>Error upgrading chainstate database.</translation> + <translation>Error upgrading chainstate database</translation> </message> <message> <source>Error: Disk space is low for %s</source> @@ -3652,15 +3660,15 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Specified -walletdir "%s" does not exist</source> - <translation>Specified -walletdir "%s" does not exist.</translation> + <translation>Specified -walletdir "%s" does not exist</translation> </message> <message> <source>Specified -walletdir "%s" is a relative path</source> - <translation>Specified -walletdir "%s" is a relative path.</translation> + <translation>Specified -walletdir "%s" is a relative path</translation> </message> <message> <source>Specified -walletdir "%s" is not a directory</source> - <translation>Specified -walletdir "%s" is not a directory.</translation> + <translation>Specified -walletdir "%s" is not a directory</translation> </message> <message> <source>The specified config file %s does not exist @@ -3694,7 +3702,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Unable to generate initial keys</source> - <translation>Unable to generate initial keys.</translation> + <translation>Unable to generate initial keys</translation> </message> <message> <source>Unknown -blockfilterindex value %s.</source> @@ -3702,7 +3710,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Verifying wallet(s)...</source> - <translation>Verifying wallet(s) ...</translation> + <translation>Verifying wallet(s)...</translation> </message> <message> <source>Warning: unknown new rules activated (versionbit %i)</source> @@ -3710,7 +3718,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Zapping all transactions from wallet...</source> - <translation>Zapping all transactions from wallet ...</translation> + <translation>Zapping all transactions from wallet...</translation> </message> <message> <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> @@ -3738,7 +3746,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Starting network threads...</source> - <translation>Starting network threads ...</translation> + <translation>Starting network threads...</translation> </message> <message> <source>The wallet will avoid paying less than the minimum relay fee.</source> @@ -3754,15 +3762,15 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Transaction amounts must not be negative</source> - <translation>Transaction amounts must not be negative.</translation> + <translation>Transaction amounts must not be negative</translation> </message> <message> <source>Transaction has too long of a mempool chain</source> - <translation>Transaction has too long of a mempool chain.</translation> + <translation>Transaction has too long of a mempool chain</translation> </message> <message> <source>Transaction must have at least one recipient</source> - <translation>Transaction must have at least one recipient.</translation> + <translation>Transaction must have at least one recipient</translation> </message> <message> <source>Unknown network specified in -onlynet: '%s'</source> @@ -3790,11 +3798,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Loading block index...</source> - <translation>Loading block index ...</translation> + <translation>Loading block index...</translation> </message> <message> <source>Loading wallet...</source> - <translation>Loading wallet ...</translation> + <translation>Loading wallet...</translation> </message> <message> <source>Cannot downgrade wallet</source> @@ -3802,7 +3810,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Rescanning...</source> - <translation>Rescanning ...</translation> + <translation>Rescanning...</translation> </message> <message> <source>Done loading</source> diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/bitcoin_es.ts index b681cff011..e4c28c4704 100644 --- a/src/qt/locale/bitcoin_es.ts +++ b/src/qt/locale/bitcoin_es.ts @@ -395,7 +395,7 @@ </message> <message> <source>Encrypt the private keys that belong to your wallet</source> - <translation>Cifrar las claves privadas de su monedero</translation> + <translation>Encriptar las claves privadas que pertenecen a su billetera</translation> </message> <message> <source>Sign messages with your Bitcoin addresses to prove you own them</source> @@ -471,7 +471,7 @@ </message> <message> <source>Warning</source> - <translation>Aviso</translation> + <translation>Advertencia</translation> </message> <message> <source>Information</source> @@ -519,7 +519,7 @@ </message> <message> <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source> - <translation>Muestre el mensaje de ayuda %1 para obtener una lista con posibles opciones de línea de comandos de Bitcoin</translation> + <translation>Muestra el mensaje de ayuda %1 para obtener una lista con posibles opciones de línea de comandos de Bitcoin.</translation> </message> <message> <source>default wallet</source> @@ -812,7 +812,7 @@ </message> <message> <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> - <translation>Encriptar monedero. El monedero será cifrado con la contraseña que elija.</translation> + <translation>Cifrar monedero. El monedero será cifrado con la contraseña que elija.</translation> </message> <message> <source>Encrypt Wallet</source> @@ -1093,7 +1093,7 @@ </message> <message> <source>Open wallet warning</source> - <translation>Advertencia sobre apertura de monedero</translation> + <translation>Aviso de apertura de monedero</translation> </message> <message> <source>default wallet</source> @@ -1115,6 +1115,10 @@ <translation>&Principal</translation> </message> <message> + <source>Automatically start %1 after logging in to the system.</source> + <translation>Iniciar automaticamente %1 al encender el sistema.</translation> + </message> + <message> <source>&Start %1 on system login</source> <translation>& Comience %1 en el inicio de sesión del sistema</translation> </message> @@ -1164,7 +1168,7 @@ </message> <message> <source>Reset all client options to default.</source> - <translation>Restablecer todas las opciones del cliente a las predeterminadas.</translation> + <translation>Restablecer todas las opciones predeterminadas del cliente.</translation> </message> <message> <source>&Reset Options</source> @@ -1220,7 +1224,7 @@ </message> <message> <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source> - <translation>Abrir automáticamente el puerto del cliente Bitcoin en el router. Esta opción solo funciona si el router admite UPnP y está activado.</translation> + <translation>Abrir automáticamente el puerto del cliente Bitcoin en el router. Esta opción solo funciona cuando el router admite UPnP y está activado.</translation> </message> <message> <source>Map port using &UPnP</source> @@ -1236,7 +1240,7 @@ </message> <message> <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> - <translation>Conéctese a la red de Bitcoin a través de un proxy SOCKS5.</translation> + <translation>Conectar a la red de Bitcoin a través de un proxy SOCKS5.</translation> </message> <message> <source>&Connect through SOCKS5 proxy (default proxy):</source> @@ -1280,7 +1284,7 @@ </message> <message> <source>Show only a tray icon after minimizing the window.</source> - <translation>Minimizar la ventana a la bandeja de iconos del sistema.</translation> + <translation>Mostrar solo un icono de sistema después de minimizar la ventana</translation> </message> <message> <source>&Minimize to the tray instead of the taskbar</source> @@ -1379,7 +1383,7 @@ <name>OverviewPage</name> <message> <source>Form</source> - <translation>Desde</translation> + <translation>Formulario</translation> </message> <message> <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> @@ -1395,7 +1399,7 @@ </message> <message> <source>Your current spendable balance</source> - <translation>Su balance actual gastable</translation> + <translation>Su saldo actual gastable</translation> </message> <message> <source>Pending:</source> @@ -1403,7 +1407,7 @@ </message> <message> <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> - <translation>Total de transacciones que deben ser confirmadas y que no cuentan aun con el balance gastable necesario.</translation> + <translation>Total de transacciones que deben ser confirmadas y que no cuentan con el saldo disponible necesario.</translation> </message> <message> <source>Immature:</source> @@ -1785,6 +1789,14 @@ <translation>Bloques sincronizados</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>El Sistema Autónomo mapeado utilizado para la selección diversificada de participantes.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>SA Mapeado</translation> + </message> + <message> <source>User Agent</source> <translation>Agente de usuario</translation> </message> @@ -2004,6 +2016,14 @@ <translation>Monto opcional a solicitar. Dejarlo vacío o en cero para no solicitar un monto específico.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Etiqueta opcional para asociar con la nueva dirección de recepción (utilizado por ti para identificar una factura). También esta asociado a la solicitud de pago.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Mensaje opcional asociado a la solicitud de pago que podría ser presentado al remitente </translation> + </message> + <message> <source>&Create new receiving address</source> <translation>Crear nueva dirección para recepción</translation> </message> @@ -2190,11 +2210,11 @@ </message> <message> <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source> - <translation>Al activarse, si la dirección de cambio está vacía o es inválida, las monedas serán enviadas a una nueva dirección generada.</translation> + <translation>Si se activa, pero la dirección de cambio está vacía o es inválida, las monedas serán enviadas a una nueva dirección generada.</translation> </message> <message> <source>Custom change address</source> - <translation>Dirección propia</translation> + <translation>Dirección de cambio personalizada.</translation> </message> <message> <source>Transaction Fee:</source> @@ -2257,6 +2277,10 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>Polvo:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Esconder ajustes de tarifas de transacción</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>Cuando hay menos volumen de transacciones que espacio en los bloques, los mineros y los nodos de retransmisión pueden imponer una comisión mínima. Pagar solo esta comisión mínima está bien, pero tenga en cuenta que esto puede resultar en una transacción nunca confirmada una vez que haya más demanda de transacciones de Bitcoin de la que la red puede procesar.</translation> </message> @@ -2330,7 +2354,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source> from wallet '%1'</source> - <translation>de monedero %1</translation> + <translation>desde el monedero %1</translation> </message> <message> <source>%1 to '%2'</source> @@ -2341,6 +2365,10 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>%1 a %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>¿Desea preparar esta transacción?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>¿Seguro que quiere enviar?</translation> </message> @@ -2377,10 +2405,26 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>Confirmar el envío de monedas</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Confirme la propuesta de transaccion</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Copiar la TBPF al portapapeles</translation> + </message> + <message> <source>Send</source> <translation>Enviar</translation> </message> <message> + <source>PSBT copied</source> + <translation>TBPF copiada</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Visualización unicamente balance:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>La dirección de envío no es válida. Por favor, revísela.</translation> </message> @@ -2398,7 +2442,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Duplicate address found: addresses should only be used once each.</source> - <translation>Dirección duplicada encontrada: la dirección sólo debería ser utilizada una vez por cada uso.</translation> + <translation>Dirección duplicada encontrada: las direcciones sólo deberían ser utilizadas una vez.</translation> </message> <message> <source>Transaction creation failed!</source> @@ -2418,11 +2462,11 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Warning: Invalid Bitcoin address</source> - <translation>Peligro: Dirección de Bitcoin inválida</translation> + <translation>Advertencia: Dirección de Bitcoin inválida.</translation> </message> <message> <source>Warning: Unknown change address</source> - <translation>Peligro: Dirección de cambio desconocida</translation> + <translation>Advertencia: Dirección de cambio desconocida.</translation> </message> <message> <source>Confirm custom change address</source> @@ -2430,7 +2474,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source> - <translation>La dirección de cambio seleccionada no es parte de su monedero. Parte de sus fondos serán enviados a esta dirección. ¿Está seguro?</translation> + <translation>La dirección que ha seleccionado para el cambio no es parte de su monedero. Parte o todos sus fondos pueden ser enviados a esta dirección. ¿Está seguro?</translation> </message> <message> <source>(no label)</source> @@ -2476,8 +2520,12 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>Eliminar esta entrada.</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>El monto a enviar en las unidades seleccionadas</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> - <translation>La comisión será deducida de la cantidad que sea enviada. El destinatario recibirá menos bitcoins que la cantidad introducida en el campo Cantidad. Si hay varios destinatarios seleccionados, la comisión será distribuida a partes iguales.</translation> + <translation>La comisión será deducida de la cantidad enviada. El destinatario recibirá menos bitcoins que la cantidad introducida en el campo Cantidad. Si hay varios destinatarios seleccionados, la comisión será distribuida a partes iguales.</translation> </message> <message> <source>S&ubtract fee from amount</source> @@ -2509,7 +2557,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Pay To:</source> - <translation>Paga a:</translation> + <translation>Pagar a:</translation> </message> <message> <source>Memo:</source> @@ -2602,6 +2650,14 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>La dirección Bitcoin con la que se firmó el mensaje</translation> </message> <message> + <source>The signed message to verify</source> + <translation>El mensaje firmado para verificar</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>La firma proporcionada cuando el mensaje fue firmado</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Verificar el mensaje para comprobar que fue firmado con la dirección Bitcoin indicada</translation> </message> @@ -2634,6 +2690,10 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>El desbloqueo del monedero fue cancelado.</translation> </message> <message> + <source>No error</source> + <translation>Sin error </translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>La llave privada para la dirección introducida no está disponible.</translation> </message> @@ -2817,7 +2877,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source> - <translation>Los bitcoins generados deben madurar %1 bloques antes de que puedan gastarse. Cuando generó este bloque, se transmitió a la red para que se añadiera a la cadena de bloques. Si no consigue entrar en la cadena, su estado cambiará a "no aceptado" y ya no se podrá gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque a pocos segundos del suyo.</translation> + <translation>Las monedas generadas deben madurar %1 bloques antes de que puedan gastarse. Cuando generó este bloque, fue retransmitido a la red para que se añadiera a la cadena de bloques. Si no consigue entrar en la cadena, su estado cambiará a "no aceptado" y ya no se podrá gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque a pocos segundos del suyo.</translation> </message> <message> <source>Debug information</source> @@ -2899,7 +2959,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Immature (%1 confirmations, will be available after %2)</source> - <translation>Inmaduro (%1 confirmación(es), Estarán disponibles después de %2)</translation> + <translation>Inmaduro (%1 confirmaciones, Estará disponible después de %2)</translation> </message> <message> <source>Generated but not accepted</source> @@ -3169,6 +3229,10 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>¿Desea incrementar la comisión?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>¿Desea preparar una transacción con aumento de comisión ?</translation> + </message> + <message> <source>Current fee:</source> <translation>Comisión actual:</translation> </message> @@ -3185,6 +3249,14 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>Confirmar incremento de comisión</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>No se pudo preparar la transacción.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>TBPF copiada</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>No se ha podido firmar la transacción.</translation> </message> @@ -3272,7 +3344,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> - <translation>No se puede bloquear el directorio %s. %s ya se está ejecutando.</translation> + <translation>No se puede bloquear el directorio %s. %s probablemente ya se está ejecutando.</translation> </message> <message> <source>Cannot provide specific connections and have addrman find outgoing connections at the same.</source> @@ -3300,7 +3372,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>This is the transaction fee you may discard if change is smaller than dust at this level</source> - <translation>Esta es la cuota de transacción que puede descartar si el cambio es más pequeño que el polvo a este nivel.</translation> + <translation>Esta es la comisión por transacción que puede descartar si el cambio es más pequeño que el polvo a este nivel.</translation> </message> <message> <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source> @@ -3332,7 +3404,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Cannot resolve -%s address: '%s'</source> - <translation>No se puede resolver -%s direccion: '%s'</translation> + <translation>No se puede resolver -%s dirección: '%s'</translation> </message> <message> <source>Change index out of range</source> @@ -3351,6 +3423,14 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis <translation>Corrupción de base de datos de bloques detectada.</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>No se pudo encontrar el archivo asmap %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>No se pudo analizar el archivo asmap %s</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>¿Quiere reconstruir la base de datos de bloques ahora?</translation> </message> @@ -3368,7 +3448,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Error loading %s: Private keys can only be disabled during creation</source> - <translation>Error cargando %s: Las claves privadas solo pueden ser deshabilitadas durante la creación</translation> + <translation>Error cargando %s: Las llaves privadas solo pueden ser deshabilitadas durante la creación.</translation> </message> <message> <source>Error loading %s: Wallet corrupted</source> @@ -3512,7 +3592,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> - <translation>Cantidad no válida para -maxtxfee=<amount>: '%s' (debe ser por lo menos la comisión mínima de %s para prevenir transacciones atascadas)</translation> + <translation>Cantidad no válida para -maxtxfee=<amount>: '%s' (debe ser al menos la comisión mínima de %s para prevenir transacciones atascadas)</translation> </message> <message> <source>The transaction amount is too small to send after the fee has been deducted</source> @@ -3622,7 +3702,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Verifying wallet(s)...</source> - <translation>Verificando monedero...</translation> + <translation>Verificando monedero(s)...</translation> </message> <message> <source>Warning: unknown new rules activated (versionbit %i)</source> @@ -3666,7 +3746,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>This is the minimum transaction fee you pay on every transaction.</source> - <translation>Esta es la tarifa mínima a pagar en cada transacción.</translation> + <translation>Esta es la comisión por transacción mínima a pagar en cada transacción.</translation> </message> <message> <source>This is the transaction fee you will pay if you send a transaction.</source> @@ -3686,7 +3766,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Unknown network specified in -onlynet: '%s'</source> - <translation>La red especificada en -onlynet '%s' es desconocida</translation> + <translation>Red desconocida especificada en -onlynet '%s'</translation> </message> <message> <source>Insufficient funds</source> @@ -3718,7 +3798,7 @@ Nota: Dado que la comisión se calcula por byte, una comisión de "100 satoshis </message> <message> <source>Cannot downgrade wallet</source> - <translation>No se puede rebajar el monedero</translation> + <translation>No se puede actualizar a una versión mas antigua el monedero.</translation> </message> <message> <source>Rescanning...</source> diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/bitcoin_es_CL.ts index 4b864f4e74..265eeeb2f7 100644 --- a/src/qt/locale/bitcoin_es_CL.ts +++ b/src/qt/locale/bitcoin_es_CL.ts @@ -997,7 +997,7 @@ Exportar los datos en la pestaña actual a un archivo</translation> </message> <message> <source>(0 = auto, <0 = leave that many cores free)</source> - <translation>(0 = auto, <0 = deja muchos núcleos gratis)</translation> + <translation>(0 = auto, <0 = deja esta cantidad de núcleos libres)</translation> </message> <message> <source>W&allet</source> diff --git a/src/qt/locale/bitcoin_es_CO.ts b/src/qt/locale/bitcoin_es_CO.ts index 5c83f25286..751dd5ca5b 100644 --- a/src/qt/locale/bitcoin_es_CO.ts +++ b/src/qt/locale/bitcoin_es_CO.ts @@ -699,6 +699,10 @@ </context> <context> <name>CreateWalletDialog</name> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Crea una billetera en blanco. Las billeteras en blanco inicialmente no tienen llaves privadas o texto. Las llaves privadas y las direcciones pueden ser importadas, o se puede establecer una semilla HD, más tarde.</translation> + </message> </context> <context> <name>EditAddressDialog</name> @@ -804,6 +808,10 @@ <translation>Al hacer clic OK, %1 iniciará el proceso de descarga y procesará el blockchain completo de %4 (%2 GB), iniciando desde el la transacción más antigua %3 cuando %4 se ejecutó inicialmente.</translation> </message> <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Revertir esta configuración requiere descargar la blockchain completa nuevamente. Es más rápido descargar la cadena completa y podarla después. Desactiva algunas funciones avanzadas.</translation> + </message> + <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> <translation>El primer proceso de sincronización consume muchos recursos, y es posible que puedan ocurrir problemas de hardware que anteriormente no hayas notado. Cada vez que ejecutes %1 automáticamente se reiniciará el proceso de sincronización desde el punto que lo dejaste anteriormente.</translation> </message> @@ -993,7 +1001,7 @@ </message> <message> <source>(0 = auto, <0 = leave that many cores free)</source> - <translation>(0 = auto, <0 = deja muchos núcleos gratis)</translation> + <translation>(0 = auto, <0 = deja esta cantidad de núcleos libres)</translation> </message> <message> <source>W&allet</source> diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/bitcoin_es_MX.ts index acb7f0dc3d..2c0028debc 100644 --- a/src/qt/locale/bitcoin_es_MX.ts +++ b/src/qt/locale/bitcoin_es_MX.ts @@ -70,6 +70,10 @@ <translation>Estas son tus direcciones de Bitcoin para enviar pagos. Siempre revisa el monto y la dirección de envío antes de enviar monedas.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>Estas son tus direcciones Bitcoin para recibir pagos. Usa el botón "Crear Nueva Dirección de Recepción" en la pestaña de recepciones para crear nuevas direcciones.</translation> + </message> + <message> <source>&Copy Address</source> <translation>&Copiar dirección</translation> </message> @@ -132,6 +136,10 @@ <translation>Repita la nueva contraseña</translation> </message> <message> + <source>Show passphrase</source> + <translation>Mostrar contraseña</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>Encriptar cartera</translation> </message> @@ -172,6 +180,30 @@ <translation>Cartera encriptada</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Ingresa la nueva frase contraseña para la billetera <br/>Por favor usa una frase contraseña de <b>diez o mas caracteres aleatorios </b>, o <b>ocho o mas palabras</b></translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Ingresa la antigua frase de contraseña y la nueva frase de contraseña para la billetera.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>Recuerda que encriptar tu billetera no puede proteger completamente tus bitcoins de ser robadas por malware que haya infectado tu computadora.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>Billetera para ser encriptada</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Tu billetera está por ser encriptada</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Tu billetera ha sido encriptada</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>IMPORTANTE: cualquier copia de seguridad anterior que haya hecho de su archivo de cartera debe ser reemplazada por el archivo de cartera encriptado y recién generado. Por razones de seguridad, las copias de seguridad anteriores del archivo de cartera sin cifrar serán inútiles tan pronto como empieces a usar la nueva billetera encriptada.</translation> </message> @@ -294,6 +326,14 @@ <translation>Abrir &URL...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>Crear cartera</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Crear una nueva cartera</translation> + </message> + <message> <source>Wallet:</source> <translation>Cartera:</translation> </message> @@ -389,10 +429,30 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) </translation> </message> <message> + <source>Show the list of used sending addresses and labels</source> + <translation>Mostrar la lista de direcciones y etiquetas de envío usadas</translation> + </message> + <message> + <source>Show the list of used receiving addresses and labels</source> + <translation>Mostrar la lista de direcciones y etiquetas de recepción usadas</translation> + </message> + <message> <source>&Command-line options</source> <translation>opciones de la &Linea de comandos</translation> </message> <message> + <source>Indexing blocks on disk...</source> + <translation>Indexando bloques en el disco...</translation> + </message> + <message> + <source>Processing blocks on disk...</source> + <translation>Procesando bloques en el disco...</translation> + </message> + <message> + <source>Transactions after this will not yet be visible.</source> + <translation>Las transacciones después de esto todavía no serán visibles.</translation> + </message> + <message> <source>Error</source> <translation>Error</translation> </message> @@ -409,10 +469,64 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Actualizado al dia </translation> </message> <message> + <source>Open Wallet</source> + <translation>Abrir Cartera</translation> + </message> + <message> + <source>Open a wallet</source> + <translation>Abrir una cartera</translation> + </message> + <message> + <source>Close Wallet...</source> + <translation>Cerrar Cartera...</translation> + </message> + <message> + <source>Close wallet</source> + <translation>Cerrar cartera</translation> + </message> + <message> + <source>default wallet</source> + <translation>cartera predeterminada</translation> + </message> + <message> + <source>No wallets available</source> + <translation>No hay carteras disponibles</translation> + </message> + <message> + <source>&Window</source> + <translation>&Ventana</translation> + </message> + <message> + <source>Minimize</source> + <translation>Minimizar</translation> + </message> + <message> + <source>Main Window</source> + <translation>Ventana Principal</translation> + </message> + <message> + <source>Connecting to peers...</source> + <translation>Conectando con los compañeros...</translation> + </message> + <message> <source>Catching up...</source> <translation>Recibiendo...</translation> </message> <message> + <source>Error: %1</source> + <translation>Error: %1</translation> + </message> + <message> + <source>Warning: %1</source> + <translation>Alerta: %1</translation> + </message> + <message> + <source>Date: %1 +</source> + <translation>Fecha: %1 +</translation> + </message> + <message> <source>Sent transaction</source> <translation>Enviar Transacción</translation> </message> @@ -428,10 +542,18 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> <translation>La cartera esta <b>encriptada</b> y <b>bloqueada</b> actualmente </translation> </message> - </context> + <message> + <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source> + <translation>Se produjo un error fatal. Bitcoin ya no puede continuar de forma segura y va a renunciar.</translation> + </message> +</context> <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>Selección de moneda</translation> + </message> + <message> <source>Quantity:</source> <translation>Cantidad</translation> </message> @@ -448,6 +570,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Cuota:</translation> </message> <message> + <source>Dust:</source> + <translation>Remanente monetario:</translation> + </message> + <message> <source>After Fee:</source> <translation>Después de los cargos por comisión. </translation> </message> @@ -456,14 +582,38 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Cambio</translation> </message> <message> + <source>(un)select all</source> + <translation>(De)seleccionar todo</translation> + </message> + <message> + <source>Tree mode</source> + <translation>Modo árbol </translation> + </message> + <message> + <source>List mode</source> + <translation>Modo lista </translation> + </message> + <message> <source>Amount</source> <translation>Monto</translation> </message> <message> + <source>Received with label</source> + <translation>Recibido con etiqueta</translation> + </message> + <message> + <source>Received with address</source> + <translation>recibido con dirección</translation> + </message> + <message> <source>Date</source> <translation>Fecha</translation> </message> <message> + <source>Confirmations</source> + <translation>Confirmaciones</translation> + </message> + <message> <source>Confirmed</source> <translation>Confirmado </translation> </message> @@ -512,6 +662,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>no</translation> </message> <message> + <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source> + <translation>Esta capa se vuelve roja si algún destinatario recibe un monto menor al actual limite del remanente monetario </translation> + </message> + <message> <source>(no label)</source> <translation>(sin etiqueta)</translation> </message> @@ -522,10 +676,46 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Create wallet failed</source> + <translation>La creación de la cartera falló</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Crear advertencia de cartera</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Crear una cartera </translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Nombre de la cartera </translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Encriptar la cartera. La cartera será encriptada con una frase de contraseña de tu elección.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Encripta la cartera</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Desactivar las llaves privadas de esta cartera. Las carteras con las llaves privadas desactivadas no tendrán llaves privadas y no podrán tener una semilla HD o llaves privadas importadas. Esto es ideal para las carteras "watch-only".</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Desactivar las claves privadas</translation> + </message> + <message> + <source>Create</source> + <translation>Crear</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -537,6 +727,14 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>&Etiqueta</translation> </message> <message> + <source>The label associated with this address list entry</source> + <translation>La etiqueta asociada a esta entrada de la lista de direcciones</translation> + </message> + <message> + <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> + <translation>La dirección asociada a esta entrada de la lista de direcciones. Esto sólo puede ser modificado para las direcciones de envío.</translation> + </message> + <message> <source>&Address</source> <translation>&Dirección</translation> </message> @@ -564,10 +762,22 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <context> <name>FreespaceChecker</name> <message> + <source>A new data directory will be created.</source> + <translation>Un nuevo directorio de datos será creado.</translation> + </message> + <message> <source>name</source> <translation>nombre</translation> </message> - </context> + <message> + <source>Path already exists, and is not a directory.</source> + <translation>El camino ya existe, y no es un directorio.</translation> + </message> + <message> + <source>Cannot create data directory here.</source> + <translation>No se puede crear un directorio de datos aquí.</translation> + </message> +</context> <context> <name>HelpMessageDialog</name> <message> @@ -582,10 +792,34 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <context> <name>Intro</name> <message> + <source>Welcome</source> + <translation>Bienvenido</translation> + </message> + <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Revertir esta configuración requiere descargar nuevamente la cadena de bloques en su totalidad. es mas eficaz descargar la cadena de bloques completa y después reducirla. Desabilitará algunas funciones avanzadas.</translation> + </message> + <message> + <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> + <translation>La sincronización inicial es muy demandante, por lo que algunos problemas en su equipo de computo que no hayan sido detectados pueden verse reflejados. Cada vez que corra al %1, continuará descargando donde se le dejó.</translation> + </message> + <message> + <source>Use the default data directory</source> + <translation>Usar el directorio de datos predeterminado</translation> + </message> + <message> + <source>Use a custom data directory:</source> + <translation>Usar un directorio de datos customizado:</translation> + </message> + <message> <source>Bitcoin</source> <translation>Bitcoin</translation> </message> <message> + <source>The wallet will also be stored in this directory.</source> + <translation>La cartera también se almacenará en este directorio.</translation> + </message> + <message> <source>Error</source> <translation>Error</translation> </message> @@ -596,12 +830,68 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <source>Form</source> <translation>Formulario</translation> </message> + <message> + <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source> + <translation>Las transacciones recientes pueden no ser visibles todavía, y por lo tanto el saldo de su cartera podría ser incorrecto. Esta información será correcta una vez que su cartera haya terminado de sincronizarse con la red de bitcoin, como se detalla abajo.</translation> + </message> + <message> + <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source> + <translation>Los intentos de gastar bitcoins que se vean afectados por transacciones aún no mostradas no serán aceptados por la red.</translation> + </message> + <message> + <source>Number of blocks left</source> + <translation>Número de bloques restantes</translation> + </message> + <message> + <source>Unknown...</source> + <translation>Desconocido...</translation> + </message> + <message> + <source>Progress</source> + <translation>Progreso </translation> + </message> + <message> + <source>Progress increase per hour</source> + <translation>Aumento del progreso por hora</translation> + </message> + <message> + <source>calculating...</source> + <translation>calculando...</translation> + </message> + <message> + <source>Estimated time left until synced</source> + <translation>Tiempo estimado restante hasta la sincronización</translation> + </message> + <message> + <source>Hide</source> + <translation>Ocultar </translation> + </message> + <message> + <source>Esc</source> + <translation>Esc</translation> + </message> </context> <context> <name>OpenURIDialog</name> - </context> + <message> + <source>Open bitcoin URI</source> + <translation>Abrir la URI de bitcoin</translation> + </message> + <message> + <source>URI:</source> + <translation>URI:</translation> + </message> +</context> <context> <name>OpenWalletActivity</name> + <message> + <source>Open wallet failed</source> + <translation>Abrir la cartera falló</translation> + </message> + <message> + <source>default wallet</source> + <translation>cartera predeterminada</translation> + </message> </context> <context> <name>OptionsDialog</name> @@ -610,10 +900,38 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Opciones</translation> </message> <message> + <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source> + <translation>Minimizar en lugar de salir de la aplicación cuando la ventana se cierra. Cuando esta opción está activada, la aplicación se cerrará sólo después de seleccionar Salir en el menú.</translation> + </message> + <message> + <source>Open Configuration File</source> + <translation>Abrir Configuración de Archivo</translation> + </message> + <message> <source>W&allet</source> <translation>Cartera</translation> </message> <message> + <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source> + <translation>Si usted desactiva el gasto de cambio no confirmado, el cambio de una transacción no puede ser utilizado hasta que esa transacción tenga al menos una confirmación. Esto también afecta la manera en que se calcula su saldo.</translation> + </message> + <message> + <source>&Spend unconfirmed change</source> + <translation>&Gastar el cambio no confirmado</translation> + </message> + <message> + <source>Accept connections from outside.</source> + <translation>Aceptar las conexiones del exterior.</translation> + </message> + <message> + <source>&Window</source> + <translation>&Ventana</translation> + </message> + <message> + <source>User Interface &language:</source> + <translation>Idioma de la interfaz de usuario:</translation> + </message> + <message> <source>none</source> <translation>Ninguno </translation> </message> @@ -621,6 +939,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <source>Error</source> <translation>Error</translation> </message> + <message> + <source>This change would require a client restart.</source> + <translation>Este cambio requeriría un reinicio del cliente.</translation> + </message> </context> <context> <name>OverviewPage</name> @@ -634,7 +956,15 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) </context> <context> <name>PeerTableModel</name> - </context> + <message> + <source>Sent</source> + <translation>Enviado</translation> + </message> + <message> + <source>Received</source> + <translation>Recibido</translation> + </message> +</context> <context> <name>QObject</name> <message> @@ -642,16 +972,144 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Monto</translation> </message> <message> + <source>N/A</source> + <translation>N/A</translation> + </message> + <message> + <source>Error: %1</source> + <translation>Error: %1</translation> + </message> + <message> <source>unknown</source> <translation>desconocido</translation> </message> </context> <context> <name>QRImageWidget</name> - </context> + <message> + <source>&Save Image...</source> + <translation>&Guardar imagen...</translation> + </message> + <message> + <source>&Copy Image</source> + <translation>&Copiar Imagen</translation> + </message> + <message> + <source>Error encoding URI into QR Code.</source> + <translation>Error codificando la URI en el Código QR.</translation> + </message> + <message> + <source>QR code support not available.</source> + <translation>El soporte del código QR no está disponible.</translation> + </message> + <message> + <source>Save QR Code</source> + <translation>Guardar Código QR</translation> + </message> + <message> + <source>PNG Image (*.png)</source> + <translation>PNG imagen (*.png)</translation> + </message> +</context> <context> <name>RPCConsole</name> - </context> + <message> + <source>N/A</source> + <translation>N/A</translation> + </message> + <message> + <source>Client version</source> + <translation>Versión cliente </translation> + </message> + <message> + <source>&Information</source> + <translation>&Información</translation> + </message> + <message> + <source>General</source> + <translation>General</translation> + </message> + <message> + <source>Network</source> + <translation>Red</translation> + </message> + <message> + <source>Name</source> + <translation>Nombre</translation> + </message> + <message> + <source>Wallet: </source> + <translation>Cartera:</translation> + </message> + <message> + <source>(none)</source> + <translation>(ninguno)</translation> + </message> + <message> + <source>Received</source> + <translation>Recibido</translation> + </message> + <message> + <source>Sent</source> + <translation>Enviado</translation> + </message> + <message> + <source>Decrease font size</source> + <translation>Reducir el tamaño de la letra</translation> + </message> + <message> + <source>Increase font size</source> + <translation>Aumentar el tamaño de la letra</translation> + </message> + <message> + <source>Services</source> + <translation>Servicios</translation> + </message> + <message> + <source>Connection Time</source> + <translation>Tiempo de conexión</translation> + </message> + <message> + <source>Last Send</source> + <translation>Último envío</translation> + </message> + <message> + <source>Last Receive</source> + <translation>Última recepción</translation> + </message> + <message> + <source>Network activity disabled</source> + <translation>Actividad de la red desactivada</translation> + </message> + <message> + <source>Executing command without any wallet</source> + <translation>Ejecutando el comando sin ninguna cartera</translation> + </message> + <message> + <source>never</source> + <translation>nunca</translation> + </message> + <message> + <source>Inbound</source> + <translation>Entrada</translation> + </message> + <message> + <source>Outbound</source> + <translation>Salida</translation> + </message> + <message> + <source>Yes</source> + <translation>Sí</translation> + </message> + <message> + <source>No</source> + <translation>No</translation> + </message> + <message> + <source>Unknown</source> + <translation>Desconocido</translation> + </message> +</context> <context> <name>ReceiveCoinsDialog</name> <message> @@ -671,6 +1129,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Mensaje opcional para agregar a la solicitud de pago, el cual será mostrado cuando la solicitud este abierta. Nota: El mensaje no se manda con el pago a travéz de la red de Bitcoin.</translation> </message> <message> + <source>An optional label to associate with the new receiving address.</source> + <translation>Una etiqueta opcional para asociar a la nueva dirección de recepción.</translation> + </message> + <message> <source>Use this form to request payments. All fields are <b>optional</b>.</source> <translation>Use este formulario para la solicitud de pagos. Todos los campos son <b>opcionales</b></translation> </message> @@ -679,6 +1141,46 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Monto opcional a solicitar. Dejarlo vacion o en cero no solicita un monto especifico.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Una etiqueta opcional para asociar a la nueva dirección de recepción (utilizada por usted para identificar una factura). También se adjunta a la solicitud de pago.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Un mensaje opcional que se adjunta a la solicitud de pago y que puede mostrarse al remitente.</translation> + </message> + <message> + <source>&Create new receiving address</source> + <translation>&Crear una nueva dirección de recepción</translation> + </message> + <message> + <source>Clear all fields of the form.</source> + <translation>Borrar todos los campos del formulario.</translation> + </message> + <message> + <source>Clear</source> + <translation>Borrar </translation> + </message> + <message> + <source>Requested payments history</source> + <translation>Historial de pagos solicitados</translation> + </message> + <message> + <source>Show the selected request (does the same as double clicking an entry)</source> + <translation>Mostrar la solicitud seleccionada (hace lo mismo que hacer doble clic en una entrada)</translation> + </message> + <message> + <source>Show</source> + <translation>Mostrar</translation> + </message> + <message> + <source>Remove the selected entries from the list</source> + <translation>Eliminar las entradas seleccionadas de la lista</translation> + </message> + <message> + <source>Remove</source> + <translation>Eliminar </translation> + </message> + <message> <source>Copy label</source> <translation>Copiar capa </translation> </message> @@ -694,6 +1196,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>&Copiar dirección</translation> </message> <message> + <source>&Save Image...</source> + <translation>&Guardar imagen...</translation> + </message> + <message> <source>Address</source> <translation>Dirección</translation> </message> @@ -764,10 +1270,22 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Cambio</translation> </message> <message> + <source>Hide</source> + <translation>Ocultar </translation> + </message> + <message> <source>Send to multiple recipients at once</source> <translation>Enviar a múltiples receptores a la vez</translation> </message> <message> + <source>Clear all fields of the form.</source> + <translation>Despeja todos los campos del formulario.</translation> + </message> + <message> + <source>Dust:</source> + <translation>Remanente monetario:</translation> + </message> + <message> <source>Balance:</source> <translation>Saldo:</translation> </message> @@ -800,22 +1318,70 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Copiar cambio</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>¿Quiere redactar esta transacción?</translation> + </message> + <message> + <source>Are you sure you want to send?</source> + <translation>¿Está seguro de que quiere enviar?</translation> + </message> + <message> <source>or</source> <translation>o</translation> </message> <message> + <source>Please, review your transaction.</source> + <translation>Por favor, revise su transacción.</translation> + </message> + <message> + <source>Transaction fee</source> + <translation>Cuota de transacción</translation> + </message> + <message> + <source>Total Amount</source> + <translation>Cantidad total</translation> + </message> + <message> + <source>To review recipient list click "Show Details..."</source> + <translation>Para revisar la lista de destinatarios haga clic en "Mostrar detalles..."</translation> + </message> + <message> <source>Confirm send coins</source> <translation>Confirme para enviar monedas</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Confirmar la propuesta de transacción</translation> + </message> + <message> + <source>Send</source> + <translation>Enviar</translation> + </message> + <message> + <source>The recipient address is not valid. Please recheck.</source> + <translation>La dirección del destinatario no es válida. Por favor, vuelva a verificarla.</translation> + </message> + <message> <source>The amount to pay must be larger than 0.</source> <translation>El monto a pagar debe ser mayor a 0</translation> </message> <message> + <source>The amount exceeds your balance.</source> + <translation>La cantidad excede su saldo.</translation> + </message> + <message> + <source>Duplicate address found: addresses should only be used once each.</source> + <translation>Duplicado de la dirección encontrada: las direcciones sólo deben ser utilizadas una vez cada una.</translation> + </message> + <message> <source>Transaction creation failed!</source> <translation>¡La creación de la transación falló!</translation> </message> <message> + <source>Payment request expired.</source> + <translation>La solicitud de pago expiró.</translation> + </message> + <message> <source>Warning: Invalid Bitcoin address</source> <translation>Advertencia: Dirección de Bitcoin invalida</translation> </message> @@ -824,6 +1390,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Advertencia: Cambio de dirección desconocido</translation> </message> <message> + <source>Confirm custom change address</source> + <translation>Confirmar la dirección de cambio personalizada</translation> + </message> + <message> <source>(no label)</source> <translation>(sin etiqueta)</translation> </message> @@ -843,6 +1413,14 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>&Etiqueta</translation> </message> <message> + <source>Choose previously used address</source> + <translation>Elegir la dirección utilizada anteriormente</translation> + </message> + <message> + <source>The Bitcoin address to send the payment to</source> + <translation>La dirección de Bitcoin para enviar el pago a</translation> + </message> + <message> <source>Alt+A</source> <translation>Alt+A</translation> </message> @@ -859,10 +1437,26 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>Quitar esta entrada</translation> </message> <message> + <source>Use available balance</source> + <translation>Usar el saldo disponible</translation> + </message> + <message> <source>Message:</source> <translation>Mensaje:</translation> </message> <message> + <source>This is an unauthenticated payment request.</source> + <translation>Esta es una solicitud de pago no autentificada.</translation> + </message> + <message> + <source>This is an authenticated payment request.</source> + <translation>Esta es una solicitud de pago autentificada.</translation> + </message> + <message> + <source>Enter a label for this address to add it to the list of used addresses</source> + <translation>Introducir una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas</translation> + </message> + <message> <source>Pay To:</source> <translation>Pago para:</translation> </message> @@ -877,6 +1471,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <context> <name>SignVerifyMessageDialog</name> <message> + <source>Choose previously used address</source> + <translation>Elegir la dirección utilizada anteriormente</translation> + </message> + <message> <source>Alt+A</source> <translation>Alt+A</translation> </message> @@ -935,6 +1533,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <translation>etiqueta</translation> </message> <message> + <source>Transaction fee</source> + <translation>Cuota de transacción</translation> + </message> + <message> <source>Message</source> <translation>Mensaje</translation> </message> @@ -1153,6 +1755,10 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) </context> <context> <name>WalletController</name> + <message> + <source>Close wallet</source> + <translation>Cerrar cartera</translation> + </message> </context> <context> <name>WalletFrame</name> @@ -1167,7 +1773,11 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <source>Send Coins</source> <translation>Enviar monedas</translation> </message> - </context> + <message> + <source>default wallet</source> + <translation>cartera predeterminada</translation> + </message> +</context> <context> <name>WalletView</name> <message> @@ -1190,10 +1800,94 @@ Solicitar pagos (genera códigos QR y bitcoin: URI) <context> <name>bitcoin-core</name> <message> + <source>Failed to rescan the wallet during initialization</source> + <translation>Falló al volver a escanear la cartera durante la inicialización</translation> + </message> + <message> + <source>Importing...</source> + <translation>Importando...</translation> + </message> + <message> + <source>Loading banlist...</source> + <translation>Cargando la lista de anuncios...</translation> + </message> + <message> + <source>Not enough file descriptors available.</source> + <translation>No hay suficientes descriptores de archivos disponibles.</translation> + </message> + <message> + <source>Transaction fee and change calculation failed</source> + <translation>La tarifa de la transacción y el cálculo del cambio fallaron</translation> + </message> + <message> + <source>Unable to generate keys</source> + <translation>Incapaz de generar claves</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>Verificando bloques...</translation> </message> <message> + <source>The transaction amount is too small to send after the fee has been deducted</source> + <translation>La cantidad de la transacción es demasiado pequeña para enviarla después de que se haya deducido la tarifa</translation> + </message> + <message> + <source>Error reading from database, shutting down.</source> + <translation>Error de lectura de la base de datos, apagando.</translation> + </message> + <message> + <source>Signing transaction failed</source> + <translation>La transacción de firma falló</translation> + </message> + <message> + <source>The transaction amount is too small to pay the fee</source> + <translation>El monto de la transacción es demasiado pequeño para pagar la tarifa</translation> + </message> + <message> + <source>This is experimental software.</source> + <translation>Este es un software experimental.</translation> + </message> + <message> + <source>Transaction amount too small</source> + <translation>El monto de la transacción es demasiado pequeño</translation> + </message> + <message> + <source>Transaction too large</source> + <translation>La transacción es demasiado grande</translation> + </message> + <message> + <source>Unable to generate initial keys</source> + <translation>Incapaz de generar claves iniciales</translation> + </message> + <message> + <source>Verifying wallet(s)...</source> + <translation>Verificando la(s) cartera(s)...</translation> + </message> + <message> + <source>This is the transaction fee you may pay when fee estimates are not available.</source> + <translation>Esta es la tarifa de transacción que puede pagar cuando no se dispone de estimaciones de tarifas.</translation> + </message> + <message> + <source>This is the minimum transaction fee you pay on every transaction.</source> + <translation>Esta es la tarifa de transacción mínima que se paga en cada transacción.</translation> + </message> + <message> + <source>This is the transaction fee you will pay if you send a transaction.</source> + <translation>Esta es la tarifa de transacción que pagará si envía una transacción.</translation> + </message> + <message> + <source>Transaction amounts must not be negative</source> + <translation>Los montos de las transacciones no deben ser negativos</translation> + </message> + <message> + <source>Transaction must have at least one recipient</source> + <translation>La transacción debe tener al menos un destinatario</translation> + </message> + <message> + <source>Insufficient funds</source> + <translation>Fondos insuficientes</translation> + </message> + <message> <source>Loading block index...</source> <translation>Cargando indice de bloques... </translation> </message> diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts index f055141fc3..025527b680 100644 --- a/src/qt/locale/bitcoin_et.ts +++ b/src/qt/locale/bitcoin_et.ts @@ -132,6 +132,10 @@ <translation>Korda uut parooli</translation> </message> <message> + <source>Show passphrase</source> + <translation>Näita salafraasi</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>Krüpteeri rahakott</translation> </message> @@ -172,6 +176,30 @@ <translation>Rahakott krüpteeritud</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Sisesta rahakotile uus salafraas.<br/>Kasuta salafraasi millles on<b>kümme või rohkem juhuslikku sümbolit<b>,või<b>kaheksa või rohkem sõna<b/>.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Sisesta rahakoti vana salafraas ja uus salafraas.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>Pea meeles, et rahakoti krüpteerimine ei välista bitcoinide vargust, kui sinu arvuti on nakatunud pahavaraga.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>Krüpteeritav rahakott</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Rahakott krüpteeritakse.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Rahakott krüpteeritud.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>TÄHTIS: Kõik varasemad rahakoti varundfailid tuleks üle kirjutada äsja loodud krüpteeritud rahakoti failiga. Turvakaalutlustel tühistatakse krüpteerimata rahakoti failid alates uue, krüpteeritud rahakoti, kasutusele võtust.</translation> </message> @@ -214,7 +242,11 @@ <source>IP/Netmask</source> <translation>IP/Võrgumask</translation> </message> - </context> + <message> + <source>Banned Until</source> + <translation>Blokeeritud kuni</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> @@ -254,6 +286,10 @@ <translation>&Teave %1</translation> </message> <message> + <source>Show information about %1</source> + <translation>Näita informatsiooni %1 kohta</translation> + </message> + <message> <source>About &Qt</source> <translation>Teave &Qt kohta</translation> </message> @@ -266,6 +302,10 @@ <translation>&Valikud...</translation> </message> <message> + <source>Modify configuration options for %1</source> + <translation>Muuda %1 seadeid</translation> + </message> + <message> <source>&Encrypt Wallet...</source> <translation>&Krüpteeri Rahakott</translation> </message> @@ -282,6 +322,18 @@ <translation>Ava &URI...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>Loo rahakott</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Loo uus rahakott</translation> + </message> + <message> + <source>Wallet:</source> + <translation>Rahakott:</translation> + </message> + <message> <source>Reindexing blocks on disk...</source> <translation>Kõvakettal olevate plokkide reindekseerimine...</translation> </message> diff --git a/src/qt/locale/bitcoin_eu.ts b/src/qt/locale/bitcoin_eu.ts index 7aca604eeb..2881754ac9 100644 --- a/src/qt/locale/bitcoin_eu.ts +++ b/src/qt/locale/bitcoin_eu.ts @@ -358,6 +358,10 @@ <translation>Blokeak diskoan berriro zerrendatzen...</translation> </message> <message> + <source>Send coins to a Bitcoin address</source> + <translation>Bidali txanponak Bitcoin helbide batera</translation> + </message> + <message> <source>Change the passphrase used for wallet encryption</source> <translation>Diruzorroa enkriptatzeko erabilitako pasahitza aldatu</translation> </message> @@ -382,6 +386,10 @@ <translation>Lehio nagusia erakutsi edo izkutatu</translation> </message> <message> + <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source> + <translation>Egiaztatu mesua Bitcoin helbide espezifikoarekin erregistratu direla ziurtatzeko</translation> + </message> + <message> <source>&File</source> <translation>&Artxiboa</translation> </message> @@ -406,10 +414,22 @@ <translation>Akatsa</translation> </message> <message> + <source>Information</source> + <translation>Informazioa</translation> + </message> + <message> <source>Up to date</source> <translation>Eguneratua</translation> </message> <message> + <source>&Sending addresses</source> + <translation>&Helbideak bidaltzen</translation> + </message> + <message> + <source>&Receiving addresses</source> + <translation>&Helbideak jasotzen</translation> + </message> + <message> <source>Open Wallet</source> <translation>Diruzorroa zabaldu</translation> </message> @@ -426,10 +446,18 @@ <translation>Diruzorroa itxi</translation> </message> <message> + <source>default wallet</source> + <translation>Diruzorro lehenetsia</translation> + </message> + <message> <source>&Window</source> <translation>&Lehioa</translation> </message> <message> + <source>Minimize</source> + <translation>Txikitu</translation> + </message> + <message> <source>Zoom</source> <translation>Gerturatu</translation> </message> @@ -701,6 +729,10 @@ <source>Open wallet warning</source> <translation>Diruzorroa irekitzen abisua</translation> </message> + <message> + <source>default wallet</source> + <translation>Diruzorro lehenetsia</translation> + </message> </context> <context> <name>OptionsDialog</name> @@ -1194,7 +1226,11 @@ <source>Send Coins</source> <translation>Txanponak bidali</translation> </message> - </context> + <message> + <source>default wallet</source> + <translation>Diruzorro lehenetsia</translation> + </message> +</context> <context> <name>WalletView</name> <message> diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index b19bb00160..33833baed4 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -7,7 +7,7 @@ </message> <message> <source>Create a new address</source> - <translation>گشایش آدرس جدید</translation> + <translation>ساخت یک آدرس جدید</translation> </message> <message> <source>&New</source> @@ -15,7 +15,7 @@ </message> <message> <source>Copy the currently selected address to the system clipboard</source> - <translation>کپی کردن حساب انتخاب شده به حافظه سیستم - کلیپ بورد</translation> + <translation>کپی کردن آدرس انتخاب شده به حافظه کلیپ بورد سیستم</translation> </message> <message> <source>&Copy</source> @@ -70,6 +70,10 @@ <translation>اینها آدرسهای شما برای ارسال وجوه هستند. همیشه قبل از ارسال، مقدار و آدرس گیرنده را بررسی کنید.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>اینها آدرس بیت کوین های دریافتی شما می باشدند. در تب دریافت از دکمه 'ایحاد آدرس جدید' برای ساخت آدرس جدید استفاده نمائید.</translation> + </message> + <message> <source>&Copy Address</source> <translation>کپی آدرس</translation> </message> @@ -132,16 +136,20 @@ <translation>رمز/پَس فرِیز را دوباره وارد کنید</translation> </message> <message> + <source>Show passphrase</source> + <translation>نمایش رمز</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>رمزگذاری کیف پول</translation> </message> <message> <source>This operation needs your wallet passphrase to unlock the wallet.</source> - <translation>برای انجام این عملیات، باید رمز کیفپول را وارد کنید.</translation> + <translation>این عملیات نیاز به رمز کیف پول شما دارد تا کیف پول باز شود</translation> </message> <message> <source>Unlock wallet</source> - <translation>بازکردن کیفپول</translation> + <translation>بازکردن کیف پول</translation> </message> <message> <source>This operation needs your wallet passphrase to decrypt the wallet.</source> @@ -165,18 +173,38 @@ </message> <message> <source>Are you sure you wish to encrypt your wallet?</source> - <translation>آیا از رمزگذاری کیفپول خود اطمینان دارید؟</translation> + <translation>آیا از رمزگذاری کیف پول خود اطمینان دارید؟</translation> </message> <message> <source>Wallet encrypted</source> <translation>کیف پول رمزگذاری شده است</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>برای کیف پول خود یک رمز جدید وارد نمائید<br/>لطفاً رمز کیف پول انتخابی را بدین گونه بسازید<b>انتخاب ده ویا بیشتر کاراکتر تصادفی</b> یا <b> حداقل هشت کلمه</b></translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>رمز عبور قدیمی و رمز عبور جدید کیف پول خود را وارد کنید.</translation> + </message> + <message> <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> <translation>والت رمز بندی شد . یاد داشته باشید که پنجره رمز شده نمی تواند کلا از سرقت نرم افزارهای مخرب محافظ کند</translation> </message> <message> + <source>Wallet to be encrypted</source> + <translation>کیف پول رمز نگاری شده است</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>کیف پول شما در حال رمز نگاری می باشد.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>کیف پول شما اکنون رمزنگاری گردیده است.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>مهم: هر بکآپ قبلی که از کیفپول خود گرفتهاید، با نسخهی جدید رمزنگاریشده جایگزین خواهد شد. به دلایل امنیتی، پس از رمزنگاری کیفپول، بکآپهای قدیمی شما بلااستفاده خواهد شد.</translation> </message> @@ -299,6 +327,14 @@ <translation>بازکردن آدرس...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>ایجاد کیف پول</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>ساخت کیف پول جدید</translation> + </message> + <message> <source>Wallet:</source> <translation>کیف پول:</translation> </message> @@ -447,6 +483,14 @@ <translation>به روز</translation> </message> <message> + <source>Node window</source> + <translation>پنجره گره</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>باز کردن کنسول دی باگ و تشخیص گره</translation> + </message> + <message> <source>&Sending addresses</source> <translation>ادرس ارسال</translation> </message> @@ -455,6 +499,10 @@ <translation>ادرس درسافت</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>بارک کردن یک بیتکوین: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>باز کردن حساب</translation> </message> @@ -463,14 +511,30 @@ <translation>باز کردن یک حساب</translation> </message> <message> + <source>Close Wallet...</source> + <translation>بستن کیف پول...</translation> + </message> + <message> + <source>Close wallet</source> + <translation>کیف پول را ببندید</translation> + </message> + <message> <source>default wallet</source> <translation>کیف پول پیشفرض</translation> </message> <message> + <source>No wallets available</source> + <translation>هیچ کیف پولی در دسترس نمی باشد</translation> + </message> + <message> <source>&Window</source> <translation>پنجره</translation> </message> <message> + <source>Minimize</source> + <translation>به حداقل رساندن</translation> + </message> + <message> <source>Zoom</source> <translation>بزرگنمایی</translation> </message> @@ -495,6 +559,10 @@ <translation>خطا: %1</translation> </message> <message> + <source>Warning: %1</source> + <translation>هشدار: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>تاریخ: %1 @@ -539,6 +607,18 @@ <translation>تراکنش دریافتی</translation> </message> <message> + <source>HD key generation is <b>enabled</b></source> + <translation>تولید کلید HD <b>فعال است</b></translation> + </message> + <message> + <source>HD key generation is <b>disabled</b></source> + <translation>تولید کلید HD <b> غیر فعال است</b></translation> + </message> + <message> + <source>Private key <b>disabled</b></source> + <translation>کلید خصوصی <b>غیر فعال </b></translation> + </message> + <message> <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> <translation>wallet رمزگذاری شد و در حال حاضر از حالت قفل در آمده است</translation> </message> @@ -682,6 +762,10 @@ <translation>خیر</translation> </message> <message> + <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source> + <translation>اگر هر گیرنده مقداری کمتر آستانه فعلی دریافت کند از این لیبل قرمز میشود.</translation> + </message> + <message> <source>(no label)</source> <translation>(برچسب ندارد)</translation> </message> @@ -696,10 +780,58 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>در حال ایجاد کیف پول <b> %1</b>...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>کیف پول ایجاد نگردید</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>هشدار ایجاد کیف پول</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>ایجاد کیف پول</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>نام کیف پول</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>کیف پول را رمز نگاری نمائید. کیف پول با کلمات رمز انتخاب خودتان رمز نگاری خواهد شد</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>رمز نگاری کیف پول</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>غیر فعال کردن کلیدهای خصوصی برای این کیف پول. کیف پول هایی با کلید های خصوصی غیر فعال هیچ کلید خصوصی نداشته و نمیتوانند HD داشته باشند و یا کلید های خصوصی دارد شدنی داشته باشند. این کیف پول ها صرفاً برای رصد مناسب هستند.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>غیر فعال کردن کلیدهای خصوصی</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>یک کیف پول خالی درست کنید. کیف پول های خالی در ابتدا کلید یا اسکریپت خصوصی ندارند. کلیدها و آدرسهای خصوصی می توانند وارد شوند یا بذر HD را می توان بعداً تنظیم نمود.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>ساخت کیف پول خالی</translation> + </message> + <message> + <source>Create</source> + <translation>ایجاد</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -711,6 +843,14 @@ <translation>برچسب</translation> </message> <message> + <source>The label associated with this address list entry</source> + <translation>برچسب مرتبط با لیست آدرس ورودی</translation> + </message> + <message> + <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> + <translation>برچسب مرتبط با لیست آدرس ورودی می باشد. این می تواند فقط برای آدرس های ارسالی اصلاح شود.</translation> + </message> + <message> <source>&Address</source> <translation>آدرس</translation> </message> @@ -881,6 +1021,10 @@ <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet warning</source> + <translation>هشدار باز کردن کیف پول</translation> + </message> + <message> <source>default wallet</source> <translation>کیف پول پیشفرض</translation> </message> @@ -929,6 +1073,10 @@ <translation>گیگابایت</translation> </message> <message> + <source>MiB</source> + <translation>MiB</translation> + </message> + <message> <source>W&allet</source> <translation>کیف پول</translation> </message> @@ -1166,6 +1314,10 @@ <context> <name>PeerTableModel</name> <message> + <source>User Agent</source> + <translation>نماینده کاربر</translation> + </message> + <message> <source>Node/Service</source> <translation>گره/خدمت</translation> </message> @@ -1277,6 +1429,10 @@ <translation>خطا: %1</translation> </message> <message> + <source>%1 didn't yet exit safely...</source> + <translation>%1 به درستی بسته نشد</translation> + </message> + <message> <source>unknown</source> <translation>ناشناس</translation> </message> @@ -1300,6 +1456,10 @@ <translation>خطا در تبدیل نشانی اینترنتی به صورت کد QR.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>پستیبانی از QR کد در دسترس نیست.</translation> + </message> + <message> <source>Save QR Code</source> <translation>ذحیره کردن Qr Code</translation> </message> @@ -1327,10 +1487,18 @@ <translation>عمومی</translation> </message> <message> + <source>Using BerkeleyDB version</source> + <translation>استفاده از نسخه پایگاهداده برکلی</translation> + </message> + <message> <source>Datadir</source> <translation>پوشه داده Datadir</translation> </message> <message> + <source>Blocksdir</source> + <translation>فولدر بلاکها</translation> + </message> + <message> <source>Startup time</source> <translation>زمان آغاز به کار</translation> </message> @@ -1411,10 +1579,22 @@ <translation>نسخه</translation> </message> <message> + <source>Starting Block</source> + <translation>بلاک اولیه</translation> + </message> + <message> <source>Synced Blocks</source> <translation>بلاکهای همگامسازی شده</translation> </message> <message> + <source>User Agent</source> + <translation>نماینده کاربر</translation> + </message> + <message> + <source>Node window</source> + <translation>پنجره گره</translation> + </message> + <message> <source>Decrease font size</source> <translation>کاهش دادن اندازه فونت</translation> </message> @@ -1879,6 +2059,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>تایید کردن ارسال کوین ها</translation> </message> <message> + <source>PSBT copied</source> + <translation>PSBT کپی شد</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>آدرس گیرنده نامعتبر است.لطفا دوباره چک یا بررسی کنید.</translation> </message> @@ -2408,6 +2592,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>حداقل میزان وجه</translation> </message> <message> + <source>Abandon transaction</source> + <translation>تراکنش را رها نمائید.</translation> + </message> + <message> <source>Increase transaction fee</source> <translation>افزایش کارمزد تراکنش</translation> </message> @@ -2428,6 +2616,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>کپی شناسه تراکنش</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>معامله اولیه را کپی نمائید.</translation> + </message> + <message> <source>Copy full transaction details</source> <translation>کپی کردن تمامی اطلاعات تراکنش</translation> </message> @@ -2452,6 +2644,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>تایید شده</translation> </message> <message> + <source>Watch-only</source> + <translation>رصد</translation> + </message> + <message> <source>Date</source> <translation>تاریخ</translation> </message> @@ -2493,6 +2689,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </context> <context> <name>WalletController</name> + <message> + <source>Close wallet</source> + <translation>کیف پول را ببندید</translation> + </message> + <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>آیا برای بستن کیف پول مطمئن هستید<i> %1 </i> ؟</translation> + </message> </context> <context> <name>WalletFrame</name> @@ -2528,6 +2732,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>کارمزد جدید:</translation> </message> <message> + <source>PSBT copied</source> + <translation>PSBT کپی شد</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>نمیتوان تراکنش را ثبت کرد</translation> </message> diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/bitcoin_fi.ts index 28b455d13c..5af9f5f055 100644 --- a/src/qt/locale/bitcoin_fi.ts +++ b/src/qt/locale/bitcoin_fi.ts @@ -482,6 +482,14 @@ <translation>Rahansiirtohistoria on ajan tasalla</translation> </message> <message> + <source>Node window</source> + <translation>Solmu ikkuna</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Avaa solmun diagnostiikka- ja vianmäärityskonsoli </translation> + </message> + <message> <source>&Sending addresses</source> <translation>&Lähetysosoitteet</translation> </message> @@ -490,6 +498,10 @@ <translation>&Vastaanotto-osoitteet</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Avaa bitcoin: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Avaa lompakko</translation> </message> @@ -783,7 +795,11 @@ <source>Create wallet failed</source> <translation>Lompakon luonti epäonnistui</translation> </message> - </context> + <message> + <source>Create wallet warning</source> + <translation>Luo lompakkovaroitus</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> <message> @@ -803,6 +819,10 @@ <translation>Salaa lompakko</translation> </message> <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Poista tämän lompakon yksityiset avaimet käytöstä. Lompakot, joissa yksityiset avaimet on poistettu käytöstä, eivät sisällä yksityisiä avaimia, eikä niissä voi olla HD-juurisanoja tai tuotuja yksityisiä avaimia. Tämä on ihanteellinen katselulompakkoihin.</translation> + </message> + <message> <source>Disable Private Keys</source> <translation>Poista yksityisavaimet käytöstä</translation> </message> @@ -1042,6 +1062,14 @@ <translation>Piilota</translation> </message> <message> + <source>Esc</source> + <translation>Poistu</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 synkronoidaan parhaillaan. Se lataa tunnisteet ja lohkot vertaisilta ja vahvistaa ne, kunnes ne saavuttavat lohkon ketjun kärjen.</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Tuntematon. Synkronoidaan tunnisteita (%1, %2%)...</translation> </message> @@ -1049,6 +1077,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Avaa bitcoin URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -1060,6 +1092,10 @@ <translation>Lompakon avaaminen epäonnistui</translation> </message> <message> + <source>Open wallet warning</source> + <translation>Avoimen lompakon varoitus</translation> + </message> + <message> <source>default wallet</source> <translation>oletuslompakko</translation> </message> @@ -1437,6 +1473,14 @@ <translation>'bitcoin://' ei ole kelvollinen URI. Käytä 'bitcoin:' sen sijaan.</translation> </message> <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Maksupyyntöä ei voida käsitellä, koska BIP70:tä ei tueta.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>BIP70:n laajalle levinneiden tietoturvavirheiden vuoksi on erittäin suositeltavaa, että kaikki kauppiaan ohjeet lompakkojen vaihtamiseksi jätetään huomioimatta.</translation> + </message> + <message> <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> <translation>Tämän virheen saadessasi tulee sinun pyytää kauppiaalta BIP21 -yhteensopivaa URI-osoitetta.</translation> </message> @@ -1745,10 +1789,22 @@ <translation>Synkronoidut lohkot</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Kartoitettu autonominen järjestelmä, jota käytetään monipuolistamaan solmuvalikoimaa</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Kartoitettu AS</translation> + </message> + <message> <source>User Agent</source> <translation>Käyttöliittymä</translation> </message> <message> + <source>Node window</source> + <translation>Solmun näkymä</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Avaa %1 -debug-loki tämänhetkisestä data-hakemistosta. Tämä voi viedä muutaman sekunnin suurille lokitiedostoille.</translation> </message> @@ -1960,6 +2016,18 @@ <translation>Valinnainen pyyntömäärä. Jätä tyhjäksi tai nollaksi jos et pyydä tiettyä määrää.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Valinnainen tarra, joka liitetään uuteen vastaanotto-osoitteeseen (jonka käytät laskun tunnistamiseen). Se liitetään myös maksupyyntöön.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Valinnainen viesti, joka on liitetty maksupyyntöön ja joka voidaan näyttää lähettäjälle.</translation> + </message> + <message> + <source>&Create new receiving address</source> + <translation> &Luo uusi vastaanotto-osoite</translation> + </message> + <message> <source>Clear all fields of the form.</source> <translation>Tyhjennä lomakkeen kaikki kentät.</translation> </message> @@ -2209,6 +2277,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Tomu:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation> Piilota siirtomaksuasetukset</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>Mikäli lohkoissa ei ole tilaa kaikille siirtotapahtumille, voi louhijat sekä välittävät solmut pakottaa vähimmäispalkkion. Tämän vähimmäispalkkion maksaminen on täysin OK, mutta huomaa, että se saattaa johtaa siihen, ettei siirto vahvistu koskaan, jos bitcoin-siirtoja on enemmän kuin mitä verkko pystyy käsittelemään.</translation> </message> @@ -2277,6 +2349,14 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>%1 (%2 lohkoa)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>L&uo allekirjoittamaton</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Luo osittain allekirjoitetun bitcoin-siirtotapahtuman (PSBT) käytettäväksi mm. offline %1 lompakko tai PSBT-yhteensopiva hardware-lompakko.</translation> + </message> + <message> <source> from wallet '%1'</source> <translation> lompakosta '%1'</translation> </message> @@ -2285,10 +2365,18 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>%1 to %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Haluatko laatia tämän siirron?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Oletko varma, että haluat lähettää?</translation> </message> <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Ole hyvä ja katso siirtotapahtuma ehdotuksesi. Tämä tuottaa osittain allekirjoitetun bitcoin-siirtotapahtuman (PSBT), jonka voit kopioida ja sitten allekirjoittaa esimerkiksi offline %1 lompakko tai PSBT-yhteensopiva hardware-lompakko.</translation> + </message> + <message> <source>or</source> <translation>tai</translation> </message> @@ -2305,6 +2393,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Siirtokulu</translation> </message> <message> + <source>Not signalling Replace-By-Fee, BIP-125.</source> + <translation>Ei signalointia Korvattavissa korkeammalla kululla, BIP-125.</translation> + </message> + <message> <source>Total Amount</source> <translation>Yhteensä</translation> </message> @@ -2317,6 +2409,26 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Vahvista kolikoiden lähetys</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Vahvista siirtoehdotus</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Kopioi PSBT leikepöydälle</translation> + </message> + <message> + <source>Send</source> + <translation>Lähetä</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT kopioitu</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Katselulompakon saldo:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Vastaanottajan osoite ei ole kelvollinen. Tarkista osoite.</translation> </message> @@ -2412,6 +2524,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Poista tämä alkio</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>Lähetettävä summa valitussa yksikössä</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>Kulu vähennetään lähetettävästä määrästä. Saaja vastaanottaa vähemmän bitcoineja kuin merkitset Määrä-kenttään. Jos saajia on monia, kulu jaetaan tasan.</translation> </message> @@ -2538,6 +2654,14 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Bitcoin-osoite jolla viesti on allekirjoitettu</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Allekirjoitettu viesti vahvistettavaksi</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>Viestin allekirjoittamisen yhteydessä annettu allekirjoitus</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Tarkista viestin allekirjoitus varmistaaksesi, että se allekirjoitettiin tietyllä Bitcoin-osoitteella</translation> </message> @@ -2570,6 +2694,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Lompakon avaaminen peruttiin.</translation> </message> <message> + <source>No error</source> + <translation>Ei virhettä</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>Yksityistä avainta syötetylle osoitteelle ei ole saatavilla.</translation> </message> @@ -2740,6 +2868,14 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Tapahtuman näennäiskoko</translation> </message> <message> + <source>Output index</source> + <translation>Ulostulon indeksi</translation> + </message> + <message> + <source> (Certificate was not verified)</source> + <translation> (Sertifikaattia ei vahvistettu)</translation> + </message> + <message> <source>Merchant</source> <translation>Kauppias</translation> </message> @@ -3093,6 +3229,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Haluatko nostaa siirtomaksua?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Haluatko nostaa siirtomaksua siirtoon?</translation> + </message> + <message> <source>Current fee:</source> <translation>Nykyinen palkkio:</translation> </message> @@ -3109,6 +3249,14 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Vahvista palkkion korotus</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation> Siirtoa ei voida laatia.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT kopioitu</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>Siirtoa ei voida allekirjoittaa.</translation> </message> @@ -3199,6 +3347,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Ei voida lukita data-hakemistoa %s. %s on luultavasti jo käynnissä.</translation> </message> <message> + <source>Cannot provide specific connections and have addrman find outgoing connections at the same.</source> + <translation>Ei voida tarjota tiettyjä yhteyksiä, ja antaa addrmanin löytää lähteviä yhteyksiä samanaikaisesti.</translation> + </message> + <message> <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> <translation>Virhe luettaessa %s! Avaimet luetttiin oikein, mutta rahansiirtotiedot tai osoitekirjan sisältö saattavat olla puutteellisia tai vääriä.</translation> </message> @@ -3255,6 +3407,14 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>-%s -osoitteen '%s' selvittäminen epäonnistui</translation> </message> <message> + <source>Change index out of range</source> + <translation>Vaihda hakemisto alueen ulkopuolelle</translation> + </message> + <message> + <source>Config setting for %s only applied on %s network when in [%s] section.</source> + <translation>Konfigurointiasetuksen %s käyttöön vain %s -verkossa, kun osassa [%s].</translation> + </message> + <message> <source>Copyright (C) %i-%i</source> <translation>Tekijänoikeus (C) %i-%i</translation> </message> @@ -3263,6 +3423,14 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Vioittunut lohkotietokanta havaittu</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>Asmap-tiedostoa %s ei löytynyt</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Asmap-tiedostoa %s ei voitu jäsentää</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>Haluatko uudelleenrakentaa lohkotietokannan nyt?</translation> </message> @@ -3279,6 +3447,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Virhe ladattaessa %s</translation> </message> <message> + <source>Error loading %s: Private keys can only be disabled during creation</source> + <translation>Virhe %s:n lataamisessa: Yksityiset avaimet voidaan poistaa käytöstä vain luomisen aikana</translation> + </message> + <message> <source>Error loading %s: Wallet corrupted</source> <translation>Virhe ladattaessa %s: Lompakko vioittunut</translation> </message> @@ -3331,6 +3503,14 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Määrättyä lohkohakemistoa "%s" ei ole olemassa.</translation> </message> <message> + <source>Unknown address type '%s'</source> + <translation>Tuntematon osoitetyyppi '%s'</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>Tuntematon vaihtorahatyyppi '%s'</translation> + </message> + <message> <source>Upgrading txindex database</source> <translation>Päivitetään txindex -tietokantaa</translation> </message> @@ -3407,6 +3587,10 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Virhe: Saapuvien yhteyksien kuuntelu epäonnistui (kuuntelu palautti virheen %s)</translation> </message> <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> + <translation>Virheellinen summa -maxtxfee =: '%s' (täytyy olla vähintään %s minrelay-kulu, jotta estetään jumiutuneet siirtotapahtumat)</translation> + </message> + <message> <source>The transaction amount is too small to send after the fee has been deducted</source> <translation>Siirtomäärä on liian pieni lähetettäväksi kulun vähentämisen jälkeen.</translation> </message> @@ -3501,6 +3685,14 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>PID-tiedostoa '%s' ei voitu luoda: %s</translation> </message> <message> + <source>Unable to generate initial keys</source> + <translation>Alkuavaimia ei voi luoda</translation> + </message> + <message> + <source>Unknown -blockfilterindex value %s.</source> + <translation>Tuntematon -lohkosuodatusindeksiarvo %s.</translation> + </message> + <message> <source>Verifying wallet(s)...</source> <translation>Varmistetaan lompakko(ja)...</translation> </message> @@ -3550,7 +3742,7 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t </message> <message> <source>This is the transaction fee you will pay if you send a transaction.</source> - <translation>Tämä on lähetyksestä maksettava maksu jonka maksat</translation> + <translation>Tämä on se siirtomaksu, jonka maksat, mikäli lähetät siirron.</translation> </message> <message> <source>Transaction amounts must not be negative</source> @@ -3573,10 +3765,18 @@ Huom: Koska siirtomaksu lasketaan tavujen mukaan, niin määrittelemällä 500 t <translation>Lompakon saldo ei riitä</translation> </message> <message> + <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> + <translation>Muuta kuin HD-jaettua lompakkoa ei voi päivittää ilman päivitystä tukemaan esijaettua avainvarastoa. Käytä -upgradewallet = 169900 tai -upgradewallet ilman määritettyä versiota.</translation> + </message> + <message> <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> <translation>Siirtomaksun arviointi epäonnistui. Odota muutama lohko tai käytä -fallbackfee -valintaa..</translation> </message> <message> + <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source> + <translation>Varoitus: lompakosta {%s} tunnistetut yksityiset avaimet, on poistettu käytöstä</translation> + </message> + <message> <source>Cannot write to data directory '%s'; check permissions.</source> <translation>Hakemistoon '%s' ei voida kirjoittaa. Tarkista käyttöoikeudet.</translation> </message> diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/bitcoin_fr.ts index 1cddb413ef..e7066131b6 100644 --- a/src/qt/locale/bitcoin_fr.ts +++ b/src/qt/locale/bitcoin_fr.ts @@ -1789,6 +1789,14 @@ <translation>Blocs synchronisés</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Le système autonome mappé utilisé pour diversifier la sélection des pairs.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>SA mappé</translation> + </message> + <message> <source>User Agent</source> <translation>Agent utilisateur</translation> </message> diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/bitcoin_gl_ES.ts index 1677446993..20b9fb1bbd 100644 --- a/src/qt/locale/bitcoin_tr.ts +++ b/src/qt/locale/bitcoin_gl_ES.ts @@ -1,541 +1,541 @@ -<TS language="tr" version="2.1"> +<TS language="gl_ES" version="2.1"> <context> <name>AddressBookPage</name> <message> <source>Right-click to edit address or label</source> - <translation>Adresi veya etiketi düzenlemek için sağ tıklayın</translation> + <translation>Fai Click co botón dereito para editar o enderezo ou etiqueta</translation> </message> <message> <source>Create a new address</source> - <translation>Yeni adres oluştur</translation> + <translation>Crea un novo enderezo</translation> </message> <message> <source>&New</source> - <translation>&Yeni</translation> + <translation>&Novo</translation> </message> <message> <source>Copy the currently selected address to the system clipboard</source> - <translation>Seçili adresi panoya kopyala</translation> + <translation>Copia o enderezo seleccionado ao portapapeis do sistema</translation> </message> <message> <source>&Copy</source> - <translation>&Kopyala</translation> + <translation>&Copiar</translation> </message> <message> <source>C&lose</source> - <translation>K&apat</translation> + <translation>Pechar</translation> </message> <message> <source>Delete the currently selected address from the list</source> - <translation>Seçili adresi listeden sil</translation> + <translation>Borra o enderezo seleccionado actualmente da lista</translation> </message> <message> <source>Enter address or label to search</source> - <translation>Aramak için adres veya etiket girin</translation> + <translation>Introduce un enderezo ou etiqueta para buscar</translation> </message> <message> <source>Export the data in the current tab to a file</source> - <translation>Seçili sekmedeki veriyi dosya olarak dışa aktar</translation> + <translation>Exporta os datos na pestana actual a un ficheiro</translation> </message> <message> <source>&Export</source> - <translation>&Dışa Aktar</translation> + <translation>Exportar</translation> </message> <message> <source>&Delete</source> - <translation>&Sil</translation> + <translation>Borrar</translation> </message> <message> <source>Choose the address to send coins to</source> - <translation>koinlerin gönderileceği adresi seçin</translation> + <translation>Selecciona o enderezo ó que enviar moedas</translation> </message> <message> <source>Choose the address to receive coins with</source> - <translation>Alıcı adresi seçiniz</translation> + <translation>Selecciona o enderezo do que recibir moedas</translation> </message> <message> <source>C&hoose</source> - <translation>Seçim</translation> + <translation>Selecciona</translation> </message> <message> <source>Sending addresses</source> - <translation>Gönderilen Adresler</translation> + <translation>Enderezos de envío</translation> </message> <message> <source>Receiving addresses</source> - <translation>Alınan Adresler</translation> + <translation>Enderezos de recepción</translation> </message> <message> <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> - <translation>Bunlar ödeme göndermek için gereken Bitcoin adreslerinizdir. Para göndermeden önce her zaman miktarı ve alıcı adresi kontrol edin.</translation> + <translation>Estes son os teus enderezos de Bitcoin para enviar pagamentos. Asegurate sempre de comprobar a cantidade e maila dirección antes de enviar moedas.</translation> </message> <message> <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> - <translation>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</translation> + <translation>Estes son os teus enderezos para recibir pagamentos. Usa o botón 'Crear novo enderezo de recepción' na pestana de recibir para crear un novo enderezo.</translation> </message> <message> <source>&Copy Address</source> - <translation>Adresi Kopyala</translation> + <translation>Copiar Enderezo</translation> </message> <message> <source>Copy &Label</source> - <translation>Kopyala ve Etiketle</translation> + <translation>Copia Etiqueta</translation> </message> <message> <source>&Edit</source> - <translation>Düzenle</translation> + <translation>Edita</translation> </message> <message> <source>Export Address List</source> - <translation>Adres Listesini Dışar Aktar</translation> + <translation>Exporta a Lista de Enderezos</translation> </message> <message> <source>Comma separated file (*.csv)</source> - <translation>Virgül ile ayrılmış dosya (*.csv)</translation> + <translation>Ficheiro Separado por Comas (*.csv)</translation> </message> <message> <source>Exporting Failed</source> - <translation>Dışa Aktarma Başarısız</translation> + <translation>Exportación Fallida</translation> </message> <message> <source>There was an error trying to save the address list to %1. Please try again.</source> - <translation>Adres listesini %1'e kaydederken bir hata oluştu. Lütfen tekrar deneyin.</translation> + <translation>Houbo un erro tentando gardar a lista de enderezos en %1. Por favor proba de novo.</translation> </message> </context> <context> <name>AddressTableModel</name> <message> <source>Label</source> - <translation>etiket</translation> + <translation>Etiqueta</translation> </message> <message> <source>Address</source> - <translation>adres</translation> + <translation>Enderezo</translation> </message> <message> <source>(no label)</source> - <translation>(etiket yok)</translation> + <translation>(sin etiqueta)</translation> </message> </context> <context> <name>AskPassphraseDialog</name> <message> <source>Passphrase Dialog</source> - <translation>Parola Diyaloğu</translation> + <translation>Diálogo de Frase Contrasinal</translation> </message> <message> <source>Enter passphrase</source> - <translation>Parolayı girin</translation> + <translation>Introduce a frase contrasinal</translation> </message> <message> <source>New passphrase</source> - <translation>Yeni parola</translation> + <translation>Nova frase contrasinal</translation> </message> <message> <source>Repeat new passphrase</source> - <translation>Yeni parolayı tekrarla</translation> + <translation>Repite a frase contrasinal</translation> </message> <message> <source>Show passphrase</source> - <translation>Show passphrase</translation> + <translation>Mostra frase contrasinal</translation> </message> <message> <source>Encrypt wallet</source> - <translation>Cüzdanı Şifrele</translation> + <translation>Encriptar carteira</translation> </message> <message> <source>This operation needs your wallet passphrase to unlock the wallet.</source> - <translation>Bu işlem, cüzdan kilidinizi açmak için parolanıza ihtiyaç duyuyor</translation> + <translation>Esta operación necesita da túa frase contrasinal para desbloqueares a carteira.</translation> </message> <message> <source>Unlock wallet</source> - <translation>Cüzdanı Kilitle</translation> + <translation>Desbloquear carteira</translation> </message> <message> <source>This operation needs your wallet passphrase to decrypt the wallet.</source> - <translation>Bu işlem, cüzdan kilidinizi açmak için parolanıza ihtiyaç duyuyor</translation> + <translation>Esta operación necesita da túa frase contrasinal para desbloquea a carteira.</translation> </message> <message> <source>Decrypt wallet</source> - <translation>Cüzdanın Şifresini Çöz</translation> + <translation>Desencriptar carteira</translation> </message> <message> <source>Change passphrase</source> - <translation>Parolayı değiştir</translation> + <translation>Cambiar frase contrasinal</translation> </message> <message> <source>Confirm wallet encryption</source> - <translation>Cüzdan Şifrelemesini Onaylayın</translation> + <translation>Confirmar encriptación da carteira</translation> </message> <message> <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> - <translation>Uyarı: Eğer cüzdanınızı şifreleyip parolanızı kaybederseniz (unutursanız) , <b>BÜTÜN BITCOIN'LERINIZI KAYBEDECEKSINIZ</b>!</translation> + <translation>Aviso: Si encriptas a túa carteira e perdes a túa frase contrasinal, <b>PERDERÁS TODOS OS TEUS BITCOINS</b>!</translation> </message> <message> <source>Are you sure you wish to encrypt your wallet?</source> - <translation>Cüzdanınızı şifrelemek istediğinizden emin misiniz?</translation> + <translation>¿Seguro que queres encriptar a túa carteira?</translation> </message> <message> <source>Wallet encrypted</source> - <translation>Cüzdan Şifrelendi</translation> + <translation>Carteira encriptada</translation> </message> <message> <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> - <translation>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</translation> + <translation>Introduce unha nova frase contrasinal para a carteira.<br/>Por favor utiliza una frase contrasinal que <b>teña dez ou máis caracteres aleatorios</b>, ou <b>oito ou máis palabras</b>.</translation> </message> <message> <source>Enter the old passphrase and new passphrase for the wallet.</source> - <translation>Enter the old passphrase and new passphrase for the wallet.</translation> + <translation>Introduce a frase contrasinal anterior mais a nova frase contrasinal para a carteira.</translation> </message> <message> <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> - <translation>Cüzdanınızı şifrelemenin, bitcoinlerinizin bilgisayara bulaşan kötücül bir yazılım tarafından çalınmaya karşı tamamen koruyamayacağını unutmayınız.</translation> + <translation>Recorda que encriptar a tua carteira non protexe completamente que os teus bitcoins poidan ser roubados por malware que afecte ó teu computador.</translation> </message> <message> <source>Wallet to be encrypted</source> - <translation>Wallet to be encrypted</translation> + <translation>Carteira para ser encriptada</translation> </message> <message> <source>Your wallet is about to be encrypted. </source> - <translation>Your wallet is about to be encrypted. </translation> + <translation>A túa carteira vai a ser encriptada.</translation> </message> <message> <source>Your wallet is now encrypted. </source> - <translation>Your wallet is now encrypted. </translation> + <translation>A túa carteira está agora encriptada.</translation> </message> <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> - <translation>ÖNEMLİ: Yeni oluşturduğunuz şifrelenmiş cüzdan dosyasını önceki yedeklenmiş cüzdan dosyasıyla değiştirmeniz gerekmektedir. Güvenlik sebeplerinden dolayı yeni, şifrelenmiş cüzdanınızı kullanmaya başlar başlamaz önceki şifrelenmemiş cüzdan yedekleri kullanılmaz hale gelecektir.</translation> + <translation>IMPORTANTE: Calquera copia de respaldo que tiveras feita da túa carteira debería ser sustituída por unha nova copia xerada a partires da túa nova carteira encriptada. Por razóns de seguridade, as copias de respaldo da túa carteira sin encriptar non se poderán usar unha vez que empeces a utilizar a túa nova carteira encriptada.</translation> </message> <message> <source>Wallet encryption failed</source> - <translation>Cüzdan şifreleme başarısız oldu</translation> + <translation>Error na Encriptación da carteira </translation> </message> <message> <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> - <translation>Cüzdan şifreleme dahili bir hata nedeniyle başarısız oldu. Cüzdanınız şifrelenemedi.</translation> + <translation>A encriptación da carteira fallou debido a un erro interno. A túa carteira no foi encriptada.</translation> </message> <message> <source>The supplied passphrases do not match.</source> - <translation>Girilen parolalar eşleşmiyor.</translation> + <translation>As frases contrasinal introducidas non coinciden.</translation> </message> <message> <source>Wallet unlock failed</source> - <translation>Cüzdan Kilidi Açma Hatası</translation> + <translation>Desbloqueo de carteira fallido</translation> </message> <message> <source>The passphrase entered for the wallet decryption was incorrect.</source> - <translation>Cüzdan şifresinin açılması için girilen parola yanlıştı.</translation> + <translation>A frase contrasinal introducida para o desencriptamento da carteira é incorrecto.</translation> </message> <message> <source>Wallet decryption failed</source> - <translation>Cüzdan şifresinin açılması başarısız oldu</translation> + <translation>Fallou o desencriptado da carteira</translation> </message> <message> <source>Wallet passphrase was successfully changed.</source> - <translation>Cüzdan parolası başarılı bir şekilde değiştirildi.</translation> + <translation>A frase contrasinal da carteira mudouse correctamente.</translation> </message> <message> <source>Warning: The Caps Lock key is on!</source> - <translation>Dikkat! Caps Lock tuşunuz açık!</translation> + <translation>Aviso: ¡A tecla Bloq. Mayús está activada!</translation> </message> </context> <context> <name>BanTableModel</name> <message> <source>IP/Netmask</source> - <translation>IP/Ağ Maskesi</translation> + <translation>IP/Máscara de rede</translation> </message> <message> <source>Banned Until</source> - <translation>Şu zamana kadar yasaklı:</translation> + <translation>Vedado ata</translation> </message> </context> <context> <name>BitcoinGUI</name> <message> <source>Sign &message...</source> - <translation>İmza &mesaj</translation> + <translation>Firma &a mensaxe...</translation> </message> <message> <source>Synchronizing with network...</source> - <translation>Ağ ile bağlantı kuruluyor...</translation> + <translation>Sincronizando ca rede...</translation> </message> <message> <source>&Overview</source> - <translation>&Genel bakış</translation> + <translation>&visión xeral</translation> </message> <message> <source>Show general overview of wallet</source> - <translation>Cüzdana genel bakışı göster</translation> + <translation>Mostra una visión xeral da carteira</translation> </message> <message> <source>&Transactions</source> - <translation>&İşlemler</translation> + <translation>&Transaccións</translation> </message> <message> <source>Browse transaction history</source> - <translation>İşlem geçmişinize göz atın</translation> + <translation>Busca no historial de transaccións</translation> </message> <message> <source>E&xit</source> - <translation>Çıkış</translation> + <translation>S&aír</translation> </message> <message> <source>Quit application</source> - <translation>Başvuruyu iptal edin</translation> + <translation>Saír da aplicación</translation> </message> <message> <source>&About %1</source> - <translation>Hakkında%1</translation> + <translation>&A cerca de %1</translation> </message> <message> <source>Show information about %1</source> - <translation>%1 hakkındaki bilgileri görüntüle</translation> + <translation>Mostra información acerca de %1</translation> </message> <message> <source>About &Qt</source> - <translation>Qt Hakkında</translation> + <translation>Acerca de &Qt</translation> </message> <message> <source>Show information about Qt</source> - <translation>Qt hakkındaki bilgileri görüntüleyin</translation> + <translation>Mostra información acerca de Qt</translation> </message> <message> <source>&Options...</source> - <translation>&Seçenekler</translation> + <translation>&Opcións...</translation> </message> <message> <source>Modify configuration options for %1</source> - <translation>%1 için yapılandırma ayarlarını değiştir</translation> + <translation>Modifica as opcións de configuración de %1</translation> </message> <message> <source>&Encrypt Wallet...</source> - <translation>&Cüzdan Şifreleme</translation> + <translation>&Encriptar Carteira...</translation> </message> <message> <source>&Backup Wallet...</source> - <translation>&Cüzdan Yedekleme</translation> + <translation>&Respaldar Carteira...</translation> </message> <message> <source>&Change Passphrase...</source> - <translation>&Parolayı Değiştir...</translation> + <translation>&Mudar frase contrasinal...</translation> </message> <message> <source>Open &URI...</source> - <translation>URI'yi aç</translation> + <translation>Abrir &URI...</translation> </message> <message> <source>Create Wallet...</source> - <translation>Create Wallet...</translation> + <translation>Crear Carteira...</translation> </message> <message> <source>Create a new wallet</source> - <translation>Create a new wallet</translation> + <translation>Crear unha nova carteira</translation> </message> <message> <source>Wallet:</source> - <translation>Cüzdan:</translation> + <translation>Carteira:</translation> </message> <message> <source>Click to disable network activity.</source> - <translation>Ağ etkinliğini devre dışı bırakmak için tıklayın.</translation> + <translation>Fai click para desactivar a actividade da rede.</translation> </message> <message> <source>Network activity disabled.</source> - <translation>Ağ etkinliği devre dışı.</translation> + <translation>Actividade da rede desactivada.</translation> </message> <message> <source>Click to enable network activity again.</source> - <translation>Ağ aktivitesini tekrar başlatmak için tıklayın.</translation> + <translation>Fai click para activar a activade da red de novo.</translation> </message> <message> <source>Syncing Headers (%1%)...</source> - <translation>Üstbilgiler Senkronize Ediliyor (%1%)...</translation> + <translation>Sincronizando Cabeceiras (%1%)...</translation> </message> <message> <source>Reindexing blocks on disk...</source> - <translation>Bloklar disk üzerinde yeniden indeksleniyor...</translation> + <translation>Reindexando bloques en disco...</translation> </message> <message> <source>Proxy is <b>enabled</b>: %1</source> - <translation>Tünelleme <b>etkin</b>: %1</translation> + <translation>Proxy <b>activado</b>: %1</translation> </message> <message> <source>Send coins to a Bitcoin address</source> - <translation>Bitcoin adresine madeni para gönderin</translation> + <translation>Envía moedas a un enderezo de Bitcoin</translation> </message> <message> <source>Backup wallet to another location</source> - <translation>Cüzdanınızı başka bir lokasyona yedekleyin</translation> + <translation>Respalda a carteira noutro destino</translation> </message> <message> <source>Change the passphrase used for wallet encryption</source> - <translation>Cüzdan şifrelemesi için kullanılan parolayı değiştir</translation> + <translation>Cambia a frase contrasinal usada para a encriptación da carteira</translation> </message> <message> <source>&Verify message...</source> - <translation>Onay mesajı...</translation> + <translation>&Verifica a mensaxe...</translation> </message> <message> <source>&Send</source> - <translation>Gönder</translation> + <translation>&Envía</translation> </message> <message> <source>&Receive</source> - <translation>Al</translation> + <translation>&Recibir</translation> </message> <message> <source>&Show / Hide</source> - <translation>Göster / Gizle</translation> + <translation>&Mostra / Agocha</translation> </message> <message> <source>Show or hide the main Window</source> - <translation>Ana pencereyi göster ya da gizle</translation> + <translation>Mostra ou agocha a xanela principal</translation> </message> <message> <source>Encrypt the private keys that belong to your wallet</source> - <translation>Cüzdanınıza ait özel anahtarları şifreleyin</translation> + <translation>Encripta as claves privadas que pertencen á túa carteira</translation> </message> <message> <source>Sign messages with your Bitcoin addresses to prove you own them</source> - <translation>İletileri adreslerin size ait olduğunu ispatlamak için Bitcoin adresleri ile imzala</translation> + <translation>Asina mensaxes cos teus enderezos de Bitcoin para probar que che pertencen</translation> </message> <message> <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source> - <translation>Belirtilen Bitcoin adresleri ile imzalandıklarından emin olmak için iletileri kontrol et</translation> + <translation>Verifica mensaxes para asegurar que foron asinados cos enderezos de Bitcoin especificados</translation> </message> <message> <source>&File</source> - <translation>&Dosya</translation> + <translation>&Arquivo</translation> </message> <message> <source>&Settings</source> - <translation>&Ayarlar</translation> + <translation>&Opcións</translation> </message> <message> <source>&Help</source> - <translation>&Yardım</translation> + <translation>&Axuda</translation> </message> <message> <source>Tabs toolbar</source> - <translation>Sekme araç çubuğu</translation> + <translation>Barra de ferramentas das pestanas</translation> </message> <message> <source>Request payments (generates QR codes and bitcoin: URIs)</source> - <translation>Ödeme talep et (QR kodu ve bitcoin URI'si oluşturur)</translation> + <translation>Solicita pagamentos (xera un código QR e bitocin : URIs)</translation> </message> <message> <source>Show the list of used sending addresses and labels</source> - <translation>Kullanılan gönderim adreslerinin ve etiketlerinin listesini göster</translation> + <translation>Mostra a lista de enderezos de envío e etiquetas usadas</translation> </message> <message> <source>Show the list of used receiving addresses and labels</source> - <translation>Kullanılan alış adreslerinin ve etiketlerinin listesini göster</translation> + <translation>Mostra a lista de enderezos de recepción e etiquetas usadas</translation> </message> <message> <source>&Command-line options</source> - <translation>Komut satırı ayarları</translation> + <translation>&Opcións de comando</translation> </message> <message numerus="yes"> <source>%n active connection(s) to Bitcoin network</source> - <translation><numerusform>Bitcoin şebekesine %n faal bağlantı</numerusform><numerusform>Bitcoin ağına %n etkin bağlantı var</numerusform></translation> + <translation><numerusform>%n active connection to Bitcoin network</numerusform><numerusform>%n Conexións activas cara a rede de Bitcoin</numerusform></translation> </message> <message> <source>Indexing blocks on disk...</source> - <translation>Bloklar disk üzerinde indeksleniyor...</translation> + <translation>Indexando bloques no disco...</translation> </message> <message> <source>Processing blocks on disk...</source> - <translation>Bloklar diske işleniyor...</translation> + <translation>Procesando bloques no disco...</translation> </message> <message numerus="yes"> <source>Processed %n block(s) of transaction history.</source> - <translation><numerusform>Muamele tarihçesinden %n blok işlendi.</numerusform><numerusform>İşlem tarihçesinden %n blok işlendi</numerusform></translation> + <translation><numerusform>Processed %n block of transaction history.</numerusform><numerusform>Procesando %n bloques do historial de transaccións.</numerusform></translation> </message> <message> <source>%1 behind</source> - <translation>%1 geride</translation> + <translation>%1 tras</translation> </message> <message> <source>Last received block was generated %1 ago.</source> - <translation>Son alınan blok %1 önce oluşturulmuştu.</translation> + <translation>O último bloque recibido foi xerado fai %1.</translation> </message> <message> <source>Transactions after this will not yet be visible.</source> - <translation>Bundan sonraki işlemler henüz görüntülenemez.</translation> + <translation>Transaccións despois desta non serán aínda visibles.</translation> </message> <message> <source>Error</source> - <translation>Hata</translation> + <translation>Error</translation> </message> <message> <source>Warning</source> - <translation>Uyarı</translation> + <translation>Aviso</translation> </message> <message> <source>Information</source> - <translation>Bilgi</translation> + <translation>Información</translation> </message> <message> <source>Up to date</source> - <translation>Güncel</translation> + <translation>Actualizado</translation> </message> <message> <source>Node window</source> - <translation>Node window</translation> + <translation>Xanela de Nodo</translation> </message> <message> <source>Open node debugging and diagnostic console</source> - <translation>Open node debugging and diagnostic console</translation> + <translation>Abre a consola de depuración e diagnostico do nodo</translation> </message> <message> <source>&Sending addresses</source> - <translation>&Sending addresses</translation> + <translation>&Enderezos de envío</translation> </message> <message> <source>&Receiving addresses</source> - <translation>&Receiving addresses</translation> + <translation>&Enderezos de recepción</translation> </message> <message> <source>Open a bitcoin: URI</source> - <translation>Open a bitcoin: URI</translation> + <translation>Abre una URI de Bitcoin</translation> </message> <message> <source>Open Wallet</source> - <translation>Cüzdanı Aç</translation> + <translation>Abrir carteira</translation> </message> <message> <source>Open a wallet</source> - <translation>Bir cüzdan aç</translation> + <translation>Abrir unha carteira</translation> </message> <message> <source>Close Wallet...</source> - <translation>Cüzdanı Kapat...</translation> + <translation>Pechar carteira...</translation> </message> <message> <source>Close wallet</source> - <translation>Cüzdanı Kapat</translation> + <translation>Pechar carteira</translation> </message> <message> <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source> - <translation>Olası Bitcoin komut satırı seçeneklerinin listesini görmek için %1 yardım mesajını göster</translation> + <translation>Mostra a %1 mensaxe de axuda para obter unha lista cas posibles opcións de línea de comando de Bitcoin </translation> </message> <message> <source>default wallet</source> - <translation>varsayılan cüzdan</translation> + <translation>Carteira por defecto</translation> </message> <message> <source>No wallets available</source> - <translation>No wallets available</translation> + <translation>Non hai carteiras dispoñibles</translation> </message> <message> <source>&Window</source> - <translation>Pencere</translation> + <translation>&Xanela</translation> </message> <message> <source>Minimize</source> - <translation>Küçült</translation> + <translation>Minimizar</translation> </message> <message> <source>Zoom</source> @@ -543,407 +543,412 @@ </message> <message> <source>Main Window</source> - <translation>Main Window</translation> + <translation>Xanela Principal</translation> </message> <message> <source>%1 client</source> - <translation>%1 istemci</translation> + <translation>%1 cliente</translation> </message> <message> <source>Connecting to peers...</source> - <translation>Eşlere bağlanılıyor...</translation> + <translation>Connectando con compañeiros...</translation> </message> <message> <source>Catching up...</source> - <translation>Aralık kapatılıyor...</translation> + <translation>Poñéndose ao día...</translation> </message> <message> <source>Error: %1</source> - <translation>Hata: %1</translation> + <translation>Error: %1</translation> </message> <message> <source>Warning: %1</source> - <translation>Warning: %1</translation> + <translation>Aviso: %1</translation> </message> <message> <source>Date: %1 </source> - <translation>Tarih %1</translation> + <translation>Data: %1 +</translation> </message> <message> <source>Amount: %1 </source> - <translation>Tutar: %1 + <translation>Cantidade: %1 </translation> </message> <message> <source>Wallet: %1 </source> - <translation>Cüzdan: %1 + <translation>Carteira: %1 </translation> </message> <message> <source>Type: %1 </source> - <translation>Tür: %1 + <translation>Escribe: %1 </translation> </message> <message> <source>Label: %1 </source> - <translation>Etiket: %1 + <translation>Etiqueta: %1 </translation> </message> <message> <source>Address: %1 </source> - <translation>Adres: %1 + <translation>Enderezo: %1 </translation> </message> <message> <source>Sent transaction</source> - <translation>İşlem gönderildi</translation> + <translation>Transacción enviada</translation> </message> <message> <source>Incoming transaction</source> - <translation>Gelen işlem</translation> + <translation>Transacción entrante</translation> </message> <message> <source>HD key generation is <b>enabled</b></source> - <translation>HD anahtar üretimi<b>aktif</b></translation> + <translation>A xeración de clave HD está <b>activada</b></translation> </message> <message> <source>HD key generation is <b>disabled</b></source> - <translation>HD anahtar üretimi <b>pasif</b></translation> + <translation>A xeración de clave HD está <b>desactivada</b></translation> </message> <message> <source>Private key <b>disabled</b></source> - <translation>Private key <b>disabled</b></translation> + <translation>Clave privada <b>desactivada</b></translation> </message> <message> <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> - <translation>Cüzdan <b>şifrelenmiştir</b> ve şu anda <b>kilidi açıktır</b></translation> + <translation>A carteira está <b>encrypted</b> e actualmente <b>desbloqueada</b></translation> </message> <message> <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> - <translation>Cüzdan <b>şifrelenmiştir</b> ve şu anda <b>kilitlidir</b></translation> + <translation>A carteira está <b>encriptada</b> e actualmente <b>bloqueada</b></translation> </message> <message> <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source> - <translation>Ölümcül bir hata oluştu. Bitcoin yazılımı artık güvenli bir şekilde çalışmaya devam edemediği için kapatılacaktır.</translation> + <translation>Produciuse un error fatal. Bitcoin non pode seguir funcionando de maneira segura e sairá.</translation> </message> </context> <context> <name>CoinControlDialog</name> <message> <source>Coin Selection</source> - <translation>Bitcoin Seçimi</translation> + <translation>Selección de moeda</translation> </message> <message> <source>Quantity:</source> - <translation>Miktar:</translation> + <translation>Cantidade:</translation> </message> <message> <source>Bytes:</source> - <translation>Bayt</translation> + <translation>Bytes:</translation> </message> <message> <source>Amount:</source> - <translation>Tutar:</translation> + <translation>Cantidade:</translation> </message> <message> <source>Fee:</source> - <translation>Ücret:</translation> + <translation>taxa:</translation> </message> <message> <source>Dust:</source> - <translation>Toz:</translation> + <translation>po:</translation> </message> <message> <source>After Fee:</source> - <translation>Ücretten sonra kalan:</translation> + <translation>Despois de taxas:</translation> </message> <message> <source>Change:</source> - <translation>Değişen:</translation> + <translation>Cambio:</translation> </message> <message> <source>(un)select all</source> - <translation>tümünü seç(me)</translation> + <translation>(de)seleccionar todo</translation> </message> <message> <source>Tree mode</source> - <translation>Ağaç kipi</translation> + <translation>Modo en árbore</translation> </message> <message> <source>List mode</source> - <translation>Listeleme modu</translation> + <translation>Modo en Lista</translation> </message> <message> <source>Amount</source> - <translation>Tutar</translation> + <translation>Cantidade</translation> </message> <message> <source>Received with label</source> - <translation>Şu etiketle alındı</translation> + <translation>Recibida con etiqueta</translation> </message> <message> <source>Received with address</source> - <translation>Şu adresle alındı</translation> + <translation>Recibida con enderezo</translation> </message> <message> <source>Date</source> - <translation>Tarih</translation> + <translation>Data</translation> </message> <message> <source>Confirmations</source> - <translation>Onaylamalar</translation> + <translation>Confirmacións</translation> </message> <message> <source>Confirmed</source> - <translation>Kabul edilen</translation> + <translation>Confirmada</translation> </message> <message> <source>Copy address</source> - <translation>Adresi kopyala</translation> + <translation>Copiar enderezo</translation> </message> <message> <source>Copy label</source> - <translation>Etiketi kopyala</translation> + <translation>Copiar etiqueta</translation> </message> <message> <source>Copy amount</source> - <translation>Tutarı kopyala</translation> + <translation>Copiar cantidade</translation> </message> <message> <source>Copy transaction ID</source> - <translation>İşlem ID'sini kopyala</translation> + <translation>Copiar ID da transacción</translation> </message> <message> <source>Lock unspent</source> - <translation>Harcanmamışı kilitle</translation> + <translation>Bloquear o non gastado</translation> </message> <message> <source>Unlock unspent</source> - <translation>Harcanmamışın kilidini aç</translation> + <translation>Desbloquear o non gastado</translation> </message> <message> <source>Copy quantity</source> - <translation>Miktarı kopyala</translation> + <translation>Copiar cantidade</translation> </message> <message> <source>Copy fee</source> - <translation>Ücreti kopyala</translation> + <translation>Copiar taxa</translation> </message> <message> <source>Copy after fee</source> - <translation>Ücretten sonrasını kopyala</translation> + <translation>Copiar despois de taxa</translation> </message> <message> <source>Copy bytes</source> - <translation>Baytları kopyala</translation> + <translation>Copiar bytes</translation> </message> <message> <source>Copy dust</source> - <translation>Tozu kopyala</translation> + <translation>Copiar po</translation> </message> <message> <source>Copy change</source> - <translation>Para üstünü kopyala</translation> + <translation>Copiar cambio</translation> </message> <message> <source>(%1 locked)</source> - <translation>(%1 kilitli)</translation> + <translation>(%1 bloqueado)</translation> </message> <message> <source>yes</source> - <translation>Evet</translation> + <translation>sí</translation> </message> <message> <source>no</source> - <translation>Hayır</translation> + <translation>no</translation> </message> <message> <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source> - <translation>Eğer herhangi bir alıcı mevcut toz eşiğinden daha düşük bir tutar alırsa bu etiket kırmızıya dönüşür.</translation> + <translation>Esta etiqueta tórnase vermella se algún receptor recibe unha cantidade máis pequena que o actual límite de po.</translation> </message> <message> <source>Can vary +/- %1 satoshi(s) per input.</source> - <translation>Girdi başına +/- %1 satoshi değişebilir.</translation> + <translation>Pode variar +/- %1 satoshi(s) por entrada.</translation> </message> <message> <source>(no label)</source> - <translation>(etiket yok)</translation> + <translation>(sen etiqueta)</translation> </message> <message> <source>change from %1 (%2)</source> - <translation>%1 ögesinden para üstü (%2)</translation> + <translation>Cambia de %1 a (%2)</translation> </message> <message> <source>(change)</source> - <translation>(para üstü)</translation> + <translation>(Cambia)</translation> </message> </context> <context> <name>CreateWalletActivity</name> <message> <source>Creating Wallet <b>%1</b>...</source> - <translation>Creating Wallet <b>%1</b>...</translation> + <translation>Creando Carteira <b>%1</b>...</translation> </message> <message> <source>Create wallet failed</source> - <translation>Create wallet failed</translation> + <translation>Creación de carteira fallida</translation> </message> <message> <source>Create wallet warning</source> - <translation>Create wallet warning</translation> + <translation>Creación de carteira con aviso</translation> </message> </context> <context> <name>CreateWalletDialog</name> <message> <source>Create Wallet</source> - <translation>Create Wallet</translation> + <translation>Crea unha Carteira</translation> </message> <message> <source>Wallet Name</source> - <translation>Wallet Name</translation> + <translation>Nome da Carteira</translation> </message> <message> <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> - <translation>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</translation> + <translation>Encripta a carteira. A carteira sera encriptada cunha frase contrasinal que tú elixas.</translation> </message> <message> <source>Encrypt Wallet</source> - <translation>Encrypt Wallet</translation> + <translation>Encriptar Carteira</translation> </message> <message> <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> - <translation>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</translation> + <translation>Desactiva as claves privadas para esta carteira. Carteiras con claves privadas desactivadas non terán claves privadas e polo tanto non poderan ter unha semente HD ou claves privadas importadas. Esto é ideal para carteiras de solo visualización.</translation> </message> <message> <source>Disable Private Keys</source> - <translation>Disable Private Keys</translation> + <translation>Desactivar Claves Privadas</translation> </message> <message> <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> - <translation>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</translation> + <translation>Crear unha Carteira en blanco. As carteiras en blanco non teñen inicialmente claves privadas ou scripts. As claves privadas poden ser importadas ou unha semente HD poder ser configurada, máis adiante.</translation> </message> <message> <source>Make Blank Wallet</source> - <translation>Make Blank Wallet</translation> + <translation>Crea unha Carteira en Blanco</translation> </message> <message> <source>Create</source> - <translation>Create</translation> + <translation>Crea</translation> </message> </context> <context> <name>EditAddressDialog</name> <message> <source>Edit Address</source> - <translation>Adresi Düzenle</translation> + <translation>Editar Enderezo</translation> </message> <message> <source>&Label</source> - <translation>Etiket</translation> + <translation>&Etiqueta</translation> </message> <message> <source>The label associated with this address list entry</source> - <translation>Bu adres listesi girdisi ile ilişkili etiket</translation> + <translation>A etiqueta asociada con esta entrada na lista de enderezos</translation> </message> <message> <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> - <translation>Bu adres listesi girdisi ile ilişkili adres. Sadece gönderme adresleri için değiştirilebilir.</translation> + <translation>O enderezo asociado con esta entrada na lista de enderezos. Solo pode ser modificado por enderezos de envío.</translation> </message> <message> <source>&Address</source> - <translation>Adres</translation> + <translation>&Enderezo</translation> </message> <message> <source>New sending address</source> - <translation>Yeni gönderim adresi</translation> + <translation>Novo enderezo de envío</translation> </message> <message> <source>Edit receiving address</source> - <translation>Alış adresini düzenleyin</translation> + <translation>Editar enderezo de recepción</translation> </message> <message> <source>Edit sending address</source> - <translation>Gönderim adresini düzenleyin</translation> + <translation>Editar enderezo de envío</translation> </message> <message> <source>The entered address "%1" is not a valid Bitcoin address.</source> - <translation>Girilen adres "%1" Bitcoin adresiyle eşleşmiyor.</translation> + <translation>O enderezo introducido "%1" non é un enderezo de Bitcoin válido.</translation> </message> <message> <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source> - <translation>Adres "%1" adres "%2" etiketiyle alım adresiniz olarak mevcut ve bu sebepten gönderen adres olarak eklenemiyor.</translation> + <translation>O enderezo "%1" xa existe como un enderezo de recepción ca etiqueta "%2" polo que non pode ser añadido como un enderezo de envío.</translation> </message> <message> <source>The entered address "%1" is already in the address book with label "%2".</source> - <translation>girilen "%1" adresi "%2" etiketli adres defterinde zaten var.</translation> + <translation>O enderezo introducido "%1" xa existe na axenda de enderezos ca etiqueta "%2".</translation> </message> <message> <source>Could not unlock wallet.</source> - <translation>Cüzdan kilidi açılamadı.</translation> + <translation>Non se puido desbloquear a carteira.</translation> </message> <message> <source>New key generation failed.</source> - <translation>Yeni anahtar üretimi başarısız.</translation> + <translation>New key generation failed.</translation> </message> </context> <context> <name>FreespaceChecker</name> <message> <source>A new data directory will be created.</source> - <translation>Yeni bir veri klasörü oluşturulacaktır.</translation> + <translation>A new data directory will be created.</translation> </message> <message> <source>name</source> - <translation>isim</translation> + <translation>name</translation> </message> <message> <source>Directory already exists. Add %1 if you intend to create a new directory here.</source> - <translation>Klasör zaten mevcuttur. Burada yeni bir klasör oluşturmak istiyorsanız, %1 ekleyiniz.</translation> + <translation>Directory already exists. Add %1 if you intend to create a new directory here.</translation> </message> <message> <source>Path already exists, and is not a directory.</source> - <translation>Erişim yolu zaten mevcuttur ve klasör değildir.</translation> + <translation>Path already exists, and is not a directory.</translation> </message> <message> <source>Cannot create data directory here.</source> - <translation>Burada veri klasörü oluşturulamaz.</translation> + <translation>Cannot create data directory here.</translation> </message> </context> <context> <name>HelpMessageDialog</name> <message> <source>version</source> - <translation>versiyon</translation> + <translation>version</translation> </message> <message> <source>About %1</source> - <translation>Hakkında %1</translation> + <translation>About %1</translation> </message> <message> <source>Command-line options</source> - <translation>Komut satırı ayarları</translation> + <translation>Command-line options</translation> </message> </context> <context> <name>Intro</name> <message> <source>Welcome</source> - <translation>Hoş geldiniz</translation> + <translation>Welcome</translation> </message> <message> <source>Welcome to %1.</source> - <translation>%1'a hoşgeldiniz.</translation> + <translation>Welcome to %1.</translation> </message> <message> <source>As this is the first time the program is launched, you can choose where %1 will store its data.</source> - <translation>Bu programın ilk kez başlatılmasından dolayı %1 yazılımının verilerini nerede saklayacağını seçebilirsiniz.</translation> + <translation>As this is the first time the program is launched, you can choose where %1 will store its data.</translation> + </message> + <message> + <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source> + <translation>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</translation> </message> <message> <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> @@ -951,24 +956,23 @@ </message> <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> - <translation>Bu başlangıç senkronizasyonu çok zorlayıcıdır ve bilgisayarınızdaki daha önce fark edilmemiş olan donanım sorunlarını ortaya çıkarabilir. %1'i her çalıştırdığınızda, kaldığı yerden devam edecektir.</translation> + <translation>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</translation> </message> <message> <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source> - <translation>Blok zinciri saklamayı sınırlamayı seçtiyseniz (budama), geçmiş veriler yine de indirilmeli ve işlenmelidir, ancak disk kullanımınızı düşük tutmak için daha sonra silinmelidir.</translation> + <translation>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</translation> </message> <message> <source>Use the default data directory</source> - <translation>Varsayılan veri klasörünü kullan</translation> + <translation>Use the default data directory</translation> </message> <message> <source>Use a custom data directory:</source> - <translation>Özel bir veri klasörü kullan:</translation> + <translation>Use a custom data directory:</translation> </message> <message> <source>Bitcoin</source> - <translation>Bitcoin -</translation> + <translation>Bitcoin</translation> </message> <message> <source>Discard blocks after verification, except most recent %1 GB (prune)</source> @@ -976,35 +980,35 @@ </message> <message> <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> - <translation>Bu dizinde en az %1 GB lık veri depolanacak ve zamanla büyüyecek.</translation> + <translation>At least %1 GB of data will be stored in this directory, and it will grow over time.</translation> </message> <message> <source>Approximately %1 GB of data will be stored in this directory.</source> - <translation>Yaklaşık %1 GB veri bu dizinde depolanacak.</translation> + <translation>Approximately %1 GB of data will be stored in this directory.</translation> </message> <message> <source>%1 will download and store a copy of the Bitcoin block chain.</source> - <translation>%1 lik Bitcoin blok zinciri nin bir kopyasını indirecek ve depolayacak.</translation> + <translation>%1 will download and store a copy of the Bitcoin block chain.</translation> </message> <message> <source>The wallet will also be stored in this directory.</source> - <translation>Cüzdan da bu dizinde depolanacaktır.</translation> + <translation>The wallet will also be stored in this directory.</translation> </message> <message> <source>Error: Specified data directory "%1" cannot be created.</source> - <translation>Hata: belirtilen "%1" veri klasörü oluşturulamaz.</translation> + <translation>Error: Specified data directory "%1" cannot be created.</translation> </message> <message> <source>Error</source> - <translation>Hata</translation> + <translation>Error</translation> </message> <message numerus="yes"> <source>%n GB of free space available</source> - <translation><numerusform>%n GB boş alan mevcuttur</numerusform><numerusform>%n GB boş alan mevcuttur</numerusform></translation> + <translation><numerusform>%n GB of free space available</numerusform><numerusform>%n GB of free space available</numerusform></translation> </message> <message numerus="yes"> <source>(of %n GB needed)</source> - <translation><numerusform>(gereken %n GB alandan)</numerusform><numerusform>(gereken %n GB alandan)</numerusform></translation> + <translation><numerusform>(of %n GB needed)</numerusform><numerusform>(of %n GB needed)</numerusform></translation> </message> <message numerus="yes"> <source>(%n GB needed for full chain)</source> @@ -1019,43 +1023,43 @@ </message> <message> <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source> - <translation>Son işlemler henüz görünmeyebilir ve bu nedenle cüzdanınızın bakiyesi yanlış olabilir. Bu bilgiler, aşağıda detaylandırıldığı gibi, cüzdanınız bitcoin ağı ile senkronizasyonunu tamamladığında doğru olacaktır.</translation> + <translation>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</translation> </message> <message> <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source> - <translation>Henüz görüntülenmeyen işlemlerden etkilenen bitcoinleri harcama girişiminde bulunmak ağ tarafından kabul edilmeyecektir.</translation> + <translation>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</translation> </message> <message> <source>Number of blocks left</source> - <translation>Kalan blokların sayısı</translation> + <translation>Number of blocks left</translation> </message> <message> <source>Unknown...</source> - <translation>Bilinmiyor...</translation> + <translation>Unknown...</translation> </message> <message> <source>Last block time</source> - <translation>Son blok zamanı</translation> + <translation>Last block time</translation> </message> <message> <source>Progress</source> - <translation>İlerleme</translation> + <translation>Progress</translation> </message> <message> <source>Progress increase per hour</source> - <translation>Saat başı ilerleme artışı</translation> + <translation>Progress increase per hour</translation> </message> <message> <source>calculating...</source> - <translation>hesaplanıyor...</translation> + <translation>calculating...</translation> </message> <message> <source>Estimated time left until synced</source> - <translation>Senkronize edilene kadar kalan tahmini süre</translation> + <translation>Estimated time left until synced</translation> </message> <message> <source>Hide</source> - <translation>Gizle</translation> + <translation>Hide</translation> </message> <message> <source>Esc</source> @@ -1093,7 +1097,7 @@ </message> <message> <source>default wallet</source> - <translation>varsayılan cüzdan</translation> + <translation>default wallet</translation> </message> <message> <source>Opening Wallet <b>%1</b>...</source> @@ -1104,83 +1108,83 @@ <name>OptionsDialog</name> <message> <source>Options</source> - <translation>Ayarlar</translation> + <translation>Options</translation> </message> <message> <source>&Main</source> - <translation>&Ana Menü</translation> + <translation>&Main</translation> </message> <message> <source>Automatically start %1 after logging in to the system.</source> - <translation>Sistemde oturum açıldığında %1 programını otomatik olarak başlat.</translation> + <translation>Automatically start %1 after logging in to the system.</translation> </message> <message> <source>&Start %1 on system login</source> - <translation>&Açılışta %1 açılsın</translation> + <translation>&Start %1 on system login</translation> </message> <message> <source>Size of &database cache</source> - <translation>Veritabanı önbelleğinin boyutu</translation> + <translation>Size of &database cache</translation> </message> <message> <source>Number of script &verification threads</source> - <translation>İş parçacıklarını &denetleme betiği sayısı</translation> + <translation>Number of script &verification threads</translation> </message> <message> <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> - <translation>Proxy bağlantısı IP adresleri (örneğin IPv4: 127.0.0.1 / IPv6: ::1)</translation> + <translation>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</translation> </message> <message> <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> - <translation>Bu şebeke türü yoluyla eşlere bağlanmak için belirtilen varsayılan SOCKS5 vekil sunucusunun kullanılıp kullanılmadığını gösterir.</translation> + <translation>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</translation> </message> <message> <source>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</source> - <translation>Tor gizli servisleri aracılığıyla eşlere ulaşmak için ayrı SOCKS&5 proksi kullanın:</translation> + <translation>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</translation> </message> <message> <source>Hide the icon from the system tray.</source> - <translation>Simgeyi sistem tepsisinden gizleyin.</translation> + <translation>Hide the icon from the system tray.</translation> </message> <message> <source>&Hide tray icon</source> - <translation>&Simgeyi gizle</translation> + <translation>&Hide tray icon</translation> </message> <message> <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source> - <translation>Pencere kapatıldığında uygulamadan çıkmak yerine uygulamayı küçültür. Bu seçenek etkinleştirildiğinde, uygulama sadece menüden çıkış seçildiğinde kapanacaktır.</translation> + <translation>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</translation> </message> <message> <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> - <translation>İşlemler sekmesinde bağlam menüsü unsurları olarak görünen üçüncü taraf bağlantıları (mesela bir blok tarayıcısı). URL'deki %s, işlem hash değeri ile değiştirilecektir. Birden çok bağlantılar düşey çubuklar | ile ayrılacaktır.</translation> + <translation>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</translation> </message> <message> <source>Open the %1 configuration file from the working directory.</source> - <translation>Çalışma dizininden %1 yapılandırma dosyasını aç.</translation> + <translation>Open the %1 configuration file from the working directory.</translation> </message> <message> <source>Open Configuration File</source> - <translation>Konfigürasyon dosyasını aç</translation> + <translation>Open Configuration File</translation> </message> <message> <source>Reset all client options to default.</source> - <translation>Bütün ayarları varsayılana çevir</translation> + <translation>Reset all client options to default.</translation> </message> <message> <source>&Reset Options</source> - <translation>Seçenekleri &Sıfırla</translation> + <translation>&Reset Options</translation> </message> <message> <source>&Network</source> - <translation>Ağ</translation> + <translation>&Network</translation> </message> <message> <source>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</source> - <translation>Gelişmiş bazı ayarlar devredışı bırakılmış fakat tüm bloklar hala tam olarak doğrulanabilir. Bu ayarları geri almak tüm block zinciri'nin tekrar indirilmesini gerektirir. Mevcut disk kullanımınızda bir miktar artış görülebilir.</translation> + <translation>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</translation> </message> <message> <source>Prune &block storage to</source> - <translation>Temizle &block depolamasını</translation> + <translation>Prune &block storage to</translation> </message> <message> <source>GB</source> @@ -1188,7 +1192,7 @@ </message> <message> <source>Reverting this setting requires re-downloading the entire blockchain.</source> - <translation>Bu ayarları geri değiştirmek tüm blok zinciri'nin indirilmesini gerektirir.</translation> + <translation>Reverting this setting requires re-downloading the entire blockchain.</translation> </message> <message> <source>MiB</source> @@ -1196,55 +1200,55 @@ </message> <message> <source>(0 = auto, <0 = leave that many cores free)</source> - <translation>(0 = otomatik, <0 = bu kadar çekirdeği kullanma)</translation> + <translation>(0 = auto, <0 = leave that many cores free)</translation> </message> <message> <source>W&allet</source> - <translation>Cüzdan</translation> + <translation>W&allet</translation> </message> <message> <source>Expert</source> - <translation>Gelişmiş</translation> + <translation>Expert</translation> </message> <message> <source>Enable coin &control features</source> - <translation>Para &kontrolü özelliklerini etkinleştir</translation> + <translation>Enable coin &control features</translation> </message> <message> <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source> - <translation>Doğrulanmamış para üstünü harcamayı devre dışı bırakırsanız, bir işlemin para üstü bu işlem için en az bir doğrulama olana dek harcanamaz. Bu, aynı zamanda bakiyenizin nasıl hesaplandığını da etkiler.</translation> + <translation>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</translation> </message> <message> <source>&Spend unconfirmed change</source> - <translation>Doğrulanmamış para üstünü &harca</translation> + <translation>&Spend unconfirmed change</translation> </message> <message> <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source> - <translation>Yönlendiricide Bitcoin istemci portlarını otomatik olarak açar. Bu, sadece yönlendiricinizin UPnP desteği bulunuyorsa ve etkinse çalışabilir.</translation> + <translation>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</translation> </message> <message> <source>Map port using &UPnP</source> - <translation>Portları &UPnP kullanarak haritala</translation> + <translation>Map port using &UPnP</translation> </message> <message> <source>Accept connections from outside.</source> - <translation>Dışarıdan bağlantıları kabul et.</translation> + <translation>Accept connections from outside.</translation> </message> <message> <source>Allow incomin&g connections</source> - <translation>Gelen bağlantılara izin ver</translation> + <translation>Allow incomin&g connections</translation> </message> <message> <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> - <translation>Bitcoin ağına bir SOCKS5 vekil sunucusu aracılığıyla bağlan.</translation> + <translation>Connect to the Bitcoin network through a SOCKS5 proxy.</translation> </message> <message> <source>&Connect through SOCKS5 proxy (default proxy):</source> - <translation>SOCKS5 vekil sunucusu aracılığıyla &bağlan (varsayılan vekil sunucusu):</translation> + <translation>&Connect through SOCKS5 proxy (default proxy):</translation> </message> <message> <source>Proxy &IP:</source> - <translation>Vekil &IP:</translation> + <translation>Proxy &IP:</translation> </message> <message> <source>&Port:</source> @@ -1252,11 +1256,11 @@ </message> <message> <source>Port of the proxy (e.g. 9050)</source> - <translation>Proxy portu (örneğin 9050)</translation> + <translation>Port of the proxy (e.g. 9050)</translation> </message> <message> <source>Used for reaching peers via:</source> - <translation>Eşlere ulaşmak için kullanılır, şu üzerinden:</translation> + <translation>Used for reaching peers via:</translation> </message> <message> <source>IPv4</source> @@ -1272,51 +1276,51 @@ </message> <message> <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> - <translation>Bitcoin ağına gizli Tor servisleri için ayrı bir SOCKS5 vekil sunucusu aracılığıyla bağlan.</translation> + <translation>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</translation> </message> <message> <source>&Window</source> - <translation>Pencere</translation> + <translation>&Window</translation> </message> <message> <source>Show only a tray icon after minimizing the window.</source> - <translation>Küçültüldükten sonra sadece tepsi simgesi göster.</translation> + <translation>Show only a tray icon after minimizing the window.</translation> </message> <message> <source>&Minimize to the tray instead of the taskbar</source> - <translation>İşlem çubuğu yerine sistem çekmecesine &küçült</translation> + <translation>&Minimize to the tray instead of the taskbar</translation> </message> <message> <source>M&inimize on close</source> - <translation>Kapatma sırasında k&üçült</translation> + <translation>M&inimize on close</translation> </message> <message> <source>&Display</source> - <translation>&Görünüm</translation> + <translation>&Display</translation> </message> <message> <source>User Interface &language:</source> - <translation>Kullanıcı arayüzü dili</translation> + <translation>User Interface &language:</translation> </message> <message> <source>The user interface language can be set here. This setting will take effect after restarting %1.</source> - <translation>Kullanıcı arayüzünün dili burada belirtilebilir. Bu ayar %1 tekrar başlatıldığında etkinleşecektir.</translation> + <translation>The user interface language can be set here. This setting will take effect after restarting %1.</translation> </message> <message> <source>&Unit to show amounts in:</source> - <translation>Tutarı göstermek için &birim:</translation> + <translation>&Unit to show amounts in:</translation> </message> <message> <source>Choose the default subdivision unit to show in the interface and when sending coins.</source> - <translation>Bitcoin gönderildiğinde arayüzde gösterilecek varsayılan alt birimi seçiniz.</translation> + <translation>Choose the default subdivision unit to show in the interface and when sending coins.</translation> </message> <message> <source>Whether to show coin control features or not.</source> - <translation>Para kontrol özelliklerinin gösterilip gösterilmeyeceğini ayarlar.</translation> + <translation>Whether to show coin control features or not.</translation> </message> <message> <source>&Third party transaction URLs</source> - <translation>&Üçüncü parti işlem URL'leri</translation> + <translation>&Third party transaction URLs</translation> </message> <message> <source>Options set in this dialog are overridden by the command line or in the configuration file:</source> @@ -1324,55 +1328,55 @@ </message> <message> <source>&OK</source> - <translation>Tamam</translation> + <translation>&OK</translation> </message> <message> <source>&Cancel</source> - <translation>İptal</translation> + <translation>&Cancel</translation> </message> <message> <source>default</source> - <translation>Varsayılan</translation> + <translation>default</translation> </message> <message> <source>none</source> - <translation>boş</translation> + <translation>none</translation> </message> <message> <source>Confirm options reset</source> - <translation>Seçeneklerin sıfırlanmasını teyit et</translation> + <translation>Confirm options reset</translation> </message> <message> <source>Client restart required to activate changes.</source> - <translation>Değişikliklerin aktif edilebilmesi için yeniden başlatma gerekiyor.</translation> + <translation>Client restart required to activate changes.</translation> </message> <message> <source>Client will be shut down. Do you want to proceed?</source> - <translation>İstemci kapanacaktır. Devam etmek istiyor musunuz?</translation> + <translation>Client will be shut down. Do you want to proceed?</translation> </message> <message> <source>Configuration options</source> - <translation>Konfigürasyon ayarları</translation> + <translation>Configuration options</translation> </message> <message> <source>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</source> - <translation>Konfigürasyon dosyası GUI ayarlarını geçersiz kılmak için gelişmiş kullanıcı ayarlarını değiştirir. Ek olarak, herhangi bir komut satırı seçeneği konfigürasyon dosyasını geçersiz kılar.</translation> + <translation>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</translation> </message> <message> <source>Error</source> - <translation>Hata</translation> + <translation>Error</translation> </message> <message> <source>The configuration file could not be opened.</source> - <translation>Konfigürasyon dosyası açılamadı.</translation> + <translation>The configuration file could not be opened.</translation> </message> <message> <source>This change would require a client restart.</source> - <translation>Bu değişiklik istemcinin yeniden başlatılmasını gerektirir.</translation> + <translation>This change would require a client restart.</translation> </message> <message> <source>The supplied proxy address is invalid.</source> - <translation>Sağlanan proxy adresi geçerli değil.</translation> + <translation>The supplied proxy address is invalid.</translation> </message> </context> <context> @@ -1383,90 +1387,90 @@ </message> <message> <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> - <translation>Gösterilen bilgi geçerli olmayabilir. Bağlantı tekrar sağlandıktan sonra cüzdanınız otomatik olarak senkronize olacaktır. Henüz senkronize olma işlemi tamamlanmadı.</translation> + <translation>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.</translation> </message> <message> <source>Watch-only:</source> - <translation>Sadece görüntülenebilir:</translation> + <translation>Watch-only:</translation> </message> <message> <source>Available:</source> - <translation>Kullanılabilir:</translation> + <translation>Available:</translation> </message> <message> <source>Your current spendable balance</source> - <translation>Mevcut harcanabilir tutarınız</translation> + <translation>Your current spendable balance</translation> </message> <message> <source>Pending:</source> - <translation>Bekleyen:</translation> + <translation>Pending:</translation> </message> <message> <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> - <translation>Henüz doğrulanmamış ve harcanabilir bakiyeye eklenmemiş işlemlerin toplamı</translation> + <translation>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</translation> </message> <message> <source>Immature:</source> - <translation>Olgunlaşmamış:</translation> + <translation>Immature:</translation> </message> <message> <source>Mined balance that has not yet matured</source> - <translation>Oluşturulan bakiye henüz olgunlaşmamıştır</translation> + <translation>Mined balance that has not yet matured</translation> </message> <message> <source>Balances</source> - <translation>Bakiyeler</translation> + <translation>Balances</translation> </message> <message> <source>Total:</source> - <translation>Toplam:</translation> + <translation>Total:</translation> </message> <message> <source>Your current total balance</source> - <translation>Toplam mevcut miktarınız</translation> + <translation>Your current total balance</translation> </message> <message> <source>Your current balance in watch-only addresses</source> - <translation>Sadece görüntülenebilir adreslerdeki mevcut miktarınız</translation> + <translation>Your current balance in watch-only addresses</translation> </message> <message> <source>Spendable:</source> - <translation>Harcanabilir:</translation> + <translation>Spendable:</translation> </message> <message> <source>Recent transactions</source> - <translation>Yakın zamanda yapılmış işlemler</translation> + <translation>Recent transactions</translation> </message> <message> <source>Unconfirmed transactions to watch-only addresses</source> - <translation>Sadece görüntülenebilir adreslerdeki doğrulanmamış işlemler</translation> + <translation>Unconfirmed transactions to watch-only addresses</translation> </message> <message> <source>Mined balance in watch-only addresses that has not yet matured</source> - <translation>Sadece izlenen adreslerin henüz olgunlaşmamış oluşturulan bakiyeleri</translation> + <translation>Mined balance in watch-only addresses that has not yet matured</translation> </message> <message> <source>Current total balance in watch-only addresses</source> - <translation>Sadece görüntülenebilir adreslerdeki mevcut toplam miktar</translation> + <translation>Current total balance in watch-only addresses</translation> </message> </context> <context> <name>PaymentServer</name> <message> <source>Payment request error</source> - <translation>Ödeme isteği hatası</translation> + <translation>Payment request error</translation> </message> <message> <source>Cannot start bitcoin: click-to-pay handler</source> - <translation>Bitcoin başlatılamadı: tıkla-ve-öde yöneticisi</translation> + <translation>Cannot start bitcoin: click-to-pay handler</translation> </message> <message> <source>URI handling</source> - <translation>URI yönetimi</translation> + <translation>URI handling</translation> </message> <message> <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source> - <translation>'bitcoin://' geçerli bir protokol değil. Onun yerine 'bitcoin:' kullanınız.</translation> + <translation>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</translation> </message> <message> <source>Cannot process payment request because BIP70 is not supported.</source> @@ -1482,30 +1486,30 @@ </message> <message> <source>Invalid payment address %1</source> - <translation>Hatalı ödeme adresi %1</translation> + <translation>Invalid payment address %1</translation> </message> <message> <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source> - <translation>URI ayrıştırılamıyor! Bunun nedeni geçersiz bir Bitcoin adresi veya hatalı biçimlendirilmiş URI değişkenleri olabilir.</translation> + <translation>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</translation> </message> <message> <source>Payment request file handling</source> - <translation>Ödeme talebi dosyası yönetimi</translation> + <translation>Payment request file handling</translation> </message> </context> <context> <name>PeerTableModel</name> <message> <source>User Agent</source> - <translation>Kullanıcı Yazılımı</translation> + <translation>User Agent</translation> </message> <message> <source>Node/Service</source> - <translation>Düğüm/Servis</translation> + <translation>Node/Service</translation> </message> <message> <source>NodeId</source> - <translation>Düğüm ID'si</translation> + <translation>NodeId</translation> </message> <message> <source>Ping</source> @@ -1513,34 +1517,34 @@ </message> <message> <source>Sent</source> - <translation>Gönder</translation> + <translation>Sent</translation> </message> <message> <source>Received</source> - <translation>Alındı</translation> + <translation>Received</translation> </message> </context> <context> <name>QObject</name> <message> <source>Amount</source> - <translation>Tutar</translation> + <translation>Amount</translation> </message> <message> <source>Enter a Bitcoin address (e.g. %1)</source> - <translation>Bitcoin adresinizi girin (örneğin %1)</translation> + <translation>Enter a Bitcoin address (e.g. %1)</translation> </message> <message> <source>%1 d</source> - <translation>%1 g</translation> + <translation>%1 d</translation> </message> <message> <source>%1 h</source> - <translation>%1 s</translation> + <translation>%1 h</translation> </message> <message> <source>%1 m</source> - <translation>%1 d</translation> + <translation>%1 m</translation> </message> <message> <source>%1 s</source> @@ -1548,11 +1552,11 @@ </message> <message> <source>None</source> - <translation>Boş</translation> + <translation>None</translation> </message> <message> <source>N/A</source> - <translation>Yok</translation> + <translation>N/A</translation> </message> <message> <source>%1 ms</source> @@ -1560,31 +1564,31 @@ </message> <message numerus="yes"> <source>%n second(s)</source> - <translation><numerusform>%n saniye</numerusform><numerusform>%n saniye</numerusform></translation> + <translation><numerusform>%n second</numerusform><numerusform>%n seconds</numerusform></translation> </message> <message numerus="yes"> <source>%n minute(s)</source> - <translation><numerusform>%n dakika</numerusform><numerusform>%n dakika</numerusform></translation> + <translation><numerusform>%n minute</numerusform><numerusform>%n minutes</numerusform></translation> </message> <message numerus="yes"> <source>%n hour(s)</source> - <translation><numerusform>%n saat</numerusform><numerusform>%n saat</numerusform></translation> + <translation><numerusform>%n hour</numerusform><numerusform>%n hours</numerusform></translation> </message> <message numerus="yes"> <source>%n day(s)</source> - <translation><numerusform>%n gün</numerusform><numerusform>%n gün</numerusform></translation> + <translation><numerusform>%n day</numerusform><numerusform>%n days</numerusform></translation> </message> <message numerus="yes"> <source>%n week(s)</source> - <translation><numerusform>%n hafta</numerusform><numerusform>%n hafta</numerusform></translation> + <translation><numerusform>%n week</numerusform><numerusform>%n weeks</numerusform></translation> </message> <message> <source>%1 and %2</source> - <translation>%1 ve %2</translation> + <translation>%1 and %2</translation> </message> <message numerus="yes"> <source>%n year(s)</source> - <translation><numerusform>%n yıl</numerusform><numerusform>%n yıl</numerusform></translation> + <translation><numerusform>%n year</numerusform><numerusform>%n years</numerusform></translation> </message> <message> <source>%1 B</source> @@ -1604,42 +1608,42 @@ </message> <message> <source>Error: Specified data directory "%1" does not exist.</source> - <translation>Hata: Belirtilen "%1" veri klasörü yoktur.</translation> + <translation>Error: Specified data directory "%1" does not exist.</translation> </message> <message> <source>Error: Cannot parse configuration file: %1.</source> - <translation>Hata: %1 yapılandırma dosyası ayrıştırılamadı.</translation> + <translation>Error: Cannot parse configuration file: %1.</translation> </message> <message> <source>Error: %1</source> - <translation>Hata: %1</translation> + <translation>Error: %1</translation> </message> <message> <source>%1 didn't yet exit safely...</source> - <translation>%1 henüz güvenli bir şekilde çıkış yapmamıştır...</translation> + <translation>%1 didn't yet exit safely...</translation> </message> <message> <source>unknown</source> - <translation>bilinmiyor</translation> + <translation>unknown</translation> </message> </context> <context> <name>QRImageWidget</name> <message> <source>&Save Image...</source> - <translation>&Görüntüyü kaydet</translation> + <translation>&Save Image...</translation> </message> <message> <source>&Copy Image</source> - <translation>&Görüntüyü kopyala</translation> + <translation>&Copy Image</translation> </message> <message> <source>Resulting URI too long, try to reduce the text for label / message.</source> - <translation>Sonuç URI çok uzun, etiket ya da ileti metnini kısaltmayı deneyiniz.</translation> + <translation>Resulting URI too long, try to reduce the text for label / message.</translation> </message> <message> <source>Error encoding URI into QR Code.</source> - <translation>URI'nin QR koduna kodlanmasında hata oluştu.</translation> + <translation>Error encoding URI into QR Code.</translation> </message> <message> <source>QR code support not available.</source> @@ -1647,38 +1651,38 @@ </message> <message> <source>Save QR Code</source> - <translation>QR kodu kaydet</translation> + <translation>Save QR Code</translation> </message> <message> <source>PNG Image (*.png)</source> - <translation>PNG Resim (*.png)</translation> + <translation>PNG Image (*.png)</translation> </message> </context> <context> <name>RPCConsole</name> <message> <source>N/A</source> - <translation>Yok</translation> + <translation>N/A</translation> </message> <message> <source>Client version</source> - <translation>Arayüz versiyonu</translation> + <translation>Client version</translation> </message> <message> <source>&Information</source> - <translation>&Bilgi</translation> + <translation>&Information</translation> </message> <message> <source>General</source> - <translation>Genel</translation> + <translation>General</translation> </message> <message> <source>Using BerkeleyDB version</source> - <translation>Kullanılan BerkeleyDB versiyonu</translation> + <translation>Using BerkeleyDB version</translation> </message> <message> <source>Datadir</source> - <translation>Veri konumu</translation> + <translation>Datadir</translation> </message> <message> <source>To specify a non-default location of the data directory use the '%1' option.</source> @@ -1694,99 +1698,107 @@ </message> <message> <source>Startup time</source> - <translation>Başlangıç zamanı</translation> + <translation>Startup time</translation> </message> <message> <source>Network</source> - <translation>Ağ</translation> + <translation>Network</translation> </message> <message> <source>Name</source> - <translation>İsim</translation> + <translation>Name</translation> </message> <message> <source>Number of connections</source> - <translation>Bağlantı sayısı</translation> + <translation>Number of connections</translation> </message> <message> <source>Block chain</source> - <translation>Blok zinciri</translation> + <translation>Block chain</translation> </message> <message> <source>Current number of blocks</source> - <translation>Güncel blok sayısı</translation> + <translation>Current number of blocks</translation> </message> <message> <source>Memory Pool</source> - <translation>Bellek Alanı</translation> + <translation>Memory Pool</translation> </message> <message> <source>Current number of transactions</source> - <translation>Güncel işlem sayısı</translation> + <translation>Current number of transactions</translation> </message> <message> <source>Memory usage</source> - <translation>Bellek kullanımı</translation> + <translation>Memory usage</translation> </message> <message> <source>Wallet: </source> - <translation>Cüzdan:</translation> + <translation>Wallet: </translation> </message> <message> <source>(none)</source> - <translation>(boş)</translation> + <translation>(none)</translation> </message> <message> <source>&Reset</source> - <translation>&Yeniden başlat</translation> + <translation>&Reset</translation> </message> <message> <source>Received</source> - <translation>Alındı</translation> + <translation>Received</translation> </message> <message> <source>Sent</source> - <translation>Gönder</translation> + <translation>Sent</translation> </message> <message> <source>&Peers</source> - <translation>&Eşler</translation> + <translation>&Peers</translation> </message> <message> <source>Banned peers</source> - <translation>Yasaklı eşler</translation> + <translation>Banned peers</translation> </message> <message> <source>Select a peer to view detailed information.</source> - <translation>Ayrıntılı bilgi görmek için bir eş seçin.</translation> + <translation>Select a peer to view detailed information.</translation> </message> <message> <source>Whitelisted</source> - <translation>Beyaz listede</translation> + <translation>Whitelisted</translation> </message> <message> <source>Direction</source> - <translation>Yön</translation> + <translation>Direction</translation> </message> <message> <source>Version</source> - <translation>Versiyon</translation> + <translation>Version</translation> </message> <message> <source>Starting Block</source> - <translation>Başlangıç Bloku</translation> + <translation>Starting Block</translation> </message> <message> <source>Synced Headers</source> - <translation>Eşleşmiş Üstbilgiler</translation> + <translation>Synced Headers</translation> </message> <message> <source>Synced Blocks</source> - <translation>Eşleşmiş Bloklar</translation> + <translation>Synced Blocks</translation> + </message> + <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>The mapped Autonomous System used for diversifying peer selection.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapped AS</translation> </message> <message> <source>User Agent</source> - <translation>Kullanıcı Yazılımı</translation> + <translation>User Agent</translation> </message> <message> <source>Node window</source> @@ -1794,214 +1806,214 @@ </message> <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> - <translation>Güncel veri klasöründen %1 hata ayıklama kütük dosyasını açar. Büyük kütük dosyaları için bu birkaç saniye alabilir.</translation> + <translation>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</translation> </message> <message> <source>Decrease font size</source> - <translation>Font boyutunu küçült</translation> + <translation>Decrease font size</translation> </message> <message> <source>Increase font size</source> - <translation>Yazıtipi boyutunu büyült</translation> + <translation>Increase font size</translation> </message> <message> <source>Services</source> - <translation>Servisler</translation> + <translation>Services</translation> </message> <message> <source>Ban Score</source> - <translation>Yasaklama Skoru</translation> + <translation>Ban Score</translation> </message> <message> <source>Connection Time</source> - <translation>Bağlantı süresi</translation> + <translation>Connection Time</translation> </message> <message> <source>Last Send</source> - <translation>Son gönderim</translation> + <translation>Last Send</translation> </message> <message> <source>Last Receive</source> - <translation>Son alış</translation> + <translation>Last Receive</translation> </message> <message> <source>Ping Time</source> - <translation>Ping süresi</translation> + <translation>Ping Time</translation> </message> <message> <source>The duration of a currently outstanding ping.</source> - <translation>Güncel olarak göze çarpan bir ping'in süresi.</translation> + <translation>The duration of a currently outstanding ping.</translation> </message> <message> <source>Ping Wait</source> - <translation>Ping bekliyor</translation> + <translation>Ping Wait</translation> </message> <message> <source>Min Ping</source> - <translation>En Düşük Ping</translation> + <translation>Min Ping</translation> </message> <message> <source>Time Offset</source> - <translation>Saat Farkı</translation> + <translation>Time Offset</translation> </message> <message> <source>Last block time</source> - <translation>Son blok zamanı</translation> + <translation>Last block time</translation> </message> <message> <source>&Open</source> - <translation>&Aç</translation> + <translation>&Open</translation> </message> <message> <source>&Console</source> - <translation>&Konsol</translation> + <translation>&Console</translation> </message> <message> <source>&Network Traffic</source> - <translation>&Ağ trafiği</translation> + <translation>&Network Traffic</translation> </message> <message> <source>Totals</source> - <translation>Toplam</translation> + <translation>Totals</translation> </message> <message> <source>In:</source> - <translation>İçeri:</translation> + <translation>In:</translation> </message> <message> <source>Out:</source> - <translation>Dışarı:</translation> + <translation>Out:</translation> </message> <message> <source>Debug log file</source> - <translation>Hata ayıklama kütük dosyası</translation> + <translation>Debug log file</translation> </message> <message> <source>Clear console</source> - <translation>Konsolu temizle</translation> + <translation>Clear console</translation> </message> <message> <source>1 &hour</source> - <translation>1 &saat</translation> + <translation>1 &hour</translation> </message> <message> <source>1 &day</source> - <translation>1 &gün</translation> + <translation>1 &day</translation> </message> <message> <source>1 &week</source> - <translation>1 &hafta</translation> + <translation>1 &week</translation> </message> <message> <source>1 &year</source> - <translation>1 &yıl</translation> + <translation>1 &year</translation> </message> <message> <source>&Disconnect</source> - <translation>&Bağlantı kesildi</translation> + <translation>&Disconnect</translation> </message> <message> <source>Ban for</source> - <translation>Yasakla</translation> + <translation>Ban for</translation> </message> <message> <source>&Unban</source> - <translation>&Yasaklamayı Kaldır</translation> + <translation>&Unban</translation> </message> <message> <source>Welcome to the %1 RPC console.</source> - <translation>%1 RPC konsoluna hoş geldiniz.</translation> + <translation>Welcome to the %1 RPC console.</translation> </message> <message> <source>Use up and down arrows to navigate history, and %1 to clear screen.</source> - <translation>Geçmişte gezinmek için yukarı ve aşağı oklarını kullanın ve ekranı temizlemek için %1 kullanın.</translation> + <translation>Use up and down arrows to navigate history, and %1 to clear screen.</translation> </message> <message> <source>Type %1 for an overview of available commands.</source> - <translation>Mevcut komutlara göz atmak için %1 yazın.</translation> + <translation>Type %1 for an overview of available commands.</translation> </message> <message> <source>For more information on using this console type %1.</source> - <translation>Bu konsolun kullanımı hakkında daha fazla bilgi için %1 yazın.</translation> + <translation>For more information on using this console type %1.</translation> </message> <message> <source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</source> - <translation>UYARI: Bitcoin dolandırıcılarının çok fazla etkin olduğu zamanlarda, dolandırıcılar bazı kullanıcılara buraya komutlar yazmalarını söylerek onların cüzdanlarındaki bitcoinleri çalmışlardır. Bir komutun sonuçlarını tam olarak anlamadan bu konsolu kullanmayın.</translation> + <translation>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</translation> </message> <message> <source>Network activity disabled</source> - <translation>Ağ aktivitesi pasif</translation> + <translation>Network activity disabled</translation> </message> <message> <source>Executing command without any wallet</source> - <translation>Komut bir cüzdan olmadan çalıştırılıyor</translation> + <translation>Executing command without any wallet</translation> </message> <message> <source>Executing command using "%1" wallet</source> - <translation>Komut "%1" cüzdanı kullanılarak çalıştırılıyor</translation> + <translation>Executing command using "%1" wallet</translation> </message> <message> <source>(node id: %1)</source> - <translation>(düğüm kimliği: %1)</translation> + <translation>(node id: %1)</translation> </message> <message> <source>via %1</source> - <translation>%1 vasıtasıyla</translation> + <translation>via %1</translation> </message> <message> <source>never</source> - <translation>asla</translation> + <translation>never</translation> </message> <message> <source>Inbound</source> - <translation>Gelen</translation> + <translation>Inbound</translation> </message> <message> <source>Outbound</source> - <translation>Giden</translation> + <translation>Outbound</translation> </message> <message> <source>Yes</source> - <translation>Evet</translation> + <translation>Yes</translation> </message> <message> <source>No</source> - <translation>Hayır</translation> + <translation>No</translation> </message> <message> <source>Unknown</source> - <translation>Bilinmiyor</translation> + <translation>Unknown</translation> </message> </context> <context> <name>ReceiveCoinsDialog</name> <message> <source>&Amount:</source> - <translation>&Tutar:</translation> + <translation>&Amount:</translation> </message> <message> <source>&Label:</source> - <translation>&Etiket</translation> + <translation>&Label:</translation> </message> <message> <source>&Message:</source> - <translation>&Mesaj</translation> + <translation>&Message:</translation> </message> <message> <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source> - <translation>Talep açıldığında gösterilecek, isteğinize dayalı, ödeme talebi ile ilişkilendirilecek bir ileti. Not: Bu ileti ödeme ile birlikte Bitcoin ağı üzerinden gönderilmeyecektir.</translation> + <translation>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</translation> </message> <message> <source>An optional label to associate with the new receiving address.</source> - <translation>Yeni alım adresi ile ilişkili, seçiminize dayalı etiket.</translation> + <translation>An optional label to associate with the new receiving address.</translation> </message> <message> <source>Use this form to request payments. All fields are <b>optional</b>.</source> - <translation>Ödeme talep etmek için bu formu kullanın. Tüm alanlar <b>seçime dayalıdır</b>.</translation> + <translation>Use this form to request payments. All fields are <b>optional</b>.</translation> </message> <message> <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source> - <translation>Seçiminize dayalı talep edilecek tutar. Belli bir tutar talep etmemek için bunu boş bırakın veya sıfır değerini kullanın.</translation> + <translation>An optional amount to request. Leave this empty or zero to not request a specific amount.</translation> </message> <message> <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> @@ -2017,11 +2029,11 @@ </message> <message> <source>Clear all fields of the form.</source> - <translation>Formdaki tüm alanları temizle.</translation> + <translation>Clear all fields of the form.</translation> </message> <message> <source>Clear</source> - <translation>Temizle</translation> + <translation>Clear</translation> </message> <message> <source>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</source> @@ -2029,70 +2041,70 @@ </message> <message> <source>Generate native segwit (Bech32) address</source> - <translation>Yerli segwit (Bech32) adresi oluştur</translation> + <translation>Generate native segwit (Bech32) address</translation> </message> <message> <source>Requested payments history</source> - <translation>Talep edilen ödemelerin tarihçesi</translation> + <translation>Requested payments history</translation> </message> <message> <source>Show the selected request (does the same as double clicking an entry)</source> - <translation>Seçilen talebi göster (bir unsura çift tıklamakla aynı anlama gelir)</translation> + <translation>Show the selected request (does the same as double clicking an entry)</translation> </message> <message> <source>Show</source> - <translation>Göster</translation> + <translation>Show</translation> </message> <message> <source>Remove the selected entries from the list</source> - <translation>Seçilen unsurları listeden kaldır</translation> + <translation>Remove the selected entries from the list</translation> </message> <message> <source>Remove</source> - <translation>Sil</translation> + <translation>Remove</translation> </message> <message> <source>Copy URI</source> - <translation>URI'yi kopyala</translation> + <translation>Copy URI</translation> </message> <message> <source>Copy label</source> - <translation>Etiketi kopyala</translation> + <translation>Copy label</translation> </message> <message> <source>Copy message</source> - <translation>Mesajı kopyala</translation> + <translation>Copy message</translation> </message> <message> <source>Copy amount</source> - <translation>Tutarı kopyala</translation> + <translation>Copy amount</translation> </message> </context> <context> <name>ReceiveRequestDialog</name> <message> <source>QR Code</source> - <translation>QR kod</translation> + <translation>QR Code</translation> </message> <message> <source>Copy &URI</source> - <translation>URI'yi kopyala</translation> + <translation>Copy &URI</translation> </message> <message> <source>Copy &Address</source> - <translation>&Adresi Kopyala</translation> + <translation>Copy &Address</translation> </message> <message> <source>&Save Image...</source> - <translation>&Görüntüyü kaydet</translation> + <translation>&Save Image...</translation> </message> <message> <source>Request payment to %1</source> - <translation>%1 unsuruna ödeme talep et</translation> + <translation>Request payment to %1</translation> </message> <message> <source>Payment information</source> - <translation>Ödeme bilgisi</translation> + <translation>Payment information</translation> </message> <message> <source>URI</source> @@ -2100,117 +2112,117 @@ </message> <message> <source>Address</source> - <translation>adres</translation> + <translation>Address</translation> </message> <message> <source>Amount</source> - <translation>Tutar</translation> + <translation>Amount</translation> </message> <message> <source>Label</source> - <translation>etiket</translation> + <translation>Label</translation> </message> <message> <source>Message</source> - <translation>Mesaj</translation> + <translation>Message</translation> </message> <message> <source>Wallet</source> - <translation>Cüzdan</translation> + <translation>Wallet</translation> </message> </context> <context> <name>RecentRequestsTableModel</name> <message> <source>Date</source> - <translation>Tarih</translation> + <translation>Date</translation> </message> <message> <source>Label</source> - <translation>etiket</translation> + <translation>Label</translation> </message> <message> <source>Message</source> - <translation>Mesaj</translation> + <translation>Message</translation> </message> <message> <source>(no label)</source> - <translation>(etiket yok)</translation> + <translation>(no label)</translation> </message> <message> <source>(no message)</source> - <translation>(mesaj yok)</translation> + <translation>(no message)</translation> </message> <message> <source>(no amount requested)</source> - <translation>(tutar talep edilmedi)</translation> + <translation>(no amount requested)</translation> </message> <message> <source>Requested</source> - <translation>Talep edilen</translation> + <translation>Requested</translation> </message> </context> <context> <name>SendCoinsDialog</name> <message> <source>Send Coins</source> - <translation>Coin gönder</translation> + <translation>Send Coins</translation> </message> <message> <source>Coin Control Features</source> - <translation>Para kontrolü özellikleri</translation> + <translation>Coin Control Features</translation> </message> <message> <source>Inputs...</source> - <translation>Girdiler...</translation> + <translation>Inputs...</translation> </message> <message> <source>automatically selected</source> - <translation>Otomatik seçildi</translation> + <translation>automatically selected</translation> </message> <message> <source>Insufficient funds!</source> - <translation>Yetersiz fon!</translation> + <translation>Insufficient funds!</translation> </message> <message> <source>Quantity:</source> - <translation>Miktar:</translation> + <translation>Quantity:</translation> </message> <message> <source>Bytes:</source> - <translation>Bayt</translation> + <translation>Bytes:</translation> </message> <message> <source>Amount:</source> - <translation>Tutar:</translation> + <translation>Amount:</translation> </message> <message> <source>Fee:</source> - <translation>Ücret:</translation> + <translation>Fee:</translation> </message> <message> <source>After Fee:</source> - <translation>Ücretten sonra kalan:</translation> + <translation>After Fee:</translation> </message> <message> <source>Change:</source> - <translation>Değişen:</translation> + <translation>Change:</translation> </message> <message> <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source> - <translation>Bu etkinleştirildiyse fakat para üstü adresi boş ya da geçersizse para üstü yeni oluşturulan bir adrese gönderilecektir.</translation> + <translation>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</translation> </message> <message> <source>Custom change address</source> - <translation>Özel para üstü adresi</translation> + <translation>Custom change address</translation> </message> <message> <source>Transaction Fee:</source> - <translation>Gönderim ücreti:</translation> + <translation>Transaction Fee:</translation> </message> <message> <source>Choose...</source> - <translation>Seçiniz...</translation> + <translation>Choose...</translation> </message> <message> <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source> @@ -2218,7 +2230,7 @@ </message> <message> <source>Warning: Fee estimation is currently not possible.</source> - <translation>Uyarı: Ücret tahmini şu anda mümkün değildir.</translation> + <translation>Warning: Fee estimation is currently not possible.</translation> </message> <message> <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. @@ -2230,39 +2242,39 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>per kilobyte</source> - <translation>kilobyte başına</translation> + <translation>per kilobyte</translation> </message> <message> <source>Hide</source> - <translation>Gizle</translation> + <translation>Hide</translation> </message> <message> <source>Recommended:</source> - <translation>Önerilen:</translation> + <translation>Recommended:</translation> </message> <message> <source>Custom:</source> - <translation>Özel:</translation> + <translation>Custom:</translation> </message> <message> <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> - <translation>(Zeki ücret henüz başlatılmadı. Bu genelde birkaç blok alır...)</translation> + <translation>(Smart fee not initialized yet. This usually takes a few blocks...)</translation> </message> <message> <source>Send to multiple recipients at once</source> - <translation>Birçok alıcıya aynı anda gönder</translation> + <translation>Send to multiple recipients at once</translation> </message> <message> <source>Add &Recipient</source> - <translation>&Alıcı ekle</translation> + <translation>Add &Recipient</translation> </message> <message> <source>Clear all fields of the form.</source> - <translation>Formdaki tüm alanları temizle.</translation> + <translation>Clear all fields of the form.</translation> </message> <message> <source>Dust:</source> - <translation>Toz:</translation> + <translation>Dust:</translation> </message> <message> <source>Hide transaction fee settings</source> @@ -2278,7 +2290,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Confirmation time target:</source> - <translation>Doğrulama süresi hedefi:</translation> + <translation>Confirmation time target:</translation> </message> <message> <source>Enable Replace-By-Fee</source> @@ -2290,51 +2302,51 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Clear &All</source> - <translation>Hepsini sil</translation> + <translation>Clear &All</translation> </message> <message> <source>Balance:</source> - <translation>Bakiye:</translation> + <translation>Balance:</translation> </message> <message> <source>Confirm the send action</source> - <translation>Yollama etkinliğini teyit ediniz</translation> + <translation>Confirm the send action</translation> </message> <message> <source>S&end</source> - <translation>G&önder</translation> + <translation>S&end</translation> </message> <message> <source>Copy quantity</source> - <translation>Miktarı kopyala</translation> + <translation>Copy quantity</translation> </message> <message> <source>Copy amount</source> - <translation>Tutarı kopyala</translation> + <translation>Copy amount</translation> </message> <message> <source>Copy fee</source> - <translation>Ücreti kopyala</translation> + <translation>Copy fee</translation> </message> <message> <source>Copy after fee</source> - <translation>Ücretten sonrasını kopyala</translation> + <translation>Copy after fee</translation> </message> <message> <source>Copy bytes</source> - <translation>Baytları kopyala</translation> + <translation>Copy bytes</translation> </message> <message> <source>Copy dust</source> - <translation>Tozu kopyala</translation> + <translation>Copy dust</translation> </message> <message> <source>Copy change</source> - <translation>Para üstünü kopyala</translation> + <translation>Copy change</translation> </message> <message> <source>%1 (%2 blocks)</source> - <translation>%1 (%2 blok)</translation> + <translation>%1 (%2 blocks)</translation> </message> <message> <source>Cr&eate Unsigned</source> @@ -2354,7 +2366,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>%1 to %2</source> - <translation>%1'den %2'e</translation> + <translation>%1 to %2</translation> </message> <message> <source>Do you want to draft this transaction?</source> @@ -2362,7 +2374,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Are you sure you want to send?</source> - <translation>Göndermek istediğinize emin misiniz?</translation> + <translation>Are you sure you want to send?</translation> </message> <message> <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> @@ -2370,7 +2382,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>or</source> - <translation>ya da</translation> + <translation>or</translation> </message> <message> <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source> @@ -2378,11 +2390,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Please, review your transaction.</source> - <translation>Lütfen, işleminizi gözden geçirin.</translation> + <translation>Please, review your transaction.</translation> </message> <message> <source>Transaction fee</source> - <translation>Gönderim ücreti</translation> + <translation>Transaction fee</translation> </message> <message> <source>Not signalling Replace-By-Fee, BIP-125.</source> @@ -2390,7 +2402,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Total Amount</source> - <translation>Toplam Tutar</translation> + <translation>Total Amount</translation> </message> <message> <source>To review recipient list click "Show Details..."</source> @@ -2398,7 +2410,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Confirm send coins</source> - <translation>Coin gönderimini onaylayın</translation> + <translation>Confirm send coins</translation> </message> <message> <source>Confirm transaction proposal</source> @@ -2422,82 +2434,82 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>The recipient address is not valid. Please recheck.</source> - <translation>Alıcı adresi geçerli değildir. Lütfen tekrar kontrol ediniz.</translation> + <translation>The recipient address is not valid. Please recheck.</translation> </message> <message> <source>The amount to pay must be larger than 0.</source> - <translation>Ödeyeceğiniz tutarın 0'dan yüksek olması gerekir.</translation> + <translation>The amount to pay must be larger than 0.</translation> </message> <message> <source>The amount exceeds your balance.</source> - <translation>Tutar bakiyenizden yüksektir.</translation> + <translation>The amount exceeds your balance.</translation> </message> <message> <source>The total exceeds your balance when the %1 transaction fee is included.</source> - <translation>Toplam, %1 işlem ücreti eklendiğinde bakiyenizi geçmektedir.</translation> + <translation>The total exceeds your balance when the %1 transaction fee is included.</translation> </message> <message> <source>Duplicate address found: addresses should only be used once each.</source> - <translation>Tekrarlayan adres bulundu: adresler sadece bir kez kullanılmalıdır.</translation> + <translation>Duplicate address found: addresses should only be used once each.</translation> </message> <message> <source>Transaction creation failed!</source> - <translation>İşlem oluşturma başarısız!</translation> + <translation>Transaction creation failed!</translation> </message> <message> <source>A fee higher than %1 is considered an absurdly high fee.</source> - <translation>%1 tutarından yüksek bir ücret saçma derecede yüksek bir ücret olarak kabul edilir.</translation> + <translation>A fee higher than %1 is considered an absurdly high fee.</translation> </message> <message> <source>Payment request expired.</source> - <translation>Ödeme talebinin geçerlilik süresi bitti.</translation> + <translation>Payment request expired.</translation> </message> <message numerus="yes"> <source>Estimated to begin confirmation within %n block(s).</source> - <translation><numerusform>Tahmini %n blok içinde doğrulamaya başlanacaktır.</numerusform><numerusform>Tahmini %n blok içinde doğrulamaya başlanacaktır.</numerusform></translation> + <translation><numerusform>Estimated to begin confirmation within %n block.</numerusform><numerusform>Estimated to begin confirmation within %n blocks.</numerusform></translation> </message> <message> <source>Warning: Invalid Bitcoin address</source> - <translation>Uyarı: Hatalı Bitcoin adresi</translation> + <translation>Warning: Invalid Bitcoin address</translation> </message> <message> <source>Warning: Unknown change address</source> - <translation>Uyarı: Bilinmeyen para üstü adresi</translation> + <translation>Warning: Unknown change address</translation> </message> <message> <source>Confirm custom change address</source> - <translation>Özel para üstü adresini onayla</translation> + <translation>Confirm custom change address</translation> </message> <message> <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source> - <translation>Para üstü için seçtiğiniz adres bu cüzdanın bir parçası değil. Cüzdanınızdaki bir miktar veya tüm para bu adrese gönderilebilir. Emin misiniz?</translation> + <translation>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</translation> </message> <message> <source>(no label)</source> - <translation>(etiket yok)</translation> + <translation>(no label)</translation> </message> </context> <context> <name>SendCoinsEntry</name> <message> <source>A&mount:</source> - <translation>T&utar:</translation> + <translation>A&mount:</translation> </message> <message> <source>Pay &To:</source> - <translation>&Şu adrese öde:</translation> + <translation>Pay &To:</translation> </message> <message> <source>&Label:</source> - <translation>&Etiket</translation> + <translation>&Label:</translation> </message> <message> <source>Choose previously used address</source> - <translation>Önceden kullanılmış adres seç</translation> + <translation>Choose previously used address</translation> </message> <message> <source>The Bitcoin address to send the payment to</source> - <translation>Ödemenin yollanacağı Bitcoin adresi</translation> + <translation>The Bitcoin address to send the payment to</translation> </message> <message> <source>Alt+A</source> @@ -2505,7 +2517,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Paste address from clipboard</source> - <translation>Panodaki adresi yapıştırın</translation> + <translation>Paste address from clipboard</translation> </message> <message> <source>Alt+P</source> @@ -2513,7 +2525,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Remove this entry</source> - <translation>Bu ögeyi kaldır</translation> + <translation>Remove this entry</translation> </message> <message> <source>The amount to send in the selected unit</source> @@ -2521,77 +2533,77 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> - <translation>Ücret yollanan tutardan alınacaktır. Alıcı tutar alanına girdiğinizden daha az bitcoin alacaktır. Eğer birden çok alıcı seçiliyse ücret eşit olarak bölünecektir.</translation> + <translation>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</translation> </message> <message> <source>S&ubtract fee from amount</source> - <translation>Ücreti tutardan düş</translation> + <translation>S&ubtract fee from amount</translation> </message> <message> <source>Use available balance</source> - <translation>Mevcut bakiyeyi kullan</translation> + <translation>Use available balance</translation> </message> <message> <source>Message:</source> - <translation>Mesaj:</translation> + <translation>Message:</translation> </message> <message> <source>This is an unauthenticated payment request.</source> - <translation>Bu, kimliği doğrulanmamış bir ödeme talebidir.</translation> + <translation>This is an unauthenticated payment request.</translation> </message> <message> <source>This is an authenticated payment request.</source> - <translation>Bu, kimliği doğrulanmış bir ödeme talebidir.</translation> + <translation>This is an authenticated payment request.</translation> </message> <message> <source>Enter a label for this address to add it to the list of used addresses</source> - <translation>Kullanılmış adres listesine eklemek için bu adrese bir etiket girin</translation> + <translation>Enter a label for this address to add it to the list of used addresses</translation> </message> <message> <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source> - <translation>Referans için bitcoin: URI'siyle iliştirilmiş işlemle birlikte depolanacak bir ileti. Not: Bu mesaj Bitcoin ağı üzerinden gönderilmeyecektir.</translation> + <translation>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</translation> </message> <message> <source>Pay To:</source> - <translation>Şu adrese öde:</translation> + <translation>Pay To:</translation> </message> <message> <source>Memo:</source> - <translation>Not:</translation> + <translation>Memo:</translation> </message> </context> <context> <name>ShutdownWindow</name> <message> <source>%1 is shutting down...</source> - <translation>%1 kapanıyor...</translation> + <translation>%1 is shutting down...</translation> </message> <message> <source>Do not shut down the computer until this window disappears.</source> - <translation>Bu pencere kalkıncaya dek bilgisayarı kapatmayınız.</translation> + <translation>Do not shut down the computer until this window disappears.</translation> </message> </context> <context> <name>SignVerifyMessageDialog</name> <message> <source>Signatures - Sign / Verify a Message</source> - <translation>İmzalar - İleti İmzala / Kontrol et</translation> + <translation>Signatures - Sign / Verify a Message</translation> </message> <message> <source>&Sign Message</source> - <translation>İleti &imzala</translation> + <translation>&Sign Message</translation> </message> <message> <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source> - <translation>Adreslerinize yollanan bitcoinleri alabileceğiniz ispatlamak için adreslerinizle iletiler/anlaşmalar imzalayabilirsiniz. Oltalama saldırılarının kimliğinizi imzanızla elde etmeyi deneyebilecekleri için belirsiz ya da rastgele hiçbir şey imzalamamaya dikkat ediniz. Sadece ayrıntılı açıklaması olan ve tümüne katıldığınız ifadeleri imzalayınız.</translation> + <translation>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</translation> </message> <message> <source>The Bitcoin address to sign the message with</source> - <translation>İletinin imzalanmasında kullanılacak Bitcoin adresi</translation> + <translation>The Bitcoin address to sign the message with</translation> </message> <message> <source>Choose previously used address</source> - <translation>Önceden kullanılmış adres seç</translation> + <translation>Choose previously used address</translation> </message> <message> <source>Alt+A</source> @@ -2599,7 +2611,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Paste address from clipboard</source> - <translation>Panodaki adresi yapıştırın</translation> + <translation>Paste address from clipboard</translation> </message> <message> <source>Alt+P</source> @@ -2607,43 +2619,43 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Enter the message you want to sign here</source> - <translation>İmzalamak istediğiniz iletiyi burada giriniz</translation> + <translation>Enter the message you want to sign here</translation> </message> <message> <source>Signature</source> - <translation>İmza</translation> + <translation>Signature</translation> </message> <message> <source>Copy the current signature to the system clipboard</source> - <translation>Güncel imzayı sistem panosuna kopyala</translation> + <translation>Copy the current signature to the system clipboard</translation> </message> <message> <source>Sign the message to prove you own this Bitcoin address</source> - <translation>Bu Bitcoin adresinin sizin olduğunu ispatlamak için iletiyi imzalayın</translation> + <translation>Sign the message to prove you own this Bitcoin address</translation> </message> <message> <source>Sign &Message</source> - <translation>İmza &Mesaj</translation> + <translation>Sign &Message</translation> </message> <message> <source>Reset all sign message fields</source> - <translation>Tüm ileti alanlarını sıfırla</translation> + <translation>Reset all sign message fields</translation> </message> <message> <source>Clear &All</source> - <translation>Hepsini sil</translation> + <translation>Clear &All</translation> </message> <message> <source>&Verify Message</source> - <translation>İletiyi &kontrol et</translation> + <translation>&Verify Message</translation> </message> <message> <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source> - <translation>Alıcının adresini, iletiyi (satır sonları, boşluklar, sekmeler vs. karakterleri tam olarak kopyaladığınızdan emin olunuz) ve imzayı aşağıya giriniz. Bir ortadaki adam saldırısı tarafından kandırılmaya engel olmak için imzadan, imzalı iletinin içeriğini aşan bir anlam çıkarmamaya dikkat ediniz. Bunun sadece imzalayan tarafın adres ile alım yapabildiğini ispatladığını ve herhangi bir işlemin gönderi tarafını kanıtlayamayacağını unutmayınız!</translation> + <translation>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</translation> </message> <message> <source>The Bitcoin address the message was signed with</source> - <translation>İletinin imzalanmasında kullanılan Bitcoin adresi</translation> + <translation>The Bitcoin address the message was signed with</translation> </message> <message> <source>The signed message to verify</source> @@ -2655,35 +2667,35 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> - <translation>Belirtilen Bitcoin adresi ile imzalandığını doğrulamak için iletiyi kontrol et</translation> + <translation>Verify the message to ensure it was signed with the specified Bitcoin address</translation> </message> <message> <source>Verify &Message</source> - <translation>&İletiyi kontrol et</translation> + <translation>Verify &Message</translation> </message> <message> <source>Reset all verify message fields</source> - <translation>Tüm ileti kontrolü alanlarını sıfırla</translation> + <translation>Reset all verify message fields</translation> </message> <message> <source>Click "Sign Message" to generate signature</source> - <translation>İmzayı oluşturmak için "İletiyi İmzala"ya tıklayın</translation> + <translation>Click "Sign Message" to generate signature</translation> </message> <message> <source>The entered address is invalid.</source> - <translation>Girilen adres hatalı.</translation> + <translation>The entered address is invalid.</translation> </message> <message> <source>Please check the address and try again.</source> - <translation>Adresi kontrol ettikten sonra lütfen tekrar deneyin.</translation> + <translation>Please check the address and try again.</translation> </message> <message> <source>The entered address does not refer to a key.</source> - <translation>Girilen adres herhangi bir anahtara işaret etmemektedir.</translation> + <translation>The entered address does not refer to a key.</translation> </message> <message> <source>Wallet unlock was cancelled.</source> - <translation>Cüzdan kilidinin açılması iptal edildi.</translation> + <translation>Wallet unlock was cancelled.</translation> </message> <message> <source>No error</source> @@ -2691,35 +2703,35 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Private key for the entered address is not available.</source> - <translation>Girilen adres için özel anahtar mevcut değildir.</translation> + <translation>Private key for the entered address is not available.</translation> </message> <message> <source>Message signing failed.</source> - <translation>İleti imzalaması başarısız oldu.</translation> + <translation>Message signing failed.</translation> </message> <message> <source>Message signed.</source> - <translation>İleti imzalandı.</translation> + <translation>Message signed.</translation> </message> <message> <source>The signature could not be decoded.</source> - <translation>İmzanın kodu çözülemedi.</translation> + <translation>The signature could not be decoded.</translation> </message> <message> <source>Please check the signature and try again.</source> - <translation>İmzanızı kontrol ettikten sonra lütfen tekrar deneyin.</translation> + <translation>Please check the signature and try again.</translation> </message> <message> <source>The signature did not match the message digest.</source> - <translation>İmza iletinin özeti ile eşleşmedi.</translation> + <translation>The signature did not match the message digest.</translation> </message> <message> <source>Message verification failed.</source> - <translation>Mesaj onayı hatalı.</translation> + <translation>Message verification failed.</translation> </message> <message> <source>Message verified.</source> - <translation>Mesaj onaylandı.</translation> + <translation>Message verified.</translation> </message> </context> <context> @@ -2733,135 +2745,135 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <name>TransactionDesc</name> <message numerus="yes"> <source>Open for %n more block(s)</source> - <translation><numerusform>%n taneden daha fazla blok için açık</numerusform><numerusform>%n taneden daha fazla blok için açık</numerusform></translation> + <translation><numerusform>Open for %n more block</numerusform><numerusform>Open for %n more blocks</numerusform></translation> </message> <message> <source>Open until %1</source> - <translation>%1 değerine dek açık</translation> + <translation>Open until %1</translation> </message> <message> <source>conflicted with a transaction with %1 confirmations</source> - <translation>%1 doğrulamalı bir işlem ile çelişti</translation> + <translation>conflicted with a transaction with %1 confirmations</translation> </message> <message> <source>0/unconfirmed, %1</source> - <translation>0/doğrulanmamış, %1</translation> + <translation>0/unconfirmed, %1</translation> </message> <message> <source>in memory pool</source> - <translation>bellek alanında</translation> + <translation>in memory pool</translation> </message> <message> <source>not in memory pool</source> - <translation>bellek alanında değil</translation> + <translation>not in memory pool</translation> </message> <message> <source>abandoned</source> - <translation>terk edilmiş</translation> + <translation>abandoned</translation> </message> <message> <source>%1/unconfirmed</source> - <translation>%1/doğrulanmadı</translation> + <translation>%1/unconfirmed</translation> </message> <message> <source>%1 confirmations</source> - <translation>%1 doğrulama</translation> + <translation>%1 confirmations</translation> </message> <message> <source>Status</source> - <translation>Durum</translation> + <translation>Status</translation> </message> <message> <source>Date</source> - <translation>Tarih</translation> + <translation>Date</translation> </message> <message> <source>Source</source> - <translation>Kaynak</translation> + <translation>Source</translation> </message> <message> <source>Generated</source> - <translation>Oluşturuldu</translation> + <translation>Generated</translation> </message> <message> <source>From</source> - <translation>Gönderen</translation> + <translation>From</translation> </message> <message> <source>unknown</source> - <translation>bilinmiyor</translation> + <translation>unknown</translation> </message> <message> <source>To</source> - <translation>Alıcı</translation> + <translation>To</translation> </message> <message> <source>own address</source> - <translation>kendi adresiniz</translation> + <translation>own address</translation> </message> <message> <source>watch-only</source> - <translation>sadece-izlenen</translation> + <translation>watch-only</translation> </message> <message> <source>label</source> - <translation>etiket</translation> + <translation>label</translation> </message> <message> <source>Credit</source> - <translation>Alınan Tutar</translation> + <translation>Credit</translation> </message> <message numerus="yes"> <source>matures in %n more block(s)</source> - <translation><numerusform>%n ek blok sonrasında olgunlaşacak</numerusform><numerusform>%n ek blok sonrasında olgunlaşacak</numerusform></translation> + <translation><numerusform>matures in %n more block</numerusform><numerusform>matures in %n more blocks</numerusform></translation> </message> <message> <source>not accepted</source> - <translation>kabul edilmedi</translation> + <translation>not accepted</translation> </message> <message> <source>Debit</source> - <translation>Çekilen Tutar</translation> + <translation>Debit</translation> </message> <message> <source>Total debit</source> - <translation>Toplam çekilen tutar</translation> + <translation>Total debit</translation> </message> <message> <source>Total credit</source> - <translation>Toplam alınan tutar</translation> + <translation>Total credit</translation> </message> <message> <source>Transaction fee</source> - <translation>Gönderim ücreti</translation> + <translation>Transaction fee</translation> </message> <message> <source>Net amount</source> - <translation>Net tutar</translation> + <translation>Net amount</translation> </message> <message> <source>Message</source> - <translation>Mesaj</translation> + <translation>Message</translation> </message> <message> <source>Comment</source> - <translation>Yorum</translation> + <translation>Comment</translation> </message> <message> <source>Transaction ID</source> - <translation>İşlem ID'si</translation> + <translation>Transaction ID</translation> </message> <message> <source>Transaction total size</source> - <translation>Gönderimin toplam boyutu</translation> + <translation>Transaction total size</translation> </message> <message> <source>Transaction virtual size</source> - <translation>İşlem sanal boyutu</translation> + <translation>Transaction virtual size</translation> </message> <message> <source>Output index</source> - <translation>Çıktı indeksi</translation> + <translation>Output index</translation> </message> <message> <source> (Certificate was not verified)</source> @@ -2869,284 +2881,284 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Merchant</source> - <translation>Tüccar</translation> + <translation>Merchant</translation> </message> <message> <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source> - <translation>Oluşturulan bitcoin'lerin harcanabilmelerinden önce %1 blok beklemeleri gerekmektedir. Bu blok, oluşturduğunuzda, blok zincirine eklenmesi için ağda yayınlandı. Zincire eklenmesi başarısız olursa, durumu "kabul edilmedi" olarak değiştirilecek ve harcanamayacaktır. Bu, bazen başka bir düğüm sizden birkaç saniye önce ya da sonra blok oluşturursa meydana gelebilir.</translation> + <translation>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</translation> </message> <message> <source>Debug information</source> - <translation>Hata giderme bilgisi</translation> + <translation>Debug information</translation> </message> <message> <source>Transaction</source> - <translation>İşlem</translation> + <translation>Transaction</translation> </message> <message> <source>Inputs</source> - <translation>Girdiler</translation> + <translation>Inputs</translation> </message> <message> <source>Amount</source> - <translation>Tutar</translation> + <translation>Amount</translation> </message> <message> <source>true</source> - <translation>doğru</translation> + <translation>true</translation> </message> <message> <source>false</source> - <translation>anlış</translation> + <translation>false</translation> </message> </context> <context> <name>TransactionDescDialog</name> <message> <source>This pane shows a detailed description of the transaction</source> - <translation>Bu pano işlemin ayrıntılı açıklamasını gösterir</translation> + <translation>This pane shows a detailed description of the transaction</translation> </message> <message> <source>Details for %1</source> - <translation>%1 için ayrıntılar</translation> + <translation>Details for %1</translation> </message> </context> <context> <name>TransactionTableModel</name> <message> <source>Date</source> - <translation>Tarih</translation> + <translation>Date</translation> </message> <message> <source>Type</source> - <translation>Tip</translation> + <translation>Type</translation> </message> <message> <source>Label</source> - <translation>etiket</translation> + <translation>Label</translation> </message> <message numerus="yes"> <source>Open for %n more block(s)</source> - <translation><numerusform>%n taneden daha fazla blok için açık</numerusform><numerusform>%n taneden daha fazla blok için açık</numerusform></translation> + <translation><numerusform>Open for %n more block</numerusform><numerusform>Open for %n more blocks</numerusform></translation> </message> <message> <source>Open until %1</source> - <translation>%1 değerine dek açık</translation> + <translation>Open until %1</translation> </message> <message> <source>Unconfirmed</source> - <translation>Doğrulanmamış</translation> + <translation>Unconfirmed</translation> </message> <message> <source>Abandoned</source> - <translation>Terk edilmiş</translation> + <translation>Abandoned</translation> </message> <message> <source>Confirming (%1 of %2 recommended confirmations)</source> - <translation>Doğrulanıyor (%1 kere doğrulandı, önerilen doğrulama sayısı %2)</translation> + <translation>Confirming (%1 of %2 recommended confirmations)</translation> </message> <message> <source>Confirmed (%1 confirmations)</source> - <translation>Onaylandı (%1 onaylanan)</translation> + <translation>Confirmed (%1 confirmations)</translation> </message> <message> <source>Conflicted</source> - <translation>Uyuşmadı</translation> + <translation>Conflicted</translation> </message> <message> <source>Immature (%1 confirmations, will be available after %2)</source> - <translation>Olgunlaşmamış (%1 doğrulama, %2 doğrulama sonra kullanılabilir olacaktır)</translation> + <translation>Immature (%1 confirmations, will be available after %2)</translation> </message> <message> <source>Generated but not accepted</source> - <translation>Oluşturuldu fakat kabul edilmedi</translation> + <translation>Generated but not accepted</translation> </message> <message> <source>Received with</source> - <translation>ile alındı</translation> + <translation>Received with</translation> </message> <message> <source>Received from</source> - <translation>Alındığı kişi</translation> + <translation>Received from</translation> </message> <message> <source>Sent to</source> - <translation>Gönderildiği adres</translation> + <translation>Sent to</translation> </message> <message> <source>Payment to yourself</source> - <translation>Kendinize ödeme</translation> + <translation>Payment to yourself</translation> </message> <message> <source>Mined</source> - <translation>Kazıldı</translation> + <translation>Mined</translation> </message> <message> <source>watch-only</source> - <translation>sadece-izlenen</translation> + <translation>watch-only</translation> </message> <message> <source>(n/a)</source> - <translation>(yok)</translation> + <translation>(n/a)</translation> </message> <message> <source>(no label)</source> - <translation>(etiket yok)</translation> + <translation>(no label)</translation> </message> <message> <source>Transaction status. Hover over this field to show number of confirmations.</source> - <translation>İşlem durumu. Doğrulama sayısını görüntülemek için fare imlecini bu alanın üzerinde tutunuz.</translation> + <translation>Transaction status. Hover over this field to show number of confirmations.</translation> </message> <message> <source>Date and time that the transaction was received.</source> - <translation>İşlemin alındığı tarih ve zaman.</translation> + <translation>Date and time that the transaction was received.</translation> </message> <message> <source>Type of transaction.</source> - <translation>İşlemin türü.</translation> + <translation>Type of transaction.</translation> </message> <message> <source>Whether or not a watch-only address is involved in this transaction.</source> - <translation>Bu işleme sadece-izlenen bir adresin dahil edilip, edilmediği.</translation> + <translation>Whether or not a watch-only address is involved in this transaction.</translation> </message> <message> <source>User-defined intent/purpose of the transaction.</source> - <translation>İşlemin kullanıcı tanımlı amacı.</translation> + <translation>User-defined intent/purpose of the transaction.</translation> </message> <message> <source>Amount removed from or added to balance.</source> - <translation>Bakiyeden kaldırılan ya da bakiyeye eklenen tutar.</translation> + <translation>Amount removed from or added to balance.</translation> </message> </context> <context> <name>TransactionView</name> <message> <source>All</source> - <translation>Hepsi</translation> + <translation>All</translation> </message> <message> <source>Today</source> - <translation>Bugün</translation> + <translation>Today</translation> </message> <message> <source>This week</source> - <translation>Bu hafta</translation> + <translation>This week</translation> </message> <message> <source>This month</source> - <translation>Bu Ay</translation> + <translation>This month</translation> </message> <message> <source>Last month</source> - <translation>Son ay</translation> + <translation>Last month</translation> </message> <message> <source>This year</source> - <translation>Bu yıl</translation> + <translation>This year</translation> </message> <message> <source>Range...</source> - <translation>Tarih Aralığı</translation> + <translation>Range...</translation> </message> <message> <source>Received with</source> - <translation>ile alındı</translation> + <translation>Received with</translation> </message> <message> <source>Sent to</source> - <translation>Gönderildiği adres</translation> + <translation>Sent to</translation> </message> <message> <source>To yourself</source> - <translation>Kendinize</translation> + <translation>To yourself</translation> </message> <message> <source>Mined</source> - <translation>Kazıldı</translation> + <translation>Mined</translation> </message> <message> <source>Other</source> - <translation>Diğerleri</translation> + <translation>Other</translation> </message> <message> <source>Enter address, transaction id, or label to search</source> - <translation>Aramak için adres, gönderim numarası ya da etiket yazınız</translation> + <translation>Enter address, transaction id, or label to search</translation> </message> <message> <source>Min amount</source> - <translation>En düşük tutar</translation> + <translation>Min amount</translation> </message> <message> <source>Abandon transaction</source> - <translation>İşlemden vazgeç</translation> + <translation>Abandon transaction</translation> </message> <message> <source>Increase transaction fee</source> - <translation>İşlem ücretini artır</translation> + <translation>Increase transaction fee</translation> </message> <message> <source>Copy address</source> - <translation>Adresi kopyala</translation> + <translation>Copy address</translation> </message> <message> <source>Copy label</source> - <translation>Etiketi kopyala</translation> + <translation>Copy label</translation> </message> <message> <source>Copy amount</source> - <translation>Tutarı kopyala</translation> + <translation>Copy amount</translation> </message> <message> <source>Copy transaction ID</source> - <translation>İşlem ID'sini kopyala</translation> + <translation>Copy transaction ID</translation> </message> <message> <source>Copy raw transaction</source> - <translation>Ham işlemi kopyala</translation> + <translation>Copy raw transaction</translation> </message> <message> <source>Copy full transaction details</source> - <translation>Tüm işlem ayrıntılarını kopyala</translation> + <translation>Copy full transaction details</translation> </message> <message> <source>Edit label</source> - <translation>Etiketi düzenle</translation> + <translation>Edit label</translation> </message> <message> <source>Show transaction details</source> - <translation>İşlem ayrıntılarını göster</translation> + <translation>Show transaction details</translation> </message> <message> <source>Export Transaction History</source> - <translation>İşlem Tarihçesini Dışarı Aktar</translation> + <translation>Export Transaction History</translation> </message> <message> <source>Comma separated file (*.csv)</source> - <translation>Virgül ile ayrılmış dosya (*.csv)</translation> + <translation>Comma separated file (*.csv)</translation> </message> <message> <source>Confirmed</source> - <translation>Kabul edilen</translation> + <translation>Confirmed</translation> </message> <message> <source>Watch-only</source> - <translation>Sadece izlenen</translation> + <translation>Watch-only</translation> </message> <message> <source>Date</source> - <translation>Tarih</translation> + <translation>Date</translation> </message> <message> <source>Type</source> - <translation>Tip</translation> + <translation>Type</translation> </message> <message> <source>Label</source> - <translation>etiket</translation> + <translation>Label</translation> </message> <message> <source>Address</source> - <translation>adres</translation> + <translation>Address</translation> </message> <message> <source>ID</source> @@ -3154,41 +3166,41 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Exporting Failed</source> - <translation>Dışa Aktarma Başarısız</translation> + <translation>Exporting Failed</translation> </message> <message> <source>There was an error trying to save the transaction history to %1.</source> - <translation>İşlem tarihçesinin %1 konumuna kaydedilmeye çalışıldığı sırada bir hata meydana geldi.</translation> + <translation>There was an error trying to save the transaction history to %1.</translation> </message> <message> <source>Exporting Successful</source> - <translation>Dışarı Aktarma Başarılı</translation> + <translation>Exporting Successful</translation> </message> <message> <source>The transaction history was successfully saved to %1.</source> - <translation>İşlem tarihçesi %1 konumuna başarıyla kaydedildi.</translation> + <translation>The transaction history was successfully saved to %1.</translation> </message> <message> <source>Range:</source> - <translation>Tarih Aralığı:</translation> + <translation>Range:</translation> </message> <message> <source>to</source> - <translation>Alıcı</translation> + <translation>to</translation> </message> </context> <context> <name>UnitDisplayStatusBarControl</name> <message> <source>Unit to show amounts in. Click to select another unit.</source> - <translation>Tutarı göstermek için birim. Başka bir birim seçmek için tıklayınız.</translation> + <translation>Unit to show amounts in. Click to select another unit.</translation> </message> </context> <context> <name>WalletController</name> <message> <source>Close wallet</source> - <translation>Cüzdanı Kapat</translation> + <translation>Close wallet</translation> </message> <message> <source>Are you sure you wish to close the wallet <i>%1</i>?</source> @@ -3203,14 +3215,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <name>WalletFrame</name> <message> <source>No wallet has been loaded.</source> - <translation>Hiçbir cüzdan yüklenmedi.</translation> + <translation>No wallet has been loaded.</translation> </message> </context> <context> <name>WalletModel</name> <message> <source>Send Coins</source> - <translation>Coin gönder</translation> + <translation>Send Coins</translation> </message> <message> <source>Fee bump error</source> @@ -3218,11 +3230,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Increasing transaction fee failed</source> - <translation>İşlem ücreti artırma başarısız oldu</translation> + <translation>Increasing transaction fee failed</translation> </message> <message> <source>Do you want to increase the fee?</source> - <translation>Ücreti artırmak istiyor musunuz?</translation> + <translation>Do you want to increase the fee?</translation> </message> <message> <source>Do you want to draft a transaction with fee increase?</source> @@ -3230,15 +3242,15 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Current fee:</source> - <translation>Şimdiki ücret:</translation> + <translation>Current fee:</translation> </message> <message> <source>Increase:</source> - <translation>Artış:</translation> + <translation>Increase:</translation> </message> <message> <source>New fee:</source> - <translation>Yeni ücret:</translation> + <translation>New fee:</translation> </message> <message> <source>Confirm fee bump</source> @@ -3254,85 +3266,85 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Can't sign transaction.</source> - <translation>İşlem imzalanamıyor.</translation> + <translation>Can't sign transaction.</translation> </message> <message> <source>Could not commit transaction</source> - <translation>Alışveriş taahüt edilemedi.</translation> + <translation>Could not commit transaction</translation> </message> <message> <source>default wallet</source> - <translation>varsayılan cüzdan</translation> + <translation>default wallet</translation> </message> </context> <context> <name>WalletView</name> <message> <source>&Export</source> - <translation>&Çıkar</translation> + <translation>&Export</translation> </message> <message> <source>Export the data in the current tab to a file</source> - <translation>Mevcut sekmedeki verileri bir dosyaya aktar</translation> + <translation>Export the data in the current tab to a file</translation> </message> <message> <source>Backup Wallet</source> - <translation>Cüzdanı yedekle</translation> + <translation>Backup Wallet</translation> </message> <message> <source>Wallet Data (*.dat)</source> - <translation>Cüzdan Verileri (*.dat)</translation> + <translation>Wallet Data (*.dat)</translation> </message> <message> <source>Backup Failed</source> - <translation>Yedekleme başarısız</translation> + <translation>Backup Failed</translation> </message> <message> <source>There was an error trying to save the wallet data to %1.</source> - <translation>Cüzdan verilerinin %1 konumuna kaydedilmesi sırasında bir hata meydana geldi.</translation> + <translation>There was an error trying to save the wallet data to %1.</translation> </message> <message> <source>Backup Successful</source> - <translation>Yedekleme tamamlandı</translation> + <translation>Backup Successful</translation> </message> <message> <source>The wallet data was successfully saved to %1.</source> - <translation>Cüzdan verileri %1 konumuna başarıyla kaydedildi.</translation> + <translation>The wallet data was successfully saved to %1.</translation> </message> <message> <source>Cancel</source> - <translation>İptal</translation> + <translation>Cancel</translation> </message> </context> <context> <name>bitcoin-core</name> <message> <source>Distributed under the MIT software license, see the accompanying file %s or %s</source> - <translation>MIT yazılım lisansı altında dağıtılmıştır, beraberindeki %s ya da %s dosyasına bakınız.</translation> + <translation>Distributed under the MIT software license, see the accompanying file %s or %s</translation> </message> <message> <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> - <translation>Budama, en düşük değer olan %d MiB'den düşük olarak ayarlanmıştır. Lütfen daha yüksek bir sayı kullanınız.</translation> + <translation>Prune configured below the minimum of %d MiB. Please use a higher number.</translation> </message> <message> <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> - <translation>Budama: son cüzdan eşleşmesi budanmış verilerin ötesine gitmektedir. -reindex kullanmanız gerekmektedir (Budanmış düğüm ise tüm blok zincirini tekrar indirmeniz gerekir.)</translation> + <translation>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</translation> </message> <message> <source>Error: A fatal internal error occurred, see debug.log for details</source> - <translation>Hata: Ölümcül dahili bir hata meydana geldi, ayrıntılar için debug.log dosyasına bakınız</translation> + <translation>Error: A fatal internal error occurred, see debug.log for details</translation> </message> <message> <source>Pruning blockstore...</source> - <translation>Blockstore budanıyor...</translation> + <translation>Pruning blockstore...</translation> </message> <message> <source>Unable to start HTTP server. See debug log for details.</source> - <translation>HTTP sunucusu başlatılamadı. Ayrıntılar için debug.log dosyasına bakınız.</translation> + <translation>Unable to start HTTP server. See debug log for details.</translation> </message> <message> <source>The %s developers</source> - <translation>%s ekip</translation> + <translation>The %s developers</translation> </message> <message> <source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source> @@ -3340,7 +3352,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> - <translation>%s veri dizininde kilit elde edilemedi. %s muhtemelen hâlihazırda çalışmaktadır.</translation> + <translation>Cannot obtain a lock on data directory %s. %s is probably already running.</translation> </message> <message> <source>Cannot provide specific connections and have addrman find outgoing connections at the same.</source> @@ -3348,23 +3360,23 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> - <translation>%s dosyasının okunması sırasında bir hata meydana geldi! Tüm anahtarlar doğru bir şekilde okundu, ancak işlem verileri ya da adres defteri ögeleri hatalı veya eksik olabilir.</translation> + <translation>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</translation> </message> <message> <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source> - <translation>Lütfen bilgisayarınızın saat ve tarihinin doğru olduğunu kontrol ediniz! Saatinizde gecikme varsa %s doğru şekilde çalışamaz.</translation> + <translation>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</translation> </message> <message> <source>Please contribute if you find %s useful. Visit %s for further information about the software.</source> - <translation>%s programını faydalı buluyorsanız lütfen katkıda bulununuz. Yazılım hakkında daha fazla bilgi için %s adresini ziyaret ediniz.</translation> + <translation>Please contribute if you find %s useful. Visit %s for further information about the software.</translation> </message> <message> <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> - <translation>Blok veritabanı gelecekten gibi görünen bir blok içermektedir. Bu, bilgisayarınızın saat ve tarihinin yanlış ayarlanmış olmasından kaynaklanabilir. Blok veritabanını sadece bilgisayarınızın tarih ve saatinin doğru olduğundan eminseniz yeniden derleyin.</translation> + <translation>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</translation> </message> <message> <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> - <translation>Bu kararlı sürümden önceki bir deneme sürümüdür. - risklerini bilerek kullanma sorumluluğu sizdedir - bitcoin oluşturmak ya da ticari uygulamalar için kullanmayınız</translation> + <translation>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</translation> </message> <message> <source>This is the transaction fee you may discard if change is smaller than dust at this level</source> @@ -3376,35 +3388,35 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</source> - <translation>Veritabanını çatallama öncesi duruma geri sarmak mümkün değil. Blok zincirini tekrar indirmeniz gerekmektedir</translation> + <translation>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</translation> </message> <message> <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> - <translation>Uyarı: Ağ üyeleri aralarında tamamen anlaşmış gibi gözükmüyor! Bazı madenciler sorun yaşıyor gibi görünmektedir.</translation> + <translation>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</translation> </message> <message> <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source> - <translation>Uyarı: Ağ eşlerimizle tamamen anlaşamamışız gibi görünüyor! Güncelleme yapmanız gerekebilir ya da diğer düğümlerin güncelleme yapmaları gerekebilir.</translation> + <translation>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</translation> </message> <message> <source>%d of last 100 blocks have unexpected version</source> - <translation>son 100 bloğun %d kadarı beklenmeyen versiyona sahip</translation> + <translation>%d of last 100 blocks have unexpected version</translation> </message> <message> <source>%s corrupt, salvage failed</source> - <translation>%s bozuk, geri kazanım başarısız oldu</translation> + <translation>%s corrupt, salvage failed</translation> </message> <message> <source>-maxmempool must be at least %d MB</source> - <translation>-maxmempool en az %d MB olmalıdır</translation> + <translation>-maxmempool must be at least %d MB</translation> </message> <message> <source>Cannot resolve -%s address: '%s'</source> - <translation>Çözümlenemedi - %s adres: '%s'</translation> + <translation>Cannot resolve -%s address: '%s'</translation> </message> <message> <source>Change index out of range</source> - <translation>Aralık dışında değişiklik indeksi</translation> + <translation>Change index out of range</translation> </message> <message> <source>Config setting for %s only applied on %s network when in [%s] section.</source> @@ -3416,7 +3428,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Corrupted block database detected</source> - <translation>Bozuk blok veritabanı tespit edildi</translation> + <translation>Corrupted block database detected</translation> </message> <message> <source>Could not find asmap file %s</source> @@ -3428,60 +3440,59 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Do you want to rebuild the block database now?</source> - <translation>Blok veritabanını şimdi yeniden inşa etmek istiyor musunuz?</translation> + <translation>Do you want to rebuild the block database now?</translation> </message> <message> <source>Error initializing block database</source> - <translation>Blok veritabanını başlatılırken bir hata meydana geldi</translation> + <translation>Error initializing block database</translation> </message> <message> <source>Error initializing wallet database environment %s!</source> - <translation>%s cüzdan veritabanı ortamının başlatılmasında hata meydana geldi!</translation> + <translation>Error initializing wallet database environment %s!</translation> </message> <message> <source>Error loading %s</source> - <translation>%s unsurunun yüklenmesinde hata oluştu</translation> + <translation>Error loading %s</translation> </message> <message> <source>Error loading %s: Private keys can only be disabled during creation</source> - <translation>%s yüklenirken hata oluştu: Özel anahtarlar yalnızca oluşturma sırasında devre dışı bırakılabilir - </translation> + <translation>Error loading %s: Private keys can only be disabled during creation</translation> </message> <message> <source>Error loading %s: Wallet corrupted</source> - <translation>%s unsurunun yüklenmesinde hata oluştu: bozuk cüzdan</translation> + <translation>Error loading %s: Wallet corrupted</translation> </message> <message> <source>Error loading %s: Wallet requires newer version of %s</source> - <translation>%s unsurunun yüklenmesinde hata oluştu: cüzdan %s programının yeni bir sürümüne ihtiyaç duyuyor</translation> + <translation>Error loading %s: Wallet requires newer version of %s</translation> </message> <message> <source>Error loading block database</source> - <translation>Blok veritabanının yüklenmesinde hata</translation> + <translation>Error loading block database</translation> </message> <message> <source>Error opening block database</source> - <translation>Blok veritabanının açılışı sırasında hata</translation> + <translation>Error opening block database</translation> </message> <message> <source>Failed to listen on any port. Use -listen=0 if you want this.</source> - <translation>Herhangi bir portun dinlenmesi başarısız oldu. Bunu istiyorsanız -listen=0 seçeneğini kullanınız.</translation> + <translation>Failed to listen on any port. Use -listen=0 if you want this.</translation> </message> <message> <source>Failed to rescan the wallet during initialization</source> - <translation>Başlatma sırasında cüzdanı yeniden tarama işlemi başarısız oldu</translation> + <translation>Failed to rescan the wallet during initialization</translation> </message> <message> <source>Importing...</source> - <translation>İçe aktarılıyor...</translation> + <translation>Importing...</translation> </message> <message> <source>Incorrect or no genesis block found. Wrong datadir for network?</source> - <translation>Yanlış ya da bulunamamış doğuş bloğu. Ağ için yanlış veri klasörü mü?</translation> + <translation>Incorrect or no genesis block found. Wrong datadir for network?</translation> </message> <message> <source>Initialization sanity check failed. %s is shutting down.</source> - <translation>Başlatma sınaması başarısız oldu. %s kapatılıyor.</translation> + <translation>Initialization sanity check failed. %s is shutting down.</translation> </message> <message> <source>Invalid P2P permission: '%s'</source> @@ -3489,15 +3500,15 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Invalid amount for -%s=<amount>: '%s'</source> - <translation>-%s=<tutar> için geçersiz tutar: '%s'</translation> + <translation>Invalid amount for -%s=<amount>: '%s'</translation> </message> <message> <source>Invalid amount for -discardfee=<amount>: '%s'</source> - <translation>Geçersiz miktarda -discardfee=<amount>:'%s'</translation> + <translation>Invalid amount for -discardfee=<amount>: '%s'</translation> </message> <message> <source>Invalid amount for -fallbackfee=<amount>: '%s'</source> - <translation>-fallbackfee=<tutar> için geçersiz tutar: '%s'</translation> + <translation>Invalid amount for -fallbackfee=<amount>: '%s'</translation> </message> <message> <source>Specified blocks directory "%s" does not exist.</source> @@ -3505,7 +3516,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Unknown address type '%s'</source> - <translation>Bilinmeyen adres türü '%s'</translation> + <translation>Unknown address type '%s'</translation> </message> <message> <source>Unknown change type '%s'</source> @@ -3513,11 +3524,11 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Upgrading txindex database</source> - <translation>txindex veritabanı yükseltiliyor</translation> + <translation>Upgrading txindex database</translation> </message> <message> <source>Loading P2P addresses...</source> - <translation>P2P adresleri yükleniyor...</translation> + <translation>Loading P2P addresses...</translation> </message> <message> <source>Error: Disk space is too low!</source> @@ -3525,87 +3536,87 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Loading banlist...</source> - <translation>Ban listesi yükleniyor...</translation> + <translation>Loading banlist...</translation> </message> <message> <source>Not enough file descriptors available.</source> - <translation>Kafi derecede dosya tanımlayıcıları mevcut değil.</translation> + <translation>Not enough file descriptors available.</translation> </message> <message> <source>Prune cannot be configured with a negative value.</source> - <translation>Budama negatif bir değerle yapılandırılamaz.</translation> + <translation>Prune cannot be configured with a negative value.</translation> </message> <message> <source>Prune mode is incompatible with -txindex.</source> - <translation>Budama kipi -txindex ile uyumsuzdur.</translation> + <translation>Prune mode is incompatible with -txindex.</translation> </message> <message> <source>Replaying blocks...</source> - <translation>Bloklar tekrar işleniyor...</translation> + <translation>Replaying blocks...</translation> </message> <message> <source>Rewinding blocks...</source> - <translation>Bloklar geri sarılıyor...</translation> + <translation>Rewinding blocks...</translation> </message> <message> <source>The source code is available from %s.</source> - <translation>Kaynak kod şuradan elde edilebilir: %s.</translation> + <translation>The source code is available from %s.</translation> </message> <message> <source>Transaction fee and change calculation failed</source> - <translation>İşlem ücreti ve para üstü hesaplamasında hata meydana geldi.</translation> + <translation>Transaction fee and change calculation failed</translation> </message> <message> <source>Unable to bind to %s on this computer. %s is probably already running.</source> - <translation>Bu bilgisayarda %s unsuruna bağlanılamadı. %s muhtemelen hâlihazırda çalışmaktadır.</translation> + <translation>Unable to bind to %s on this computer. %s is probably already running.</translation> </message> <message> <source>Unable to generate keys</source> - <translation>Anahtar üretilemiyor</translation> + <translation>Unable to generate keys</translation> </message> <message> <source>Unsupported logging category %s=%s.</source> - <translation>Desteklenmeyen günlük kategorisi %s=%s.</translation> + <translation>Unsupported logging category %s=%s.</translation> </message> <message> <source>Upgrading UTXO database</source> - <translation>UTXO veritabanı yükseltiliyor</translation> + <translation>Upgrading UTXO database</translation> </message> <message> <source>User Agent comment (%s) contains unsafe characters.</source> - <translation>Kullanıcı Aracı açıklaması (%s) güvensiz karakterler içermektedir.</translation> + <translation>User Agent comment (%s) contains unsafe characters.</translation> </message> <message> <source>Verifying blocks...</source> - <translation>Bloklar Onaylanıyor...</translation> + <translation>Verifying blocks...</translation> </message> <message> <source>Wallet needed to be rewritten: restart %s to complete</source> - <translation>%s tamamlanması için cüzdanın yeniden başlatılması gerekiyor</translation> + <translation>Wallet needed to be rewritten: restart %s to complete</translation> </message> <message> <source>Error: Listening for incoming connections failed (listen returned error %s)</source> - <translation>Hata: İçeri gelen bağlantıların dinlenmesi başarısız oldu (dinleme %s hatasını verdi)</translation> + <translation>Error: Listening for incoming connections failed (listen returned error %s)</translation> </message> <message> <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> - <translation>-maxtxfee=<tutar> için geçersiz tutar: '%s' (Sıkışmış işlemleri önlemek için en az %s değerinde en düşük aktarım ücretine eşit olmalıdır)</translation> + <translation>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</translation> </message> <message> <source>The transaction amount is too small to send after the fee has been deducted</source> - <translation>Bu işlem, tutar düşüldükten sonra göndermek için çok düşük</translation> + <translation>The transaction amount is too small to send after the fee has been deducted</translation> </message> <message> <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> - <translation>Budama olmayan kipe dönmek için veritabanını -reindex ile tekrar derlemeniz gerekir. Bu, tüm blok zincirini tekrar indirecektir</translation> + <translation>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</translation> </message> <message> <source>Error reading from database, shutting down.</source> - <translation>Veritabanı okuma hatası, kapatıldı.</translation> + <translation>Error reading from database, shutting down.</translation> </message> <message> <source>Error upgrading chainstate database</source> - <translation>Zincirdurumu veritabanı yükseltme hatası</translation> + <translation>Error upgrading chainstate database</translation> </message> <message> <source>Error: Disk space is low for %s</source> @@ -3613,23 +3624,23 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Invalid -onion address or hostname: '%s'</source> - <translation>Hatalı -onion adresi ya da host adı: '%s'</translation> + <translation>Invalid -onion address or hostname: '%s'</translation> </message> <message> <source>Invalid -proxy address or hostname: '%s'</source> - <translation>Geçersiz -proxy adresi veya ana makine adı: '%s'</translation> + <translation>Invalid -proxy address or hostname: '%s'</translation> </message> <message> <source>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</source> - <translation>-paytxfee=<tutar>:'%s' unsurunda geçersiz tutar (asgari %s olması lazımdır)</translation> + <translation>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</translation> </message> <message> <source>Invalid netmask specified in -whitelist: '%s'</source> - <translation>-whitelist: '%s' unsurunda geçersiz bir ağ maskesi belirtildi</translation> + <translation>Invalid netmask specified in -whitelist: '%s'</translation> </message> <message> <source>Need to specify a port with -whitebind: '%s'</source> - <translation>-whitebind: '%s' ile bir port belirtilmesi lazımdır</translation> + <translation>Need to specify a port with -whitebind: '%s'</translation> </message> <message> <source>Prune mode is incompatible with -blockfilterindex.</source> @@ -3637,7 +3648,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> - <translation>Sistem sınırlamaları sebebiyle -maxconnections %d değerinden %d değerine düşürülmüştür.</translation> + <translation>Reducing -maxconnections from %d to %d, because of system limitations.</translation> </message> <message> <source>Section [%s] is not recognized.</source> @@ -3645,19 +3656,19 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Signing transaction failed</source> - <translation>İşlemin imzalanması başarısız oldu</translation> + <translation>Signing transaction failed</translation> </message> <message> <source>Specified -walletdir "%s" does not exist</source> - <translation>Belirtilen -walletdir "%s" mevcut değil</translation> + <translation>Specified -walletdir "%s" does not exist</translation> </message> <message> <source>Specified -walletdir "%s" is a relative path</source> - <translation>Belirtilen -walletdir "%s" göreceli bir yoldur</translation> + <translation>Specified -walletdir "%s" is a relative path</translation> </message> <message> <source>Specified -walletdir "%s" is not a directory</source> - <translation>Belirtilen -walletdir "%s" bir dizin değildir</translation> + <translation>Specified -walletdir "%s" is not a directory</translation> </message> <message> <source>The specified config file %s does not exist @@ -3667,23 +3678,23 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>The transaction amount is too small to pay the fee</source> - <translation>İşlemdeki bitcoin tutarı ücreti ödemek için çok düşük</translation> + <translation>The transaction amount is too small to pay the fee</translation> </message> <message> <source>This is experimental software.</source> - <translation>Bu deneysel bir yazılımdır.</translation> + <translation>This is experimental software.</translation> </message> <message> <source>Transaction amount too small</source> - <translation>İşlem tutarı çok düşük</translation> + <translation>Transaction amount too small</translation> </message> <message> <source>Transaction too large</source> - <translation>İşlem çok büyük</translation> + <translation>Transaction too large</translation> </message> <message> <source>Unable to bind to %s on this computer (bind returned error %s)</source> - <translation>Bu bilgisayarda %s ögesine bağlanılamadı (bağlanma %s hatasını verdi)</translation> + <translation>Unable to bind to %s on this computer (bind returned error %s)</translation> </message> <message> <source>Unable to create the PID file '%s': %s</source> @@ -3691,7 +3702,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Unable to generate initial keys</source> - <translation>Başlangıç anahtarları üretilemiyor</translation> + <translation>Unable to generate initial keys</translation> </message> <message> <source>Unknown -blockfilterindex value %s.</source> @@ -3699,75 +3710,75 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Verifying wallet(s)...</source> - <translation>Cüzdan(lar) onaylanıyor...</translation> + <translation>Verifying wallet(s)...</translation> </message> <message> <source>Warning: unknown new rules activated (versionbit %i)</source> - <translation>Uyarı: bilinmeyen yeni kurallar etkinleştirilmiştir (versionbit %i)</translation> + <translation>Warning: unknown new rules activated (versionbit %i)</translation> </message> <message> <source>Zapping all transactions from wallet...</source> - <translation>Cüzdandaki tüm işlemler kaldırılıyor...</translation> + <translation>Zapping all transactions from wallet...</translation> </message> <message> <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> - <translation>-maxtxfee çok yüksek bir değere ayarlanmış! Bu denli yüksek ücretler tek bir işlemde ödenebilir.</translation> + <translation>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</translation> </message> <message> <source>This is the transaction fee you may pay when fee estimates are not available.</source> - <translation>İşlem ücret tahminleri mevcut olmadığında ödeyebileceğiniz işlem ücreti budur.</translation> + <translation>This is the transaction fee you may pay when fee estimates are not available.</translation> </message> <message> <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> - <translation>Ağ sürümü zincirinin toplam boyutu (%i) en yüksek boyutu geçmektedir (%i). Kullanıcı aracı açıklamasının sayısı veya boyutunu azaltınız.</translation> + <translation>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</translation> </message> <message> <source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source> - <translation>Uyarı: wallet.dat bozuk, veriler geri kazanıldı! Özgün %s, %s olarak %s klasörüne kaydedildi; bakiyeniz ya da işlemleriniz yanlışsa bir yedeklemeden tekrar yüklemeniz gerekir.</translation> + <translation>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</translation> </message> <message> <source>%s is set very high!</source> - <translation>Ayarlanan %s çok yüksek!</translation> + <translation>%s is set very high!</translation> </message> <message> <source>Error loading wallet %s. Duplicate -wallet filename specified.</source> - <translation>%s cüzdanı yüklenirken hata oluştu. Belirtilen -wallet dosya adında başka bir kopya daha var.</translation> + <translation>Error loading wallet %s. Duplicate -wallet filename specified.</translation> </message> <message> <source>Starting network threads...</source> - <translation>Bağlantı konuları başlıyor</translation> + <translation>Starting network threads...</translation> </message> <message> <source>The wallet will avoid paying less than the minimum relay fee.</source> - <translation>Cüzdan minimum değişim ücretinden daha düşük olan ödemeyi önleyecektir</translation> + <translation>The wallet will avoid paying less than the minimum relay fee.</translation> </message> <message> <source>This is the minimum transaction fee you pay on every transaction.</source> - <translation>Her işlem için minimum işlem ücretiniz budur</translation> + <translation>This is the minimum transaction fee you pay on every transaction.</translation> </message> <message> <source>This is the transaction fee you will pay if you send a transaction.</source> - <translation>Bir işlem göndermeniz durumunda işlem ücretiniz budur</translation> + <translation>This is the transaction fee you will pay if you send a transaction.</translation> </message> <message> <source>Transaction amounts must not be negative</source> - <translation>İşlem miktarı negatif olmamalı</translation> + <translation>Transaction amounts must not be negative</translation> </message> <message> <source>Transaction has too long of a mempool chain</source> - <translation>İşlem çok uzun bir bellek havuzu zincirine sahip</translation> + <translation>Transaction has too long of a mempool chain</translation> </message> <message> <source>Transaction must have at least one recipient</source> - <translation>İşlemin en az bir alıcıya sahip olmalı</translation> + <translation>Transaction must have at least one recipient</translation> </message> <message> <source>Unknown network specified in -onlynet: '%s'</source> - <translation>Belirsiz ağ belirtildi -onlynet: '%s'</translation> + <translation>Unknown network specified in -onlynet: '%s'</translation> </message> <message> <source>Insufficient funds</source> - <translation>Yetersiz Bakiye</translation> + <translation>Insufficient funds</translation> </message> <message> <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> @@ -3775,7 +3786,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> - <translation>İşlem ücreti hesaplama başarısız. Fallbackfee özelliği devre dışı. Lütfen bir kaç blok için bekleyiniz yada -fallbackfee özelliğini aktif ediniz.</translation> + <translation>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</translation> </message> <message> <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source> @@ -3783,27 +3794,27 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Cannot write to data directory '%s'; check permissions.</source> - <translation>Veriler klasöre yazılamıyor '%s'; yetkilendirmeyi kontrol edin.</translation> + <translation>Cannot write to data directory '%s'; check permissions.</translation> </message> <message> <source>Loading block index...</source> - <translation>Blok indeksi yükleniyor</translation> + <translation>Loading block index...</translation> </message> <message> <source>Loading wallet...</source> - <translation>Cüzdan Bekleniyor...</translation> + <translation>Loading wallet...</translation> </message> <message> <source>Cannot downgrade wallet</source> - <translation>Cüzdan indirgenememektedir</translation> + <translation>Cannot downgrade wallet</translation> </message> <message> <source>Rescanning...</source> - <translation>Tekrar taranıyor...</translation> + <translation>Rescanning...</translation> </message> <message> <source>Done loading</source> - <translation>Yükleme tamamlandı</translation> + <translation>Done loading</translation> </message> </context> </TS>
\ No newline at end of file diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/bitcoin_he.ts index 78570e8bbf..56c37a74dd 100644 --- a/src/qt/locale/bitcoin_he.ts +++ b/src/qt/locale/bitcoin_he.ts @@ -141,7 +141,7 @@ </message> <message> <source>Encrypt wallet</source> - <translation>הצפנת הארנק</translation> + <translation>הצפן ארנק</translation> </message> <message> <source>This operation needs your wallet passphrase to unlock the wallet.</source> @@ -180,6 +180,31 @@ <translation>הארנק מוצפן</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>הקש סיסמה חדשה לארנק. +השתמש בסיסמה הכוללת עשרה או יותר תווים אקראים, או שמונה או יותר מילים.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>הקש את הסיסמא הישנה והחדשה לארנק.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>זכור שהצפנת הארנק לא יכולה להגן עליך לגמרי מגניבת המטבעות שלך על ידי תוכנה זדונית שנמצאת על המחשב שלך.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>הארנק המיועד להצפנה</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>הארנק שלך עומד להיות מוצפן/</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>הארנק שלך מוצפן כעת/</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>חשוב! כל גיבוי קודם שעשית לארנק שלך יש להחליף עם קובץ הארנק המוצפן שזה עתה נוצר. מסיבות אבטחה, גיבויים קודמים של קובץ הארנק הלא-מוצפן יהפכו לחסרי שימוש ברגע שתתחיל להשתמש בארנק החדש המוצפן.</translation> </message> @@ -302,6 +327,14 @@ <translation>פתיחת &כתובת משאב…</translation> </message> <message> + <source>Create Wallet...</source> + <translation>צור ארנק...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>צור ארנק חדש</translation> + </message> + <message> <source>Wallet:</source> <translation>ארנק:</translation> </message> @@ -431,7 +464,7 @@ </message> <message> <source>Transactions after this will not yet be visible.</source> - <translation>ההעברות שבוצעו לאחר העברה זו לא יופיעו.</translation> + <translation>עסקאות שבוצעו לאחר העברה זו לא יופיעו.</translation> </message> <message> <source>Error</source> @@ -450,6 +483,14 @@ <translation>עדכני</translation> </message> <message> + <source>Node window</source> + <translation>חלון צומת</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>פתיחת ניפוי באגים בצומת וגם מסוף בקרה לאבחון</translation> + </message> + <message> <source>&Sending addresses</source> <translation>&כתובות למשלוח</translation> </message> @@ -458,6 +499,10 @@ <translation>&כתובות לקבלה</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>פתיחת ביטקוין: כתובת משאב</translation> + </message> + <message> <source>Open Wallet</source> <translation>פתיחת ארנק</translation> </message> @@ -670,7 +715,7 @@ </message> <message> <source>Copy transaction ID</source> - <translation>העתקת מזהה ההעברה</translation> + <translation>העתקת מזהה העסקה</translation> </message> <message> <source>Lock unspent</source> @@ -739,10 +784,46 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Create wallet failed</source> + <translation>יצירת הארנק נכשלה</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>אזהרה לגבי יצירת הארנק</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>צור ארנק.</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>שם הארנק</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>הצפן את הארנק. הארנק יהיה מוצפן באמצעות סיסמא לבחירתך.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>הצפנת ארנק</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>השבתת מפתחות פרטיים</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>צור ארנק ריק</translation> + </message> + <message> + <source>Create</source> + <translation>צור</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -954,6 +1035,10 @@ <translation>הסתר</translation> </message> <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>לא ידוע. סינכרון כותרות (%1, %2%)...</translation> </message> @@ -961,6 +1046,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>פתיחת כתובת משאב ביטקוין</translation> + </message> + <message> <source>URI:</source> <translation>כתובת משאב:</translation> </message> @@ -968,6 +1057,14 @@ <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet failed</source> + <translation>פתיחת ארנק נכשלה</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>אזהרת פתיחת ארנק</translation> + </message> + <message> <source>default wallet</source> <translation>ארנק בררת מחדל</translation> </message> @@ -1004,7 +1101,7 @@ </message> <message> <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> - <translation>כתובת ה־IP של המתווך (לדוגמה IPv4: 127.0.0.1 / IPv6: ::1)</translation> + <translation>כתובת ה־IP של הפרוקסי (לדוגמה IPv4: 127.0.0.1 / IPv6: ::1)</translation> </message> <message> <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> @@ -1506,6 +1603,10 @@ <translation>שגיאה בקידוד ה URI לברקוד.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>תמיכה בקוד QR לא זמינה.</translation> + </message> + <message> <source>Save QR Code</source> <translation>שמירת קוד QR</translation> </message> @@ -1645,10 +1746,18 @@ <translation>בלוקים מסונכרנים</translation> </message> <message> + <source>Mapped AS</source> + <translation>מופה בתור</translation> + </message> + <message> <source>User Agent</source> <translation>סוכן משתמש</translation> </message> <message> + <source>Node window</source> + <translation>חלון צומת</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>פתחו את לוג ניפוי השגיאות ה%1 מתיקיית הנתונים הנוכחית. עבור קבצי לוג גדולים ייתכן זמן המתנה של מספר שניות.</translation> </message> @@ -1798,7 +1907,7 @@ </message> <message> <source>(node id: %1)</source> - <translation>(node id: %1)</translation> + <translation>(מזהה צומת: %1)</translation> </message> <message> <source>via %1</source> @@ -1860,6 +1969,10 @@ <translation>סכום כרשות לבקשה. ניתן להשאיר זאת ריק כדי לא לבקש סכום מסוים.</translation> </message> <message> + <source>&Create new receiving address</source> + <translation>&יצירת כתובת קבלה חדשה</translation> + </message> + <message> <source>Clear all fields of the form.</source> <translation>ניקוי של כל השדות בטופס.</translation> </message> @@ -2109,6 +2222,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>אבק:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>הסתרת הגדרות עמלת עסקה</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>כאשר יש פחות נפח עסקאות מאשר מקום בבלוק, כורים וכן צמתות מקשרות יכולות להכתיב עמלות מינימום. התשלום של עמלת מינימום הנו תקין, אך יש לקחת בחשבון שהדבר יכול לגרום לעסקה שלא תאושר ברגע שיש יותר ביקוש לעסקאות ביטקוין מאשר הרשת יכולה לעבד.</translation> </message> @@ -2177,10 +2294,30 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>%1 (%2 בלוקים)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>יצ&ירת לא חתום</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>יוצר עסקת ביטקוין חתומה חלקית (PSBT) לשימוש עם ארנק %1 לא מחובר למשל, או עם PSBT ארנק חומרה תואם.</translation> + </message> + <message> + <source> from wallet '%1'</source> + <translation>מתוך ארנק '%1'</translation> + </message> + <message> + <source>%1 to '%2'</source> + <translation>%1 אל '%2'</translation> + </message> + <message> <source>%1 to %2</source> <translation>%1 ל %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>האם ברצונך לשמור עסקה זו כטיוטה?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>לשלוח?</translation> </message> @@ -2213,6 +2350,22 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>אימות שליחת מטבעות</translation> </message> <message> + <source>Copy PSBT to clipboard</source> + <translation>העתקת PSBT אל לוח הגזירים</translation> + </message> + <message> + <source>Send</source> + <translation>שלח</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT הועתקה</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>יתרת צפייה-בלבד</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>כתובת הנמען שגויה. נא לבדוק שוב.</translation> </message> @@ -2434,6 +2587,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>כתובת הביטקוין שאתה נחתמה ההודעה</translation> </message> <message> + <source>The signed message to verify</source> + <translation>ההודעה החתומה לאימות</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>ניתן לאמת את ההודעה כדי להבטיח שהיא נחתמה עם כתובת הביטקוין הנתונה</translation> </message> @@ -2466,6 +2623,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>שחרור הארנק בוטל.</translation> </message> <message> + <source>No error</source> + <translation>אין שגיאה</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>המפתח הפרטי לכתובת שהוכנסה אינו זמין.</translation> </message> @@ -2640,12 +2801,16 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>מפתח פלט</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(האישור לא אומת)</translation> + </message> + <message> <source>Merchant</source> <translation>סוחר</translation> </message> <message> <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source> - <translation>מטבעות מופקים חייבים להבשיל במשך %1 בלוקים לפני שניתן לבזבזם. כשהפקתם בלוק זה, הבלוק שודר לרשת לצורך הוספה לבלוקצ'יין. אם הבלוק לא יתווסף לבלוקצ'יין, מצב הבלוק ישונה ל "לא התקבל" ולא יהיה ניתן לבזבזו. מצב זה עלול לקרות כאשר שרת ביטקוין אחר מפיק בלוק בהפרש של כמה שניות משלכם.</translation> + <translation>מטבעות מופקים חייבים להבשיל במשך %1 בלוקים לפני שניתן לבזבזם. כשהפקתם בלוק זה, הבלוק שודר לרשת לצורך הוספה לבלוקצ'יין. אם הבלוק לא יתווסף לבלוקצ'יין, מצב הבלוק ישונה ל"לא התקבל" ולא יהיה ניתן לבזבזו. מצב זה עלול לקרות כאשר צומת אחרת מפיקה בלוק בהפרש של כמה שניות משלכם.</translation> </message> <message> <source>Debug information</source> @@ -2963,6 +3128,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>סגירת ארנק</translation> </message> <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>האם את/ה בטוח/ה שברצונך לסגור את הארנק <i>%1</i>?</translation> + </message> + <message> <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> <translation>סגירת הארנק למשך זמן רב מדי יכול לגרור את הצורך לסינכרון מחדש של כל השרשרת אם אופצית הגיזום אקטיבית.</translation> </message> @@ -2990,7 +3159,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Do you want to increase the fee?</source> - <translation>להגדיל את העמלה?</translation> + <translation>האם ברצונך להגדיל את העמלה?</translation> </message> <message> <source>Current fee:</source> @@ -3009,6 +3178,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>אישור הקפצת עמלה</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>לא ניתן לשמור את העסקה כטיוטה.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT הועתקה</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>אי אפשר לחתום על ההעברה.</translation> </message> @@ -3231,6 +3408,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>איתחול של תהליך בדיקות השפיות נכשל. %s בתהליך סגירה.</translation> </message> <message> + <source>Invalid P2P permission: '%s'</source> + <translation>הרשאת P2P שגויה: '%s'</translation> + </message> + <message> <source>Invalid amount for -%s=<amount>: '%s'</source> <translation>סכום שגוי עבור -%s=<amount>: '%s'</translation> </message> @@ -3247,6 +3428,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>התיקיה שהוגדרה "%s" לא קיימת.</translation> </message> <message> + <source>Unknown address type '%s'</source> + <translation>כתובת לא ידועה מסוג "%s"</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>סוג שינוי לא ידוע: "%s"</translation> + </message> + <message> <source>Upgrading txindex database</source> <translation>שדרוג מאגר נתוני txindex </translation> </message> @@ -3368,6 +3557,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>עליך לציין פתחה עם -whitebind: '%s'</translation> </message> <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>מצב מצומצם לא ניתן לשימוש עם blockfilterindex</translation> + </message> + <message> <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> <translation>הורדת -maxconnections מ %d ל %d, עקב מגבלות מערכת.</translation> </message> diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/bitcoin_hi.ts index bf67fd01f5..841d2ca4dd 100644 --- a/src/qt/locale/bitcoin_hi.ts +++ b/src/qt/locale/bitcoin_hi.ts @@ -3,11 +3,11 @@ <name>AddressBookPage</name> <message> <source>Right-click to edit address or label</source> - <translation>पते या लेबल को संपादित करने के लिए दाहिना-क्लिक करें</translation> + <translation>एड्रेस या लेबल को बदलने के लिए राइट-क्लिक करें </translation> </message> <message> <source>Create a new address</source> - <translation>एक नया पता बनाएं</translation> + <translation>नया एड्रेस बनाएं</translation> </message> <message> <source>&New</source> @@ -15,7 +15,7 @@ </message> <message> <source>Copy the currently selected address to the system clipboard</source> - <translation>चुनिन्दा पते को सिस्टम क्लिपबोर्ड पर कापी करे !</translation> + <translation>चुने हुए एड्रेस को सिस्टम क्लिपबोर्ड पर कॉपी करें</translation> </message> <message> <source>&Copy</source> @@ -23,15 +23,15 @@ </message> <message> <source>C&lose</source> - <translation>सी&लूज़</translation> + <translation>&बंद करें</translation> </message> <message> <source>Delete the currently selected address from the list</source> - <translation>सूची से वर्तमान में चयनित पता हटाएं</translation> + <translation>चुने हुए एड्रेस को सूची से हटाएं</translation> </message> <message> <source>Enter address or label to search</source> - <translation>ढूँदने के लिए कृपा करके पता या लेबल टाइप करे !</translation> + <translation>ढूंढने के लिए एड्रेस या लेबल दर्ज करें</translation> </message> <message> <source>Export the data in the current tab to a file</source> @@ -43,47 +43,55 @@ </message> <message> <source>&Delete</source> - <translation>&मिटाए !!</translation> + <translation>&मिटाए</translation> </message> <message> <source>Choose the address to send coins to</source> - <translation>सिक्कों को भेजने के लिए पता चुनें</translation> + <translation>कॉइन भेजने के लिए एड्रेस चुनें</translation> </message> <message> <source>Choose the address to receive coins with</source> - <translation>सिक्कों को प्राप्त करने के लिए पता चुनें</translation> + <translation>कॉइन प्राप्त करने के लिए एड्रेस चुनें </translation> + </message> + <message> + <source>C&hoose</source> + <translation>&चुनें</translation> </message> <message> <source>Sending addresses</source> - <translation>सभी पते भेज रहा है</translation> + <translation>एड्रेस भेजे जा रहें हैं</translation> </message> <message> <source>Receiving addresses</source> - <translation>पतों को प्राप्त कर रहा है</translation> + <translation>एड्रेस प्राप्त किए जा रहें हैं</translation> </message> <message> <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> - <translation>ये भुगतान भेजने के लिए ये आपके बिटकॉइन पते हैं। हमेशा सिक्के भेजने से पहले राशि और प्राप्तकर्ता पते की जांच करें।</translation> + <translation>भुगतान करने के लिए ये आपके बिटकॉइन एड्रेस हैं। कॉइन भेजने से पहले राशि और गंतव्य एड्रेस की हमेशा जाँच करें </translation> + </message> + <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>भुगतान प्राप्त करने के लिए ये आपके बिटकॉइन एड्रेस हैं। नया एड्रेस बनाने के लिए रिसीव टैब में 'नया एड्रेस बनाएं' बटन का प्रयोग करें</translation> </message> <message> <source>&Copy Address</source> - <translation>&पता कॉपी करें </translation> + <translation>&एड्रेस कॉपी करें</translation> </message> <message> <source>Copy &Label</source> - <translation>प्रतिलिप करे और चिन्हित करें</translation> + <translation>कॉपी &लेबल </translation> </message> <message> <source>&Edit</source> - <translation>&संशोधित करें </translation> + <translation>&बदलाव करें</translation> </message> <message> <source>Export Address List</source> - <translation>निर्यात पता सूची</translation> + <translation>एड्रेस की सूची निर्यात करें</translation> </message> <message> <source>Comma separated file (*.csv)</source> - <translation>कोमा द्वारा अलग की गई फ़ाइल (* .csv)</translation> + <translation>कौमा सेपरेटेड फाइल (* .csv)</translation> </message> <message> <source>Exporting Failed</source> @@ -91,22 +99,22 @@ </message> <message> <source>There was an error trying to save the address list to %1. Please try again.</source> - <translation>पता सूची को %1 में सहेजने का प्रयास करने में त्रुटि हुई। कृपया पुन: प्रयास करें।</translation> + <translation>एड्रेस की सूची को %1 में सहेजने का प्रयास करने में त्रुटि हुई। कृपया पुन: प्रयास करें।</translation> </message> </context> <context> <name>AddressTableModel</name> <message> <source>Label</source> - <translation>परचा</translation> + <translation>लेबल</translation> </message> <message> <source>Address</source> - <translation>पता</translation> + <translation>एड्रेस</translation> </message> <message> <source>(no label)</source> - <translation>(कोई परचा नहीं )</translation> + <translation>(लेबल नहीं है)</translation> </message> </context> <context> @@ -117,15 +125,19 @@ </message> <message> <source>Enter passphrase</source> - <translation>पहचान शब्द/अक्षर डालिए !</translation> + <translation>पासफ्रेज़ दर्ज करें</translation> </message> <message> <source>New passphrase</source> - <translation>नया पहचान शब्द/अक्षर डालिए !</translation> + <translation>नया पासफ्रेज़</translation> </message> <message> <source>Repeat new passphrase</source> - <translation>दोबारा नया पहचान शब्द/अक्षर डालिए !</translation> + <translation>नया पासफ्रेज़ दोबारा दर्ज करें </translation> + </message> + <message> + <source>Show passphrase</source> + <translation>पासफ्रेज़ उजागर करे</translation> </message> <message> <source>Encrypt wallet</source> @@ -168,26 +180,86 @@ <translation>वॉलेट को एन्क्रिप्ट किया गया है</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>वॉलेट में नया सुरक्षा संवाद दर्ज करें | कृपया दस या उससे अधिक, या फिर आठ या उससे अधिक अव्यवस्थित अंको से ही अपना सुरक्षा संवाद बनाएं ।</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>वॉलेट में पुराना एवं नया सुरक्षा संवाद दर्ज करें ।</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>याद रखें कि अपने बटुए (वॉलेट) एन्क्रिप्ट करना आपके कंप्यूटर को संक्रमित करने वाले मैलवेयर द्वारा आपके बिटकॉइन को चोरी होने से पूरी तरह से सुरक्षित नहीं कर सकता है।</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>बटुए "वॉलेट" को एन्क्रिप्ट किया जाना है</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>आपका बटुआ "वॉलेट" एन्क्रिप्टेड होने वाला है।</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>आपका बटुआ "वॉलेट" एन्क्रिप्ट हो गया है।</translation> + </message> + <message> + <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> + <translation>महत्वपूर्ण: किसी भी पिछले बैकअप को आपने अपनी वॉलेट फ़ाइल से बनाया था, उसे नए जनरेट किए गए एन्क्रिप्टेड वॉलेट फ़ाइल से बदल दिया जाना चाहिए। सुरक्षा कारणों से, अनएन्क्रिप्टेड वॉलेट फ़ाइल के पिछले बैकअप बेकार हो जाएंगे जैसे ही आप नए, एन्क्रिप्टेड वॉलेट का उपयोग करना शुरू करते हैं।</translation> + </message> + <message> <source>Wallet encryption failed</source> <translation>वॉलेट एन्क्रिप्शन विफल रहा</translation> </message> <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>आंतरिक त्रुटि के कारण वॉलेट एन्क्रिप्शन विफल रहा। आपका वॉलेट "बटुआ" एन्क्रिप्ट नहीं किया गया था।</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>आपूर्ति किए गए पासफ़्रेज़ मेल नहीं खाते हैं।</translation> + </message> + <message> <source>Wallet unlock failed</source> <translation>वॉलेट अनलॉक विफल रहा</translation> </message> <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>वॉलेट डिक्रिप्शन के लिए दर्ज किया गया पासफ़्रेज़ गलत था।</translation> + </message> + <message> <source>Wallet decryption failed</source> <translation>वॉलेट डिक्रिप्शन विफल</translation> </message> - </context> + <message> + <source>Wallet passphrase was successfully changed.</source> + <translation>वॉलेट पासफ़्रेज़ को सफलतापूर्वक बदल दिया गया था।</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>चेतावनी: कैप्स लॉक कुंजी चालू है!</translation> + </message> +</context> <context> <name>BanTableModel</name> - </context> + <message> + <source>IP/Netmask</source> + <translation>आईपी /नेटमास्क "Netmask"</translation> + </message> + <message> + <source>Banned Until</source> + <translation> तक बैन कर दिया</translation> + </message> +</context> <context> <name>BitcoinGUI</name> <message> + <source>Sign &message...</source> + <translation>हस्ताक्षर और संदेश ...</translation> + </message> + <message> <source>Synchronizing with network...</source> - <translation>नेटवर्क से समकालिक (मिल) रहा है ...</translation> + <translation>नेटवर्क से समकालिकरण जारी है ...</translation> </message> <message> <source>&Overview</source> @@ -215,14 +287,38 @@ <translation>अप्लिकेशन से बाहर निकलना !</translation> </message> <message> + <source>&About %1</source> + <translation>और %1 के बारे में</translation> + </message> + <message> + <source>Show information about %1</source> + <translation>%1 के बारे में जानकारी दिखाएं</translation> + </message> + <message> + <source>About &Qt</source> + <translation>के बारे में और क्यूटी "Qt"</translation> + </message> + <message> + <source>Show information about Qt</source> + <translation>क्यूटी "Qt" के बारे में जानकारी दिखाएँ</translation> + </message> + <message> <source>&Options...</source> <translation>&विकल्प</translation> </message> <message> + <source>&Encrypt Wallet...</source> + <translation>और वॉलेट को गोपित "एन्क्रिप्ट" करें</translation> + </message> + <message> <source>&Backup Wallet...</source> <translation>&बैकप वॉलेट</translation> </message> <message> + <source>&Change Passphrase...</source> + <translation>और पासफ़्रेज़ बदलें</translation> + </message> + <message> <source>Wallet:</source> <translation>तिजोरी</translation> </message> @@ -564,7 +660,15 @@ <name>TransactionDesc</name> <message> <source>Date</source> - <translation>taareek</translation> + <translation>दिनांक</translation> + </message> + <message> + <source>Source</source> + <translation>स्रोत</translation> + </message> + <message> + <source>Generated</source> + <translation>उत्पन्न</translation> </message> <message> <source>unknown</source> @@ -654,6 +758,10 @@ <context> <name>bitcoin-core</name> <message> + <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> + <translation>यह एक पूर्व-रिलीज़ परीक्षण बिल्ड है - अपने जोखिम पर उपयोग करें - खनन या व्यापारी अनुप्रयोगों के लिए उपयोग न करें</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>ब्लॉक्स जाँचे जा रहा है...</translation> </message> diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/bitcoin_hu.ts index 34c8b91844..e8c13c3c27 100644 --- a/src/qt/locale/bitcoin_hu.ts +++ b/src/qt/locale/bitcoin_hu.ts @@ -3,7 +3,7 @@ <name>AddressBookPage</name> <message> <source>Right-click to edit address or label</source> - <translation>A cím vagy címke szerkeszteséhez kattintson a jobb gombbal</translation> + <translation>A cím vagy címke szerkesztéséhez kattints a jobb gombbal</translation> </message> <message> <source>Create a new address</source> @@ -482,6 +482,14 @@ <translation>Naprakész</translation> </message> <message> + <source>Node window</source> + <translation>Csomópont ablak</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Nyisd meg a hibaellenőrző és diagnosztizáló konzolt.</translation> + </message> + <message> <source>&Sending addresses</source> <translation>&Küldő címek</translation> </message> @@ -550,6 +558,10 @@ <translation>Hiba: %1</translation> </message> <message> + <source>Warning: %1</source> + <translation>Vigyázz: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>Dátum: %1 @@ -806,6 +818,10 @@ <translation>A tárcához tartozó privát kulcsok letiltása. Azok a tárcák, melyeknél a privát kulcsok le vannak tiltva, nem tartalmaznak privát kulcsokat és nem tartalmazhatnak HD magot vagy importált privát kulcsokat. Ez azoknál a tárcáknál ideális, melyeket csak megfigyelésre használnak.</translation> </message> <message> + <source>Disable Private Keys</source> + <translation>Kapcsold ki a Privát Kódot</translation> + </message> + <message> <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> <translation>Üres tárca készítése. Az üres tárcák kezdetben nem tartalmaznak privát kulcsokat vagy szkripteket. Később lehetséges a privát kulcsok vagy címek importálása avagy egy HD mag beállítása.</translation> </message> @@ -813,7 +829,11 @@ <source>Make Blank Wallet</source> <translation>Üres tárca készítése</translation> </message> - </context> + <message> + <source>Create</source> + <translation>Létrehozás</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -1020,10 +1040,18 @@ <source>Hide</source> <translation>Elrejtés</translation> </message> + <message> + <source>Esc</source> + <translation>Kilépés</translation> + </message> </context> <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Nyisd meg a bitcoin címedet</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -1408,6 +1436,10 @@ <translation>URI kezelés</translation> </message> <message> + <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source> + <translation>'bitcoin://' nem érvényes egységes erőforrás azonosító (URI). Használd helyette a 'bitcoin'-t.</translation> + </message> + <message> <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> <translation>A BIP70 széleskörű biztonsági hiányosságai következtében határozottan ajánljuk, hogy hagyjon figyelmen kívül bármiféle kereskedelmi utasítást, amely a tárca váltására készteti.</translation> </message> @@ -1573,6 +1605,10 @@ <translation>Hiba lépett fel az URI QR kóddá alakításakor.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>QR kód támogatás nem elérhető.</translation> + </message> + <message> <source>Save QR Code</source> <translation>QR Kód Mentése</translation> </message> @@ -1608,6 +1644,10 @@ <translation>Adatkönyvtár</translation> </message> <message> + <source>Blocksdir</source> + <translation>Blokk könyvtár</translation> + </message> + <message> <source>Startup time</source> <translation>Bekapcsolás ideje</translation> </message> @@ -1648,6 +1688,10 @@ <translation>Tárca:</translation> </message> <message> + <source>(none)</source> + <translation>(nincs)</translation> + </message> + <message> <source>&Reset</source> <translation>&Visszaállítás</translation> </message> @@ -1700,6 +1744,10 @@ <translation>User Agent</translation> </message> <message> + <source>Node window</source> + <translation>Csomópont ablak</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>A %1 debug log fájl megnyitása a jelenlegi könyvtárból. Ez néhány másodpercig eltarthat nagyobb log fájlok esetén.</translation> </message> @@ -2156,6 +2204,14 @@ <translation>Por-határ:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Rejtsd el a tranzakciós költségek beállításait</translation> + </message> + <message> + <source>A too low fee might result in a never confirming transaction (read the tooltip)</source> + <translation>A túl alacsony illeték a tranzakció soha be nem teljesülését eredményezheti (olvassa el az elemleírást)</translation> + </message> + <message> <source>Confirmation time target:</source> <translation>Várható megerősítési idő:</translation> </message> @@ -2232,14 +2288,30 @@ <translation>Később növelheti a tranzakció díját (lásd Replace-By-Fee, BIP-125).</translation> </message> <message> + <source>Please, review your transaction.</source> + <translation>Kérjük, hogy ellenőrizze le a tranzakcióját.</translation> + </message> + <message> <source>Transaction fee</source> <translation>Tranzakciós díj</translation> </message> <message> + <source>Total Amount</source> + <translation>Teljes összeg</translation> + </message> + <message> + <source>To review recipient list click "Show Details..."</source> + <translation>A címzett lista ellenőrzéséhez kattintson a "További részletek" gombra.</translation> + </message> + <message> <source>Confirm send coins</source> <translation>Összeg küldésének megerősítése</translation> </message> <message> + <source>Send</source> + <translation>Küldés</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>A fogadó címe érvénytelen. Kérem ellenőrizze.</translation> </message> @@ -2489,6 +2561,10 @@ <translation>Tárca megnyitása megszakítva</translation> </message> <message> + <source>No error</source> + <translation>Nincs hiba</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>A megadott cím privát kulcsa nem található.</translation> </message> @@ -2647,10 +2723,18 @@ <translation>Tranzakció teljes mérete</translation> </message> <message> + <source>Transaction virtual size</source> + <translation>A tranzakció virtuális mérete</translation> + </message> + <message> <source>Output index</source> <translation>Indeks izhoda</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(A tanúsítvány nem ellenőrzött)</translation> + </message> + <message> <source>Merchant</source> <translation>Kereskedő</translation> </message> @@ -3058,7 +3142,11 @@ <source>The wallet data was successfully saved to %1.</source> <translation>A tárca adatai sikeresen elmentve %1.</translation> </message> - </context> + <message> + <source>Cancel</source> + <translation>Bezárás</translation> + </message> +</context> <context> <name>bitcoin-core</name> <message> @@ -3194,6 +3282,10 @@ <translation>Helytelen vagy nemlétező genézis blokk. Helytelen hálózati adatkönyvtár?</translation> </message> <message> + <source>Invalid P2P permission: '%s'</source> + <translation>Érvénytelen P2P jog: '%s'</translation> + </message> + <message> <source>Invalid amount for -%s=<amount>: '%s'</source> <translation>Neveljavna količina za -%s=<amount>: '%s'</translation> </message> @@ -3206,10 +3298,18 @@ <translation>Neveljavna količina za -fallbackfee=<amount>: '%s'</translation> </message> <message> + <source>Unknown address type '%s'</source> + <translation>Ismeretlen cím típus '%s'</translation> + </message> + <message> <source>Loading P2P addresses...</source> <translation>P2P címek betöltése...</translation> </message> <message> + <source>Error: Disk space is too low!</source> + <translation>Hiba: A lemezen kevés hely elérhető!</translation> + </message> + <message> <source>Loading banlist...</source> <translation>Tiltólista betöltése...</translation> </message> diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/bitcoin_id.ts index e7be7825fc..09d3b87bca 100644 --- a/src/qt/locale/bitcoin_id.ts +++ b/src/qt/locale/bitcoin_id.ts @@ -482,6 +482,14 @@ <translation>Terbaru</translation> </message> <message> + <source>Node window</source> + <translation>Jendela Node</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Buka konsol debug dan diagnosa node</translation> + </message> + <message> <source>&Sending addresses</source> <translation>Address &Pengirim</translation> </message> @@ -490,6 +498,10 @@ <translation>Address &Penerima</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Buka URI bitcoin:</translation> + </message> + <message> <source>Open Wallet</source> <translation>Buka Wallet</translation> </message> @@ -1050,6 +1062,14 @@ <translation>Sembunyikan</translation> </message> <message> + <source>Esc</source> + <translation>Keluar</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 menyinkronkan. Program ini akan mengunduh header dan blok dari rekan dan memvalidasi sampai blok terbaru.</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Tidak diketahui. Sinkronisasi Header (%1, %2%)...</translation> </message> @@ -1057,6 +1077,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Buka URI bitcoin:</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -1449,6 +1473,10 @@ <translation>'bitcoin://' bukanlah alamat URI yang valid. Silakan gunakan 'bitcoin:'.</translation> </message> <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Tidak dapat memproses pembayaran karena dukungan BIP70 tidak disertakan.</translation> + </message> + <message> <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> <translation>Berhubung kelemahan keamanan yang meluas di BIP70, sangat disarankan agar instruksi pedagang untuk mengganti dompet diabaikan.</translation> </message> @@ -1767,6 +1795,10 @@ </translation> </message> <message> + <source>Node window</source> + <translation>Jendela Node</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Buka file log debug %1 dari direktori data saat ini. Dapat memakan waktu beberapa detik untuk file log besar.</translation> </message> @@ -1974,6 +2006,10 @@ <translation>Nilai permintaan opsional. Biarkan ini kosong atau nol bila tidak meminta nilai tertentu.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Label fakultatif untuk menghubungkan dengan alamat penerima baru (anda menggunakannya untuk mengindetifikasi faktur). Itu juga dilampirkan pada permintaan pembayaran.</translation> + </message> + <message> <source>&Create new receiving address</source> <translation>&Create alamat penerima baru</translation> </message> @@ -2227,6 +2263,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Dust:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Sembunyikan pengaturan biaya transaksi</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>Ketika volume transaksi lebih sedikit daripada ruang di blok, penambang serta simpul yang menyiarkanikan dapat memberlakukan biaya minimum. Anda boleh hanya membayar biaya minimum, tetapi perlu diketahui bahwa ini dapat menghasilkan transaksi yang tidak pernah dikonfirmasi setelah ada lebih banyak permintaan untuk transaksi bitcoin daripada yang dapat diproses jaringan.</translation> </message> @@ -2307,6 +2347,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>%1 ke %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Apakah anda ingin menjadikan transaksi ini sebagai konsep?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Apakah anda yakin ingin mengirimkan?</translation> </message> @@ -2343,6 +2387,26 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Konfirmasi pengiriman koin</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Konfirmasi proposal transaksi</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Salin PSBT ke papan klip</translation> + </message> + <message> + <source>Send</source> + <translation>Kirim</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT disalin</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Saldo (hanya lihat):</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Alamat penerima tidak sesuai. Mohon periksa kembali.</translation> </message> @@ -2434,6 +2498,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Hapus masukan ini</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>Jumlah yang ingin dikirim dalam unit yang dipilih</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>Biaya akan diambil dari jumlah yang dikirim. Penerima akan menerima bitcoin lebih sedikit daripada yang di masukkan di bidang jumlah. Jika ada beberapa penerima, biaya dibagi rata.</translation> </message> @@ -2556,6 +2624,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Alamat Bitcoin yang menandatangani pesan</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Pesan yang ditandatangani untuk diverifikasi</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Verifikasi pesan untuk memastikannya ditandatangani dengan alamat Bitcoin tersebut</translation> </message> @@ -2588,6 +2660,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Pembukaan kunci dompet dibatalkan.</translation> </message> <message> + <source>No error</source> + <translation>Tidak ada kesalahan</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>Private key untuk alamat yang dimasukkan tidak tersedia.</translation> </message> @@ -2638,10 +2714,22 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Buka sampai %1</translation> </message> <message> + <source>conflicted with a transaction with %1 confirmations</source> + <translation>Konflik dengan sebuah transaksi dengan %1 konfirmasi</translation> + </message> + <message> <source>0/unconfirmed, %1</source> <translation>0/belum dikonfirmasi, %1</translation> </message> <message> + <source>in memory pool</source> + <translation>Dalam pool memory</translation> + </message> + <message> + <source>not in memory pool</source> + <translation>Tidak dalam pool memory</translation> + </message> + <message> <source>%1/unconfirmed</source> <translation>%1/belum dikonfirmasi</translation> </message> @@ -2662,10 +2750,30 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Sumber</translation> </message> <message> + <source>Generated</source> + <translation>Dihasilkan</translation> + </message> + <message> + <source>From</source> + <translation>Dari</translation> + </message> + <message> <source>unknown</source> <translation>tidak diketahui</translation> </message> <message> + <source>To</source> + <translation>Untuk</translation> + </message> + <message> + <source>own address</source> + <translation>alamat milik sendiri</translation> + </message> + <message> + <source>watch-only</source> + <translation>hanya-melihat</translation> + </message> + <message> <source>label</source> <translation>label</translation> </message> @@ -2694,6 +2802,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Biaya Transaksi</translation> </message> <message> + <source>Net amount</source> + <translation>Jumlah bersih</translation> + </message> + <message> <source>Message</source> <translation>Pesan</translation> </message> @@ -2706,6 +2818,26 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>ID Transaksi</translation> </message> <message> + <source>Transaction total size</source> + <translation>Ukuran transaksi total</translation> + </message> + <message> + <source>Transaction virtual size</source> + <translation>Ukuran transaksi virtual</translation> + </message> + <message> + <source>Output index</source> + <translation>Indeks outpu</translation> + </message> + <message> + <source> (Certificate was not verified)</source> + <translation>(Sertifikat tidak diverifikasi)</translation> + </message> + <message> + <source>Merchant</source> + <translation>Penjual</translation> + </message> + <message> <source>Debug information</source> <translation>Informasi debug</translation> </message> @@ -2714,6 +2846,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Transaksi</translation> </message> <message> + <source>Inputs</source> + <translation>Input</translation> + </message> + <message> <source>Amount</source> <translation>Jumlah</translation> </message> @@ -2751,6 +2887,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <source>Label</source> <translation>Label</translation> </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Buka %n untuk blok lebih</numerusform></translation> + </message> <message> <source>Open until %1</source> <translation>Buka sampai %1</translation> @@ -2760,6 +2900,22 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Belum dikonfirmasi</translation> </message> <message> + <source>Abandoned</source> + <translation>yang ditelantarkan</translation> + </message> + <message> + <source>Confirmed (%1 confirmations)</source> + <translation>Dikonfirmasi (%1 konfirmasi)</translation> + </message> + <message> + <source>Conflicted</source> + <translation>Bertentangan</translation> + </message> + <message> + <source>Generated but not accepted</source> + <translation>Dihasilkan tapi tidak diterima</translation> + </message> + <message> <source>Received with</source> <translation>Diterima dengan</translation> </message> @@ -2772,10 +2928,26 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Dikirim ke</translation> </message> <message> + <source>Payment to yourself</source> + <translation>Pembayaran untuk diri sendiri</translation> + </message> + <message> + <source>Mined</source> + <translation>Ditambang</translation> + </message> + <message> + <source>watch-only</source> + <translation>hanya-melihat</translation> + </message> + <message> <source>(no label)</source> <translation>(tidak ada label)</translation> </message> <message> + <source>Transaction status. Hover over this field to show number of confirmations.</source> + <translation>Status transaksi. Arahkan kursor ke bidang ini untuk menampilkan jumlah konfirmasi.</translation> + </message> + <message> <source>Date and time that the transaction was received.</source> <translation>Tanggal dan waktu transaksi telah diterima.</translation> </message> @@ -2783,7 +2955,19 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <source>Type of transaction.</source> <translation>Tipe transaksi.</translation> </message> - </context> + <message> + <source>Whether or not a watch-only address is involved in this transaction.</source> + <translation>Apakah alamat hanya-melihat terlibat dalam transaksi ini atau tidak.</translation> + </message> + <message> + <source>User-defined intent/purpose of the transaction.</source> + <translation>maksud/tujuan transaksi yang ditentukan pengguna.</translation> + </message> + <message> + <source>Amount removed from or added to balance.</source> + <translation>Jumlah dihapus dari atau ditambahkan ke saldo.</translation> + </message> +</context> <context> <name>TransactionView</name> <message> @@ -2811,6 +2995,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Tahun ini</translation> </message> <message> + <source>Range...</source> + <translation>Jarak...</translation> + </message> + <message> <source>Received with</source> <translation>Diterima dengan</translation> </message> @@ -2819,6 +3007,14 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Dikirim ke</translation> </message> <message> + <source>To yourself</source> + <translation>Untuk diri sendiri</translation> + </message> + <message> + <source>Mined</source> + <translation>Ditambang</translation> + </message> + <message> <source>Other</source> <translation>Lainnya</translation> </message> @@ -2855,6 +3051,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Salain ID Transaksi</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Salin transaksi yang belum diproses</translation> + </message> + <message> <source>Copy full transaction details</source> <translation>Salin detail transaksi</translation> </message> @@ -2879,6 +3079,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Terkonfirmasi</translation> </message> <message> + <source>Watch-only</source> + <translation>Hanya-melihat</translation> + </message> + <message> <source>Date</source> <translation>Tanggal</translation> </message> @@ -2903,23 +3107,55 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Mengekspor Gagal</translation> </message> <message> + <source>There was an error trying to save the transaction history to %1.</source> + <translation>Terjadi kesalahan saat mencoba menyimpan riwayat transaksi ke %1.</translation> + </message> + <message> <source>Exporting Successful</source> <translation>Ekspor Berhasil</translation> </message> - </context> + <message> + <source>The transaction history was successfully saved to %1.</source> + <translation>Riwayat transaksi berhasil disimpan ke %1.</translation> + </message> + <message> + <source>Range:</source> + <translation>Jarak:</translation> + </message> + <message> + <source>to</source> + <translation>untuk</translation> + </message> +</context> <context> <name>UnitDisplayStatusBarControl</name> - </context> + <message> + <source>Unit to show amounts in. Click to select another unit.</source> + <translation>Unit untuk menunjukkan jumlah. Klik untuk memilih unit lain.</translation> + </message> +</context> <context> <name>WalletController</name> <message> <source>Close wallet</source> <translation>Tutup wallet</translation> </message> - </context> + <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Apakah anda yakin ingin menutup dompet <i>%1</i>?</translation> + </message> + <message> + <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> + <translation>Menutup dompet terlalu lama dapat menyebabkan harus menyinkron ulang seluruh rantai jika pemangkasan diaktifkan.</translation> + </message> +</context> <context> <name>WalletFrame</name> - </context> + <message> + <source>No wallet has been loaded.</source> + <translation>Tidak ada dompent yang dimuat.</translation> + </message> +</context> <context> <name>WalletModel</name> <message> @@ -2927,6 +3163,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Kirim Koin</translation> </message> <message> + <source>Fee bump error</source> + <translation>Kesalahan biaya tagihan</translation> + </message> + <message> <source>Increasing transaction fee failed</source> <translation>Gagal meningkatkan biaya transaksi</translation> </message> @@ -2935,6 +3175,10 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Apa Anda ingin meningkatkan biayanya?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Apakah anda ingin membuat draf transaksi dengan kenaikan biaya?</translation> + </message> + <message> <source>Current fee:</source> <translation>Biaya saat ini:</translation> </message> @@ -2947,6 +3191,26 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Biaya baru:</translation> </message> <message> + <source>Confirm fee bump</source> + <translation>Konfirmasi biaya tambahan</translation> + </message> + <message> + <source>Can't draft transaction.</source> + <translation>Tidak dapat membuat konsep transaksi.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT disalin</translation> + </message> + <message> + <source>Can't sign transaction.</source> + <translation>Tidak dapat menandatangani transaksi.</translation> + </message> + <message> + <source>Could not commit transaction</source> + <translation>Tidak dapat melakukan transaksi</translation> + </message> + <message> <source>default wallet</source> <translation>wallet default</translation> </message> @@ -2962,14 +3226,30 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Ekspor data dalam tab sekarang ke sebuah berkas</translation> </message> <message> + <source>Backup Wallet</source> + <translation>Cadangkan Dompet</translation> + </message> + <message> + <source>Wallet Data (*.dat)</source> + <translation>Data Dompet (*.dat)</translation> + </message> + <message> <source>Backup Failed</source> <translation>Pencadangan Gagal</translation> </message> <message> + <source>There was an error trying to save the wallet data to %1.</source> + <translation>Terjadi kesalahan saat mencoba menyimpan data dompet ke %1.</translation> + </message> + <message> <source>Backup Successful</source> <translation>Pencadangan Berhasil</translation> </message> <message> + <source>The wallet data was successfully saved to %1.</source> + <translation>Data dompet berhasil disimpan ke %1.</translation> + </message> + <message> <source>Cancel</source> <translation>Batal</translation> </message> @@ -2977,6 +3257,66 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <context> <name>bitcoin-core</name> <message> + <source>Distributed under the MIT software license, see the accompanying file %s or %s</source> + <translation>Didistribusikan di bawah lisensi perangkat lunak MIT, lihat berkas terlampir %s atau %s</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>Pemangkasan dikonfigurasikan di bawah minimum dari %d MiB. Harap gunakan angka yang lebih tinggi.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Pemangkasan: sinkronisasi dompet terakhir melampaui data yang sudah dipangkas. Anda perlu -reindex (unduh seluruh blockchain lagi jika terjadi node pemangkasan)</translation> + </message> + <message> + <source>Error: A fatal internal error occurred, see debug.log for details</source> + <translation>Error: Kesalahan internal fatal terjadi, lihat debug.log untuk detailnya</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Memangkas blockstore...</translation> + </message> + <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Tidak dapat memulai server HTTP. Lihat log debug untuk detailnya.</translation> + </message> + <message> + <source>The %s developers</source> + <translation>Pengembang %s</translation> + </message> + <message> + <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> + <translation>Tidak dapat memperoleh kunci pada direktori data %s. %s mungkin sudah berjalan.</translation> + </message> + <message> + <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Kesalahan membaca %s! Semua kunci dibaca dengan benar, tetapi data transaksi atau entri buku alamat mungkin hilang atau salah.</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source> + <translation>Periksa apakah tanggal dan waktu komputer anda benar! Jika jam anda salah, %s tidak akan berfungsi dengan baik.</translation> + </message> + <message> + <source>Please contribute if you find %s useful. Visit %s for further information about the software.</source> + <translation>Silakan berkontribusi jika %s berguna. Kunjungi %s untuk informasi lebih lanjut tentang perangkat lunak.</translation> + </message> + <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>Blok basis data berisi blok yang tampaknya berasal dari masa depan. Ini mungkin karena tanggal dan waktu komputer anda diatur secara tidak benar. Bangun kembali blok basis data jika anda yakin tanggal dan waktu komputer anda benar</translation> + </message> + <message> + <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> + <translation>Ini adalah uji coba pra-rilis - gunakan dengan risiko anda sendiri - jangan digunakan untuk aplikasi penambangan atau penjual</translation> + </message> + <message> + <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> + <translation>Peringatan: Jaringan tampaknya tidak sepenuhnya setuju! Beberapa penambang tampaknya mengalami masalah.</translation> + </message> + <message> + <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source> + <translation>Peringatan: Kami tampaknya tidak sepenuhnya setuju dengan peers kami! Anda mungkin perlu memutakhirkan, atau nodes lain mungkin perlu dimutakhirkan.</translation> + </message> + <message> <source>Corrupted block database detected</source> <translation>Menemukan database blok yang rusak</translation> </message> @@ -3009,26 +3349,128 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Tidak bisa cari blok pertama, atau blok pertama salah. Salah direktori untuk jaringan?</translation> </message> <message> + <source>Loading P2P addresses...</source> + <translation>Memuat alamat P2P....</translation> + </message> + <message> <source>Error: Disk space is too low!</source> <translation>Eror: Kapasitas penyimpanan penuh!</translation> </message> <message> + <source>Loading banlist...</source> + <translation>Memuat banlist...</translation> + </message> + <message> <source>Not enough file descriptors available.</source> <translation>Deskripsi berkas tidak tersedia dengan cukup.</translation> </message> <message> + <source>Prune cannot be configured with a negative value.</source> + <translation>Pemangkasan tidak dapat dikonfigurasi dengan nilai negatif.</translation> + </message> + <message> + <source>The source code is available from %s.</source> + <translation>Kode sumber tersedia dari %s.</translation> + </message> + <message> + <source>Transaction fee and change calculation failed</source> + <translation>Biaya transaksi dan kalkulasi perubahan gagal</translation> + </message> + <message> + <source>Unable to bind to %s on this computer. %s is probably already running.</source> + <translation>Tidak dapat mengikat ke %s di komputer ini. %s mungkin sudah berjalan.</translation> + </message> + <message> + <source>Unable to generate keys</source> + <translation>Tidak dapat menghasilkan kunci</translation> + </message> + <message> + <source>Unsupported logging category %s=%s.</source> + <translation>Kategori logging yang tidak didukung %s=%s.</translation> + </message> + <message> + <source>Upgrading UTXO database</source> + <translation>Memutakhirkan basis data UTXO</translation> + </message> + <message> + <source>User Agent comment (%s) contains unsafe characters.</source> + <translation>Komentar Agen Pengguna (%s) berisi karakter yang tidak aman.</translation> + </message> + <message> <source>Verifying blocks...</source> <translation>Blok-blok sedang diverifikasi...</translation> </message> <message> + <source>Wallet needed to be rewritten: restart %s to complete</source> + <translation>Dompet harus ditulis ulang: mulai ulang %s untuk menyelesaikan</translation> + </message> + <message> + <source>Error: Listening for incoming connections failed (listen returned error %s)</source> + <translation>Error: Mendengarkan koneksi yang masuk gagal (dengarkan kesalahan yang dikembalikan %s)</translation> + </message> + <message> + <source>The transaction amount is too small to send after the fee has been deducted</source> + <translation>Jumlah transaksi terlalu kecil untuk dikirim setelah biaya dikurangi</translation> + </message> + <message> + <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> + <translation>Anda perlu membangun kembali basis data menggunakan -reindex untuk kembali ke mode tidak dipangkas. Ini akan mengunduh ulang seluruh blockchain</translation> + </message> + <message> + <source>Error reading from database, shutting down.</source> + <translation>Kesalahan membaca dari basis data, mematikan.</translation> + </message> + <message> + <source>Error upgrading chainstate database</source> + <translation>Kesalahan memutakhirkan basis data chainstate</translation> + </message> + <message> <source>Error: Disk space is low for %s</source> <translation>Eror: Kapasitas penyimpanan penuh untuk %s</translation> </message> <message> + <source>Invalid -onion address or hostname: '%s'</source> + <translation>Alamat -onion atau hostname tidak valid: '%s'</translation> + </message> + <message> + <source>Invalid -proxy address or hostname: '%s'</source> + <translation>Alamat proxy atau hostname tidak valid: '%s'</translation> + </message> + <message> + <source>Invalid netmask specified in -whitelist: '%s'</source> + <translation>Netmask tidak valid yang ditentukan di -whitelist: '%s'</translation> + </message> + <message> + <source>Need to specify a port with -whitebind: '%s'</source> + <translation>Perlu menentukan port dengan -whitebind: '%s'</translation> + </message> + <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>Mode pemangkasan tidak kompatibel dengan -blockfilterindex.</translation> + </message> + <message> + <source>Section [%s] is not recognized.</source> + <translation>Bagian [%s] tidak dikenali.</translation> + </message> + <message> <source>Signing transaction failed</source> <translation>Tandatangani transaksi tergagal</translation> </message> <message> + <source>The specified config file %s does not exist +</source> + <translation>Berkas konfigurasi %s yang ditentukan tidak ada +</translation> + </message> + <message> + <source>The transaction amount is too small to pay the fee</source> + <translation>Jumlah transaksi terlalu kecil untuk membayar biaya ongkos</translation> + </message> + <message> + <source>This is experimental software.</source> + <translation>Ini adalah perangkat lunak eksperimental.</translation> + </message> + <message> <source>Transaction amount too small</source> <translation>Nilai transaksi terlalu kecil</translation> </message> @@ -3037,10 +3479,46 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Transaksi terlalu besar</translation> </message> <message> + <source>Verifying wallet(s)...</source> + <translation>Memverifikasi dompet...</translation> + </message> + <message> <source>Zapping all transactions from wallet...</source> <translation>Setiap transaksi dalam dompet sedang di-'Zap'...</translation> </message> <message> + <source>%s is set very high!</source> + <translation>%s diset sangat tinggi!</translation> + </message> + <message> + <source>Error loading wallet %s. Duplicate -wallet filename specified.</source> + <translation>Terjadi kesalahan saat memuat dompet %s duplikat -wallet nama file yang diterapkan</translation> + </message> + <message> + <source>The wallet will avoid paying less than the minimum relay fee.</source> + <translation>Dompet akan menghindari pembayaran kurang dari biaya minimum ongkos relay.</translation> + </message> + <message> + <source>This is the minimum transaction fee you pay on every transaction.</source> + <translation>Ini adalah ongkos transaksi minimum yang anda bayarkan untuk setiap transaksi.</translation> + </message> + <message> + <source>This is the transaction fee you will pay if you send a transaction.</source> + <translation>Ini adalah ongkos transaksi yang akan anda bayarkan jika anda mengirim transaksi.</translation> + </message> + <message> + <source>Transaction amounts must not be negative</source> + <translation>Jumlah transaksi tidak boleh negatif</translation> + </message> + <message> + <source>Transaction has too long of a mempool chain</source> + <translation>Transaksi mempunyai rantai mempool yang terlalu panjang</translation> + </message> + <message> + <source>Transaction must have at least one recipient</source> + <translation>Transaksi harus mempunyai paling tidak satu penerima</translation> + </message> + <message> <source>Unknown network specified in -onlynet: '%s'</source> <translation>Jaringan tidak diketahui yang ditentukan dalam -onlynet: '%s'</translation> </message> @@ -3049,6 +3527,14 @@ Catatan: Karena biaya dihitung berdasarkan per byte, biaya "100 satoshi per kB" <translation>Saldo tidak mencukupi</translation> </message> <message> + <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source> + <translation>Peringatan: Kunci pribadi terdeteksi di dompet {%s} dengan kunci pribadi yang dinonaktifkan</translation> + </message> + <message> + <source>Cannot write to data directory '%s'; check permissions.</source> + <translation>Tidak dapat menulis ke direktori data '%s'; periksa izinnya.</translation> + </message> + <message> <source>Loading block index...</source> <translation>Memuat indeks blok...</translation> </message> diff --git a/src/qt/locale/bitcoin_is.ts b/src/qt/locale/bitcoin_is.ts index 6eb5c10107..25fe30bbdd 100644 --- a/src/qt/locale/bitcoin_is.ts +++ b/src/qt/locale/bitcoin_is.ts @@ -168,6 +168,10 @@ <translation>Veski dulkóðað</translation> </message> <message> + <source>Wallet to be encrypted</source> + <translation>Veski sem á að dulkóða</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>MIKILVÆGT: Nýja dulkóðaða veskisskráin þarf að koma í staðinn fyrir öll fyrri afrit sem þú hefur gert af upprunalegu veskisskránni. Af öryggisástæðum munu öll fyrri afrit af ódulkóðaða veskinu verða óvirk um leið og þú byrjar að nota nýja, dulkóðaða veskið.</translation> </message> diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 2cd0941a8c..a8137d3031 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -1790,6 +1790,14 @@ Per specificare più URL separarli con una barra verticale "|".</translation> <translation>Blocchi sincronizzati</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Il Sistema Autonomo mappato utilizzato per diversificare la selezione dei peer.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>AS mappato</translation> + </message> + <message> <source>User Agent</source> <translation>User Agent</translation> </message> diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/bitcoin_ja.ts index ea1bf17838..e40e5ec4fb 100644 --- a/src/qt/locale/bitcoin_ja.ts +++ b/src/qt/locale/bitcoin_ja.ts @@ -67,7 +67,7 @@ </message> <message> <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> - <translation>これらは、あなたが知っている支払い送り先の Bitcoin アドレスです。コインを送る前に、必ず金額と送金先アドレスを確認してください。</translation> + <translation>これらは、あなたが知っている送信先の Bitcoin アドレスです。コインを送る前に必ず、金額と受取用アドレスを確認してください。</translation> </message> <message> <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> @@ -91,7 +91,7 @@ </message> <message> <source>Comma separated file (*.csv)</source> - <translation>テキスト CSV (*.csv)</translation> + <translation>CSVファイル (*.csv)</translation> </message> <message> <source>Exporting Failed</source> @@ -114,7 +114,7 @@ </message> <message> <source>(no label)</source> - <translation>(ラベル無し)</translation> + <translation>(ラベル無し)</translation> </message> </context> <context> @@ -133,7 +133,7 @@ </message> <message> <source>Repeat new passphrase</source> - <translation>新しいパスフレーズをもう一度</translation> + <translation>新しいパスフレーズをもう一度入力</translation> </message> <message> <source>Show passphrase</source> @@ -169,7 +169,7 @@ </message> <message> <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> - <translation>警告: もしもあなたのウォレットを暗号化してパスフレーズを忘れてしまったら、<b>あなたの Bitcoin はすべて失われます</b>!</translation> + <translation>警告: ウォレットの暗号化後にパスフレーズを忘れてしまった場合、<b>あなたの Bitcoin はすべて失われます</b>!</translation> </message> <message> <source>Are you sure you wish to encrypt your wallet?</source> @@ -206,7 +206,7 @@ </message> <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> - <translation>重要: 今までに作成されたウォレット ファイルのバックアップは、暗号化された新しいウォレット ファイルに置き換える必要があります。セキュリティ上の理由により、暗号化された新しいウォレットを使い始めると、暗号化されていないウォレット ファイルのバックアップはすぐに使えなくなります。</translation> + <translation>重要: 今までに作成されたウォレットファイルのバックアップは、暗号化された新しいウォレットファイルに置き換える必要があります。セキュリティ上の理由により、暗号化された新しいウォレットを使い始めると、暗号化されていないウォレットファイルのバックアップはすぐに使えなくなります。</translation> </message> <message> <source>Wallet encryption failed</source> @@ -392,7 +392,7 @@ </message> <message> <source>Show or hide the main Window</source> - <translation>メイン ウインドウを表示または非表示する</translation> + <translation>メインウィンドウを表示または非表示にする</translation> </message> <message> <source>Encrypt the private keys that belong to your wallet</source> @@ -400,7 +400,7 @@ </message> <message> <source>Sign messages with your Bitcoin addresses to prove you own them</source> - <translation>Bitcoin アドレスでメッセージに署名して、アドレスを所有していることを証明する</translation> + <translation>Bitcoin アドレスでメッセージに署名することで、そのアドレスの所有権を証明する</translation> </message> <message> <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source> @@ -424,7 +424,7 @@ </message> <message> <source>Request payments (generates QR codes and bitcoin: URIs)</source> - <translation>支払いをリクエストする (QRコードと bitcoin: URIを生成する)<</translation> + <translation>支払いをリクエストする(QRコードと bitcoin:で始まるURIを生成する)</translation> </message> <message> <source>Show the list of used sending addresses and labels</source> @@ -483,6 +483,10 @@ <translation>ブロックは最新</translation> </message> <message> + <source>Node window</source> + <translation>ノードウィンドウ</translation> + </message> + <message> <source>Open node debugging and diagnostic console</source> <translation>ノードのデバッグ・診断コンソールを開く</translation> </message> @@ -516,7 +520,7 @@ </message> <message> <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source> - <translation>%1 のヘルプ メッセージを表示して、使用可能な XPChain のコマンドライン オプションの一覧を見る。</translation> + <translation>%1 のヘルプ メッセージを表示し、使用可能な Bitcoin のコマンドラインオプション一覧を見る。</translation> </message> <message> <source>default wallet</source> @@ -528,7 +532,7 @@ </message> <message> <source>&Window</source> - <translation>ウインドウ (&W)</translation> + <translation>ウィンドウ (&W)</translation> </message> <message> <source>Minimize</source> @@ -731,7 +735,7 @@ </message> <message> <source>Copy fee</source> - <translation>手数料をコピーす</translation> + <translation>手数料をコピー</translation> </message> <message> <source>Copy after fee</source> @@ -767,11 +771,11 @@ </message> <message> <source>Can vary +/- %1 satoshi(s) per input.</source> - <translation>ひとつの入力につき %1 satoshi 前後ずれることがあります。</translation> + <translation>インプット毎に %1 satoshi 前後変動する場合があります。</translation> </message> <message> <source>(no label)</source> - <translation>(ラベル無し)</translation> + <translation>(ラベル無し)</translation> </message> <message> <source>change from %1 (%2)</source> @@ -779,7 +783,7 @@ </message> <message> <source>(change)</source> - <translation>(おつり)</translation> + <translation>(おつり)</translation> </message> </context> <context> @@ -895,7 +899,7 @@ <name>FreespaceChecker</name> <message> <source>A new data directory will be created.</source> - <translation>新しいデータ ディレクトリが作成されます。</translation> + <translation>新しいデータディレクトリが作成されます。</translation> </message> <message> <source>name</source> @@ -926,7 +930,7 @@ </message> <message> <source>Command-line options</source> - <translation>コマンドライン オプション</translation> + <translation>コマンドラインオプション</translation> </message> </context> <context> @@ -945,7 +949,7 @@ </message> <message> <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source> - <translation>OKをクリックすると、%1 は %4 がリリースされた%3年最初の取引からの完全な %4 ブロックチェーン(%2GB)のダウンロードおよび処理を開始します。</translation> + <translation>OKをクリックすると、%1 は %4 がリリースされた%3年における最初の取引からの完全な %4 ブロックチェーン(%2GB)のダウンロードおよび処理を開始します。</translation> </message> <message> <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> @@ -961,11 +965,11 @@ </message> <message> <source>Use the default data directory</source> - <translation>デフォルトのデータ ディレクトリを使用</translation> + <translation>デフォルトのデータディレクトリを使用</translation> </message> <message> <source>Use a custom data directory:</source> - <translation>カスタム データ ディレクトリを使用:</translation> + <translation>カスタムデータディレクトリを使用:</translation> </message> <message> <source>Bitcoin</source> @@ -973,7 +977,7 @@ </message> <message> <source>Discard blocks after verification, except most recent %1 GB (prune)</source> - <translation>最新の%1 GBを除いて、検証後にブロックを破棄 (剪定する)</translation> + <translation>最新の%1 GBを除き、検証後にブロックを破棄する(剪定する)</translation> </message> <message> <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> @@ -1024,7 +1028,7 @@ </message> <message> <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source> - <translation>まだ表示されていない取引が関係する Bitcoin を使用しようとすると、ネットワークから認証を受けられません。</translation> + <translation>まだ表示されていない取引が関係する Bitcoin の使用を試みた場合、ネットワークから認証を受けられません。</translation> </message> <message> <source>Number of blocks left</source> @@ -1044,7 +1048,7 @@ </message> <message> <source>Progress increase per hour</source> - <translation>一時間あたりの進捗増加</translation> + <translation>一時間毎の進捗増加</translation> </message> <message> <source>calculating...</source> @@ -1052,15 +1056,19 @@ </message> <message> <source>Estimated time left until synced</source> - <translation>同期完了までの推定残り時間</translation> + <translation>同期完了までの推定時間</translation> </message> <message> <source>Hide</source> <translation>隠す</translation> </message> <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> - <translation>%1は現在同期中です。ブロック チェーンの先端に到達するまで、ピアからヘッダーとブロックをダウンロードし検証します。</translation> + <translation>%1は現在同期中です。ブロックチェーンの先端に到達するまで、ピアからヘッダーとブロックをダウンロードし検証します。</translation> </message> <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> @@ -1213,7 +1221,7 @@ </message> <message> <source>&Spend unconfirmed change</source> - <translation>未検証のお釣りを使用する(&S)</translation> + <translation>未承認のお釣りを使用する(&S)</translation> </message> <message> <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source> @@ -1782,10 +1790,22 @@ <translation>同期済みブロック</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>ピア選択の多様化に使用できるマップ化された自律システム。</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>マップ化された自律システム</translation> + </message> + <message> <source>User Agent</source> <translation>ユーザーエージェント</translation> </message> <message> + <source>Node window</source> + <translation>ノードウィンドウ</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>現在のデータディレクトリから %1 のデバッグ用ログファイルを開きます。ログファイルが巨大な場合、数秒かかることがあります。</translation> </message> @@ -2258,6 +2278,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>ダスト:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>トランザクション手数料の設定を隠す</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>ブロック内の空きよりトランザクション流量が少ない場合、マイナーや中継ノードは最低限の手数料でも処理することがあります。この最低限の手数料だけを支払っても問題ありませんが、一度トランザクションの需要がネットワークの処理能力を超えてしまった場合には、トランザクションが永久に承認されなくなってしまう可能性があることにご注意ください。</translation> </message> @@ -2326,6 +2350,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>%1 (%2 ブロック)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>未署名で作成</translation> + </message> + <message> <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> <translation>オフライン%1ウォレットまたはPSBTに対応したハードウェアウォレットと合わせて使用するためのPSBT(部分的に署名されたトランザクション)を作成します。</translation> </message> @@ -2342,10 +2370,18 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>%1 送金先: %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>このトランザクションのひな形を作成しますか?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>送金してもよろしいですか?</translation> </message> <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>トランザクション提案を確認してください。これにより、部分的に署名されたビットコイン・トランザクション(PSBT)が作成されます。これをコピーして例えばオフラインの %1 ウォレットやPSBTを扱えるハードウェアウォレットで残りの署名が出来ます。</translation> + </message> + <message> <source>or</source> <translation>または</translation> </message> @@ -2378,14 +2414,26 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>送金の確認</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>トランザクション提案を承認する</translation> + </message> + <message> <source>Copy PSBT to clipboard</source> <translation>PSBTをクリップボードにコピー</translation> </message> <message> + <source>Send</source> + <translation>送金</translation> + </message> + <message> <source>PSBT copied</source> <translation>PSBTがコピーされました</translation> </message> <message> + <source>Watch-only balance:</source> + <translation>監視限定残高</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>送金先アドレスが不正です。再確認してください。</translation> </message> @@ -2481,6 +2529,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>この項目を削除</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>送金する金額の単位を選択</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>手数料は送金する金額から差し引かれます。送金先には金額欄で指定した額よりも少ない Bitcoin が送られます。送金先が複数ある場合は、手数料は均等に分けられます。</translation> </message> @@ -3186,6 +3238,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>手数料を上乗せしてもよろしいですか?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>このトランザクションに手数料を上乗せしたひな形を作成しますか?</translation> + </message> + <message> <source>Current fee:</source> <translation>現在の手数料:</translation> </message> @@ -3202,6 +3258,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>手数料上乗せの確認</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>トランザクションのひな型を作成できませんでした。</translation> + </message> + <message> <source>PSBT copied</source> <translation>PSBTがコピーされました</translation> </message> diff --git a/src/qt/locale/bitcoin_km.ts b/src/qt/locale/bitcoin_km.ts index e00ea3145d..4ef5205777 100644 --- a/src/qt/locale/bitcoin_km.ts +++ b/src/qt/locale/bitcoin_km.ts @@ -3,87 +3,110 @@ <name>AddressBookPage</name> <message> <source>Right-click to edit address or label</source> - <translation>ចុចខាងស្តាំដើម្បីកែអាស្រយដ្ឋាន ឬ ស្លាក</translation> + <translation>ចុចម៉ៅស្ដាំ ដើម្បីកែសម្រួលអាសយដ្ឋាន រឺស្លាក</translation> </message> <message> <source>Create a new address</source> - <translation>បង្កើតអាស្រយដ្ឋានថ្មីមួយ</translation> + <translation>បង្កើតអាសយដ្ឋានថ្មីមួយ</translation> </message> <message> <source>&New</source> - <translation>&ថ្មី</translation> + <translation>ថ្មី</translation> </message> <message> <source>Copy the currently selected address to the system clipboard</source> - <translation>ចម្លងអាសយដ្ឋានដែលបានរើស</translation> + <translation>ចម្លងអាសយដ្ឋានបច្ចុប្បន្នដែលបានជ្រើសទៅក្ដារតម្រៀបរបស់ប្រព័ន្ធ</translation> </message> <message> <source>&Copy</source> - <translation>&ចម្លង</translation> + <translation>ចម្លង</translation> </message> <message> <source>C&lose</source> - <translation>&បិទ</translation> + <translation>បិទ</translation> </message> <message> <source>Delete the currently selected address from the list</source> - <translation>លុបអាសយដ្ឋានដែលបានរើសពីបញ្ជី</translation> + <translation>លុបអាសយដ្ឋានដែលបានជ្រើសពីបញ្ជី</translation> + </message> + <message> + <source>Enter address or label to search</source> + <translation>វាយអាសយដ្ឋាន រឺស្លាកដើម្បីស្វែងរក</translation> </message> <message> <source>Export the data in the current tab to a file</source> - <translation>នាំចេញទិន្នន័យនៃថេបបច្ចុប្បន្នទៅជាឯកសារ</translation> + <translation>នាំចេញទិន្នន័យនៃផ្ទាំងបច្ចុប្បន្នទៅជាឯកសារ</translation> </message> <message> <source>&Export</source> - <translation>&នាំចេញ</translation> + <translation>នាំចេញ</translation> </message> <message> <source>&Delete</source> - <translation>&លុប</translation> + <translation>លុប</translation> </message> <message> <source>Choose the address to send coins to</source> - <translation>ជ្រើសរើសអាស្រយដើម្បីផ្ញើរកាកជាមួយ</translation> + <translation>ជ្រើសរើសអាសយដ្ឋានដើម្បីផ្ញើកាក់ទៅ</translation> </message> <message> <source>Choose the address to receive coins with</source> - <translation>ជ្រើសរើសអាស្រយដើម្បីទទួលកាក់ជាមួយ -</translation> + <translation>ជ្រើសរើសអាសយដ្ឋានដើម្បីទទួលយកកាក់ជាមួយ</translation> </message> <message> <source>C&hoose</source> - <translation>&ជ្រើសរើស</translation> + <translation>ជ្រើសរើស</translation> </message> <message> <source>Sending addresses</source> - <translation>អាសយដ្ឋានផ្ញើ</translation> + <translation>អាសយដ្ឋានដែលផ្ញើ</translation> </message> <message> <source>Receiving addresses</source> - <translation>អាសយដ្ឋានទទួួល</translation> + <translation>អាសយដ្ឋានដែលទទួល</translation> + </message> + <message> + <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> + <translation>ទាំងនេះគឺជាអាសយដ្ឋាន Bitcoin របស់អ្នកសម្រាប់ធ្វើការផ្ញើការបង់ប្រាក់។ តែងតែពិនិត្យមើលចំនួនប្រាក់ និងអាសយដ្ឋានដែលទទួល មុនពេលផ្ញើប្រាក់។</translation> + </message> + <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>ទាំងនេះគឺជាអាសយដ្ឋាន Bitcoin របស់អ្នកសម្រាប់ធ្វើការទទួលបង់ប្រាក់។ ប្រើប៊ូតុង "បង្កើតអាសយដ្ឋានទទួលថ្មី" ស្ថិតក្នុងផ្ទាំងទទួល ដើម្បីបង្កើតអាសយដ្ឋានថ្មីមួយ។</translation> </message> <message> <source>&Copy Address</source> - <translation>&ចម្លងអាស្រយដ្ឋាន</translation> + <translation>ចម្លងអាសយដ្ឋាន</translation> </message> <message> <source>Copy &Label</source> - <translation>ចម្លង&ឡាបែល</translation> + <translation>ចម្លង ស្លាក</translation> </message> <message> <source>&Edit</source> - <translation>&កែ</translation> + <translation>កែសម្រួល</translation> + </message> + <message> + <source>Export Address List</source> + <translation>នាំចេញនូវបញ្ជីអាសយដ្ឋាន</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>ឯកសារបំបែកដោយក្បៀស (*.csv)</translation> </message> <message> <source>Exporting Failed</source> - <translation>បរាជ័យការបញ្ជូនចេញ</translation> + <translation>ការនាំចេញបានបរាជ័យ</translation> </message> - </context> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>ទាំងនេះជាកំហុសព្យាយាម ដើម្បីរក្សាទុកបញ្ជីអាសយដ្ឋានទៅ %1 ។ សូមព្យាយាមម្ដងទៀត។</translation> + </message> +</context> <context> <name>AddressTableModel</name> <message> <source>Label</source> - <translation>ឡាបែល</translation> + <translation>ស្លាក</translation> </message> <message> <source>Address</source> @@ -91,65 +114,289 @@ </message> <message> <source>(no label)</source> - <translation>(គ្មានឡាបែល)</translation> + <translation>(គ្មានស្លាក)</translation> </message> </context> <context> <name>AskPassphraseDialog</name> <message> + <source>Passphrase Dialog</source> + <translation>ការហៅឃ្លាសម្ងាត់</translation> + </message> + <message> <source>Enter passphrase</source> - <translation>បញ្ចូលពាក្យសម្ងាត់</translation> + <translation>បញ្ចូលឃ្លាសម្ងាត់</translation> </message> <message> <source>New passphrase</source> - <translation>ពាក្យសម្ងាត់ថ្មី</translation> + <translation>ឃ្លាសម្ងាត់ថ្មី</translation> </message> <message> <source>Repeat new passphrase</source> - <translation>វាយពាក្យសម្ងាត់ម្ដងទៀត</translation> + <translation>ឃ្លាសម្ងាត់ថ្នីម្ដងទៀត</translation> + </message> + <message> + <source>Show passphrase</source> + <translation>បង្ហាញឃ្លាសម្ងាត់</translation> </message> <message> <source>Encrypt wallet</source> - <translation>កាបូបអែនក្រីព</translation> + <translation>អ៊ិនគ្រីបកាបូបចល័ត</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>ប្រតិបត្តិការនេះ ត្រូវការឃ្លាសម្ងាត់កាបូបចល័តរបស់អ្នក ដើម្បីដោះសោរកាបូបចល័ត។</translation> </message> <message> <source>Unlock wallet</source> - <translation>ដោះសោរកាបូបលុយ</translation> + <translation>ដោះសោរកាបូបចល័ត</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>ប្រតិបត្តិការនេះ ត្រូវការឃ្លាសម្ងាត់កាបូបចល័តរបស់អ្នក ដើម្បីឌិគ្រីបកាបូបចល័ត។</translation> </message> <message> <source>Decrypt wallet</source> - <translation>កាបូប ឌីក្រីព</translation> + <translation>ឌិគ្រីបកាបូបចល័ត</translation> </message> <message> <source>Change passphrase</source> - <translation>ប្ដូរពាក្យសម្ងាត់</translation> + <translation>ផ្លាស់ប្ដូរឃ្លាសម្ងាត់</translation> </message> <message> <source>Confirm wallet encryption</source> - <translation>បញ្ជាក់ការសំរេចចិត្តកាបូបការអែនក្រីព</translation> + <translation>បញ្ជាក់ការអ៊ិនគ្រីបកាបូបចល័ត</translation> + </message> + <message> + <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> + <translation>ការព្រមាន៖ ប្រសិនបើអ្នកអ៊ិនគ្រីបកាបូបចល័តរបស់អ្នក ហើយអ្នកភ្លេចបាត់ឃ្លាសម្ងាត់ នោះអ្នកនិង <b>បាត់បង់ BITCOINS របស់អ្នកទាំងអស់</b>!</translation> + </message> + <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>តើអ្នកពិតជាចង់អ៊ិនគ្រីបកាបូបចល័តរបស់អ្នកឬ?</translation> </message> <message> <source>Wallet encrypted</source> - <translation>កាបូប ដែលអែនក្រីព</translation> + <translation>កាបូបចល័ត ដែលបានអ៊ិនគ្រីប</translation> + </message> + <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>បញ្ចូលឃ្លាសម្ងាត់សំរាប់កាបូប។ សូមប្រើឃ្លាសម្ងាត់ពី១០ តួរឬច្រើនជាងនេះ, ឬ ៨ពាក្យឬច្រើនជាងនេះ</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>វាយបញ្ចូលឃ្លាសម្ងាត់ចាស់ និងឃ្លាសសម្លាត់ថ្មី សម្រាប់កាបូបចល័តរបស់អ្នក។</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>កាបូបចល័ត ដែលត្រូវបានអ៊ិនគ្រីប</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>កាបូបចល័តរបស់អ្នក ជិតត្រូវបានអ៊ិនគ្រីបហើយ។</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>កាបូបចល័តរបស់អ្នក ឥឡូវត្រូវបានអ៊ិនគ្រីប។</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>កាបូបចល័ត បានអ៊ិនគ្រីបបរាជ័យ</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>ការអ៊ិនគ្រីបកាបូបចល័ត បានបរាជ័យដោយសារកំហុសខាងក្នុង។ កាបូបចល័តរបស់អ្នកមិនត្រូវបានអ៊ិនគ្រីបទេ។</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>ឃ្លាសម្ងាត់ ដែលបានផ្គត់ផ្គង់មិនត្រូវគ្នាទេ។</translation> </message> <message> <source>Wallet unlock failed</source> - <translation>បរាជ័យដោះសោរកាបូប</translation> + <translation>បរាជ័យដោះសោរកាបូបចល័ត</translation> </message> - </context> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>ឃ្លាសម្ងាត់ ដែលបានបញ្ចូលសម្រាប់ការអ៊ិនគ្រីបកាបូបចល័តគឺមិនត្រឹមត្រូវទេ។</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>កាបូបចល័ត បានអ៊ិនគ្រីបបរាជ័យ</translation> + </message> + <message> + <source>Wallet passphrase was successfully changed.</source> + <translation>ឃ្លាសម្ងាត់នៃកាបូបចល័ត ត្រូវបានផ្លាស់ប្តូរដោយជោគជ័យ។</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>ការព្រមាន៖ ឃី Caps Lock គឺបើក!</translation> + </message> +</context> <context> <name>BanTableModel</name> <message> + <source>IP/Netmask</source> + <translation>IP/Netmask</translation> + </message> + <message> <source>Banned Until</source> - <translation>ផ្អាកដល់</translation> + <translation>បានហាមឃាត់រហូតដល់</translation> </message> </context> <context> <name>BitcoinGUI</name> <message> + <source>Sign &message...</source> + <translation>ស៊ីញ៉េសារ...</translation> + </message> + <message> + <source>Synchronizing with network...</source> + <translation>កំពុងធ្វើសមកាលកម្ម ជាមួយបណ្ដាញ...</translation> + </message> + <message> + <source>&Overview</source> + <translation>ទិដ្ឋភាពទូទៅ</translation> + </message> + <message> + <source>Show general overview of wallet</source> + <translation>បង្ហាញទិដ្ឋភាពទូទៅនៃកាបូបចល័ត</translation> + </message> + <message> + <source>&Transactions</source> + <translation>ប្រតិបត្តិការ</translation> + </message> + <message> + <source>Browse transaction history</source> + <translation>រកមើលប្រវត្តិប្រតិបត្តិការ</translation> + </message> + <message> + <source>E&xit</source> + <translation>ចាកចេញ</translation> + </message> + <message> + <source>Quit application</source> + <translation>បោះបង់កម្មវិធី</translation> + </message> + <message> + <source>&About %1</source> + <translation>អំពី %1</translation> + </message> + <message> + <source>Show information about %1</source> + <translation>បង្ហាញពត៌មានអំពី %1</translation> + </message> + <message> + <source>About &Qt</source> + <translation>អំពី Qt</translation> + </message> + <message> + <source>Show information about Qt</source> + <translation>បង្ហាញពត៌មានអំពី Qt</translation> + </message> + <message> + <source>&Options...</source> + <translation>ជម្រើស...</translation> + </message> + <message> + <source>Modify configuration options for %1</source> + <translation>កែប្រែជម្រើសកំណត់រចនាសម្ព័ន្ធសម្រាប់ %1</translation> + </message> + <message> + <source>&Encrypt Wallet...</source> + <translation>អ៊ិនគ្រីបកាបូបចល័ត...</translation> + </message> + <message> + <source>&Backup Wallet...</source> + <translation>បម្រុងទុកកាបូបចល័ត...</translation> + </message> + <message> + <source>&Change Passphrase...</source> + <translation>ផ្លាស់ប្ដូរឃ្លាសម្ងាត់...</translation> + </message> + <message> + <source>Open &URI...</source> + <translation>បើក URL...</translation> + </message> + <message> + <source>Create Wallet...</source> + <translation>បង្កើតកាបូបចល័ត...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>បង្កើតកាបូបចល័តថ្មី</translation> + </message> + <message> + <source>Wallet:</source> + <translation>កាបូបចល័ត៖</translation> + </message> + <message> + <source>Click to disable network activity.</source> + <translation>ចុចដើម្បីផ្ដាច់សកម្មភាពបណ្ដាញ។</translation> + </message> + <message> + <source>Network activity disabled.</source> + <translation>សកម្មភាពបណ្ដាញត្រូវបានផ្ដាច់។</translation> + </message> + <message> + <source>Click to enable network activity again.</source> + <translation>ចុចដើម្បីភ្ជាប់សកម្មភាពនៃបណ្ដាញឡើងវិញ។</translation> + </message> + <message> + <source>Syncing Headers (%1%)...</source> + <translation>កំពុងសមកាល បឋមកថា (%1%)...</translation> + </message> + <message> + <source>Reindexing blocks on disk...</source> + <translation>កំពុងធ្ចើសន្ទស្សន៍ប្លុកឡើងវិញលើថាស...</translation> + </message> + <message> + <source>Proxy is <b>enabled</b>: %1</source> + <translation>ប្រូកស៊ី ត្រូវបាន <b>អនុញ្ញាត</b>៖ %1</translation> + </message> + <message> <source>Send coins to a Bitcoin address</source> <translation>ផ្ញើកាក់ទៅកាន់ អាសយដ្ឋាន Bitcoin មួយ</translation> </message> + <message> + <source>Backup wallet to another location</source> + <translation>បម្រុកទុកនូវកាបូបចល័ត ទៅទីតាំងមួយផ្សេងទៀត</translation> + </message> + <message> + <source>Change the passphrase used for wallet encryption</source> + <translation>ផ្លាស់ប្ដូរឃ្លាសម្ងាត់ ដែលបានប្រើសម្រាប់ការអ៊ិនគ្រីបកាបូបចល័ត</translation> + </message> + <message> + <source>&Verify message...</source> + <translation>ផ្ទៀងផ្ទាត់សារ...</translation> + </message> + <message> + <source>&Send</source> + <translation>ផ្ងើ</translation> + </message> + <message> + <source>&Receive</source> + <translation>ទទួល</translation> + </message> + <message> + <source>&Show / Hide</source> + <translation>បង្ហាញ/លាក់បាំង</translation> + </message> + <message> + <source>Show or hide the main Window</source> + <translation>បង្ហាញ រឺលាក់ផ្ទាំងវីនដូដើម</translation> + </message> + <message> + <source>&File</source> + <translation>ឯកសារ</translation> + </message> + <message> + <source>&Settings</source> + <translation>ការកំណត់</translation> + </message> + <message> + <source>Error</source> + <translation>បញ្ហា</translation> + </message> </context> <context> <name>CoinControlDialog</name> @@ -163,6 +410,14 @@ </context> <context> <name>CreateWalletDialog</name> + <message> + <source>Create Wallet</source> + <translation>បង្កើតកាបូប</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>ឈ្មោះកាបូប</translation> + </message> </context> <context> <name>EditAddressDialog</name> @@ -175,6 +430,18 @@ </context> <context> <name>Intro</name> + <message> + <source>Welcome</source> + <translation>សូមស្វាគមន៍</translation> + </message> + <message> + <source>Bitcoin</source> + <translation>Bitcoin</translation> + </message> + <message> + <source>Error</source> + <translation>បញ្ហា</translation> + </message> </context> <context> <name>ModalOverlay</name> @@ -187,6 +454,10 @@ </context> <context> <name>OptionsDialog</name> + <message> + <source>Error</source> + <translation>បញ្ហា</translation> + </message> </context> <context> <name>OverviewPage</name> @@ -274,6 +545,10 @@ <context> <name>TransactionView</name> <message> + <source>Comma separated file (*.csv)</source> + <translation>ឯកសារបំបែកដោយក្បៀស (*.csv)</translation> + </message> + <message> <source>Label</source> <translation>ឡាបែល</translation> </message> diff --git a/src/qt/locale/bitcoin_ko.ts b/src/qt/locale/bitcoin_ko.ts index 7cc6797c21..b79d53a74a 100644 --- a/src/qt/locale/bitcoin_ko.ts +++ b/src/qt/locale/bitcoin_ko.ts @@ -188,6 +188,22 @@ <translation>지갑의 이전 비밀번호와 새로운 비밀번호를 입력하세요.</translation> </message> <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>지갑을 암호화 해도 컴퓨터에 바이러스가 있을시 안전하기 않다는 것을 참고하세요.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>암호화할 지갑</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>지갑이 바로 암호화 됩니다.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>지갑이 암호화 되었습니다.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>중요: 본인 지갑 파일에서 만든 예전 백업들은 새로 생성한 암호화된 지갑 파일로 교체해야 합니다. 보안상 이유로, 새 암호화된 지갑을 사용하게 되면 이전에 암호화하지 않은 지갑 파일의 백업은 사용할 수 없게 됩니다.</translation> </message> @@ -310,6 +326,14 @@ <translation>&URI 열기...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>지갑 생성하기...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>새로운 지갑 생성하기</translation> + </message> + <message> <source>Wallet:</source> <translation>지갑:</translation> </message> @@ -458,6 +482,14 @@ <translation>최신의</translation> </message> <message> + <source>Node window</source> + <translation>노드 창</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>노드 디버깅 및 진단 콘솔 열기 </translation> + </message> + <message> <source>&Sending addresses</source> <translation>보내는 주소(&S)</translation> </message> @@ -466,6 +498,10 @@ <translation>받는 주소(&R)</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>bitcoin: URI 열기</translation> + </message> + <message> <source>Open Wallet</source> <translation>지갑 열기</translation> </message> @@ -526,6 +562,10 @@ <translation>오류: %1</translation> </message> <message> + <source>Warning: %1</source> + <translation>경고: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>날짜: %1 @@ -747,10 +787,50 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>지갑 <b>%1</b> 생성중...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>지갑 생성하기 실패</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>지갑 생성 경고</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>지갑 생성하기</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>지갑 이름</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>지갑 암호화하기. 해당 지갑은 당신이 설정한 문자열 비밀번호로 암호화될 겁니다.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>지갑 암호화</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>개인키 비활성화 하기</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>빈 지갑 만들기</translation> + </message> + <message> + <source>Create</source> + <translation>생성하기</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -914,7 +994,11 @@ <source>(of %n GB needed)</source> <translation><numerusform>(%n GB가 필요)</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(%n GB needed for full chain)</source> + <translation><numerusform>(Full 체인이 되려면 %n GB 가 필요합니다)</numerusform></translation> + </message> +</context> <context> <name>ModalOverlay</name> <message> @@ -962,6 +1046,10 @@ <translation>숨기기</translation> </message> <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>알 수 없음. 헤더 동기화 중(%1,%2%)...</translation> </message> @@ -969,6 +1057,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>비트코인 URI 열기</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -976,6 +1068,14 @@ <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet failed</source> + <translation>지갑 열기 실패</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>지갑 열기 경고</translation> + </message> + <message> <source>default wallet</source> <translation>기본 지갑</translation> </message> @@ -1353,6 +1453,18 @@ <translation>'bitcoin://"은 잘못된 URI입니다. 'bitcoin:'을 사용하십시오.</translation> </message> <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>BIP70을 지원하지 않아서 지불 요청을 처리할 수 없습니다.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>BIP70의 보안적 결함 때문에 상점에 불문하고 "지갑을 바꾸라"라는 권고 또는 지시는 대부분의 경우 무시하는 방법을 강력하게 권장합니다.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>만약 이 오류 메시지가 보인다면, 상점에 BIP21이 호환되는 URI를 제공해달라고 요청해주세요.</translation> + </message> + <message> <source>Invalid payment address %1</source> <translation>잘못된 지불 주소 %1</translation> </message> @@ -1514,6 +1626,10 @@ <translation>URI를 QR 코드로 인코딩하는 중 오류가 발생했습니다.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>QR 코드를 지원하지 않습니다.</translation> + </message> + <message> <source>Save QR Code</source> <translation>QR코드 저장</translation> </message> @@ -1657,6 +1773,10 @@ <translation>유저 에이전트</translation> </message> <message> + <source>Node window</source> + <translation>노드 창</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>%1 디버그 로그파일을 현재 데이터 폴더에서 엽니다. 용량이 큰 로그 파일들은 몇 초가 걸릴 수 있습니다.</translation> </message> @@ -1868,6 +1988,10 @@ <translation>요청할 금액 입력칸으로 선택 사항입니다. 빈 칸으로 두거나 특정 금액이 필요하지 않는 경우 0을 입력하세요.</translation> </message> <message> + <source>&Create new receiving address</source> + <translation>&새 받을 주소 생성하기</translation> + </message> + <message> <source>Clear all fields of the form.</source> <translation>양식의 모든 필드를 지웁니다.</translation> </message> @@ -2117,6 +2241,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>더스트:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>거래 수수료 설정 숨기기</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>거래량이 블록에 남은 공간보다 적은 경우에는 채굴자나 중계 노드들이 최소 수수료를 허용할 수 있습니다. 최소 수수료만 지불하는건 괜찮지만, 네트워크가 처리할 수 있는 용량을 넘는 비트코인 거래가 있을 경우에는 이 거래가 승인이 안될 수 있다는 점을 유의하세요.</translation> </message> @@ -2185,6 +2313,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>%1(%2 블록)</translation> </message> <message> + <source> from wallet '%1'</source> + <translation>%1 지갑에서</translation> + </message> + <message> + <source>%1 to '%2'</source> + <translation>%1을(를) %2(으)로</translation> + </message> + <message> <source>%1 to %2</source> <translation>%1을(를) %2(으)로</translation> </message> @@ -2217,10 +2353,30 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>총액</translation> </message> <message> + <source>To review recipient list click "Show Details..."</source> + <translation>수령인 목록을 검토하려면 "거래 세부 내역 보기" 를 클릭하십시오</translation> + </message> + <message> <source>Confirm send coins</source> <translation>코인 전송을 확인</translation> </message> <message> + <source>Copy PSBT to clipboard</source> + <translation>PSBT를 클립보드에 복사</translation> + </message> + <message> + <source>Send</source> + <translation>보내기</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT 복사됨</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>조회전용 잔액:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>수령인 주소가 정확하지 않습니다. 재확인 바랍니다</translation> </message> @@ -2474,6 +2630,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>지갑 잠금 해제를 취소했습니다.</translation> </message> <message> + <source>No error</source> + <translation>오류 없음</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>입력한 주소에 대한 개인키가 없습니다.</translation> </message> @@ -2648,6 +2808,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>출력 인덱스</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(인증서가 확인되지 않았습니다)</translation> + </message> + <message> <source>Merchant</source> <translation>상점</translation> </message> @@ -2971,6 +3135,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>지갑 닫기</translation> </message> <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>정말로 지갑 <i>%1</i> 을 닫겠습니까?</translation> + </message> + <message> <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> <translation>블록축소를 하고 지갑을 너무 오랫동안 닫으면 체인 전체를 다시 동기화해야 할 수도 있습니다.</translation> </message> @@ -3017,6 +3185,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>수수료 상향 승인</translation> </message> <message> + <source>PSBT copied</source> + <translation>PSBT 복사됨</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>거래에 서명 할 수 없습니다.</translation> </message> @@ -3183,6 +3355,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>손상된 블록 데이터베이스가 감지되었습니다</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>asmap file %s 을/를 찾을 수 없습니다</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>asmap file %s 을/를 파싱할 수 없습니다</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>블록 데이터베이스를 다시 생성하시겠습니까?</translation> </message> @@ -3239,6 +3419,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>무결성 확인 초기화가 실패했습니다. %s가 종료됩니다.</translation> </message> <message> + <source>Invalid P2P permission: '%s'</source> + <translation>잘못된 P2P 권한: '%s'</translation> + </message> + <message> <source>Invalid amount for -%s=<amount>: '%s'</source> <translation>유효하지 않은 금액 -%s=<amount>: '%s'</translation> </message> @@ -3255,6 +3439,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>지정한 블록 디렉토리 "%s" 가 존재하지 않습니다.</translation> </message> <message> + <source>Unknown change type '%s'</source> + <translation>알 수 없는 변경 형식 '%s'</translation> + </message> + <message> <source>Upgrading txindex database</source> <translation>txindex 데이터베이스 업테이트중</translation> </message> @@ -3263,6 +3451,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>P2P 주소 불러오는 중...</translation> </message> <message> + <source>Error: Disk space is too low!</source> + <translation>오류: 디스크 공간이 부족합니다!</translation> + </message> + <message> <source>Loading banlist...</source> <translation>추방리스트를 불러오는 중...</translation> </message> @@ -3371,6 +3563,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>-whitebind: '%s' 를 이용하여 포트를 지정해야 합니다</translation> </message> <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>블록 축소 모드는 -blockfileterindex와 호환되지 않습니다.</translation> + </message> + <message> <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> <translation>시스템 한계로 인하여 -maxconnections를 %d 에서 %d로 줄였습니다.</translation> </message> @@ -3429,6 +3625,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>초기 키값 생성 불가</translation> </message> <message> + <source>Unknown -blockfilterindex value %s.</source> + <translation>알 수 없는 -blockfileterindex 값 %s.</translation> + </message> + <message> <source>Verifying wallet(s)...</source> <translation>지갑 검증중...</translation> </message> diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/bitcoin_lt.ts index afdc7ffb8d..7024bff0a2 100644 --- a/src/qt/locale/bitcoin_lt.ts +++ b/src/qt/locale/bitcoin_lt.ts @@ -70,6 +70,10 @@ <translation>Tai yra jūsų Bitcoin adresai išeinantiems mokėjimams. Visada pasitikrinkite sumą ir gavėjo adresą prieš siunčiant lėšas.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>Tai jūsų Bitcoin mokėjimų gavimo adresai. Naudokite 'Sukurti naują gavimo adresą' migtuką gavimų skirtuke kad sukurtumėt nauja adresą.</translation> + </message> + <message> <source>&Copy Address</source> <translation>&Kopijuoti adresą</translation> </message> @@ -176,6 +180,10 @@ <translation>Piniginė užšifruota</translation> </message> <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Įveskite seną ir naują slaptažodį.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>SVARBU: Betkokios ankstesnės jūsų piniginės atsarginės kopijos turėtų būti pakeistos naujai sugeneruotu, užšifruotu piniginės failu. Dėl saugumo sumetimų, anstesnės neužšifruotos piniginės kopijos failas taps nenaudingu nuo momento, kai nauja ir užšifruota piniginė bus pradėta naudoti.</translation> </message> @@ -298,6 +306,14 @@ <translation>Atidaryti &URI...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>Sukurti piniginę...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Sukurti naują piniginę</translation> + </message> + <message> <source>Wallet:</source> <translation>Piniginė</translation> </message> @@ -478,6 +494,10 @@ <translation>numatyta piniginė</translation> </message> <message> + <source>No wallets available</source> + <translation>Piniginių nėra</translation> + </message> + <message> <source>&Window</source> <translation>&Langas</translation> </message> @@ -510,6 +530,10 @@ <translation>Klaida: %1</translation> </message> <message> + <source>Warning: %1</source> + <translation>Įspėjimas: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>Data: %1 @@ -731,10 +755,50 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>Sukuriama Piniginė <b>%1</b>...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>Piniginės sukurimas nepavyko</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Piniginės sukurimo įspėjimas</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Sukurti Piniginę</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Piniginės Pavadinimas</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Užkoduoti piniginę. Piniginė bus užkoduota jūsų pasirinkta slapta fraze.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Užkoduoti Piniginę</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Atjungti Privačius Raktus</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Sukurti Tuščia Piniginę</translation> + </message> + <message> + <source>Create</source> + <translation>Sukurti</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -867,6 +931,10 @@ <translation>Bitcoin</translation> </message> <message> + <source>Discard blocks after verification, except most recent %1 GB (prune)</source> + <translation>Ištrinti blokus po patikrinimo, išskyrus paskutinius %1 GB (nukarpimas)</translation> + </message> + <message> <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> <translation>Šiame kataloge bus saugomi bent %1 GB duomenų, kurie laikui bėgant didės.</translation> </message> @@ -960,6 +1028,14 @@ <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet failed</source> + <translation>Piniginės atidarymas nepavyko</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>Piniginės atidarymo įspėjimas</translation> + </message> + <message> <source>default wallet</source> <translation>numatyta piniginė</translation> </message> @@ -1498,6 +1574,10 @@ <translation>Klaida koduojant URI į QR kodą.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>QR kodas nepalaikomas</translation> + </message> + <message> <source>Save QR Code</source> <translation>Įrašyti QR kodą</translation> </message> @@ -2169,6 +2249,14 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat <translation>%1 (%2 blokai)</translation> </message> <message> + <source> from wallet '%1'</source> + <translation>iš piniginės '%1'</translation> + </message> + <message> + <source>%1 to '%2'</source> + <translation>'%1' į '%2'</translation> + </message> + <message> <source>%1 to %2</source> <translation>%1 iki %2</translation> </message> @@ -2918,6 +3006,10 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat <source>Close wallet</source> <translation>Uždaryti Piniginę</translation> </message> + <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Ar tikrai norite uždaryti piniginę <i>%1</i>?</translation> + </message> </context> <context> <name>WalletFrame</name> @@ -3091,6 +3183,10 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat <translation>Importuojama...</translation> </message> <message> + <source>Unknown address type '%s'</source> + <translation>Nežinomas adreso tipas '%s'</translation> + </message> + <message> <source>Upgrading txindex database</source> <translation>Txindex duomenų bazės atnaujinimas</translation> </message> @@ -3099,6 +3195,10 @@ Pastaba: Kadangi mokestis apskaičiuojamas pagal baitą, mokestis už „100 sat <translation>Užkraunami P2P adresai...</translation> </message> <message> + <source>Error: Disk space is too low!</source> + <translation>Klaida: Diske mažai vietos!</translation> + </message> + <message> <source>Loading banlist...</source> <translation>Įkeliamas draudžiamas sąrašas...</translation> </message> diff --git a/src/qt/locale/bitcoin_lv.ts b/src/qt/locale/bitcoin_lv.ts index a5c96c1a2a..360b2735c0 100644 --- a/src/qt/locale/bitcoin_lv.ts +++ b/src/qt/locale/bitcoin_lv.ts @@ -50,6 +50,18 @@ <translation>Izvēlies adresi ar kuru saņemt bitcoins</translation> </message> <message> + <source>C&hoose</source> + <translation>Izvēlēties</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Adrešu nosūtīšana</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Adrešu saņemšana</translation> + </message> + <message> <source>&Copy Address</source> <translation>&Kopēt adresi</translation> </message> diff --git a/src/qt/locale/bitcoin_ml.ts b/src/qt/locale/bitcoin_ml.ts index 299d81bf75..2bb3380659 100644 --- a/src/qt/locale/bitcoin_ml.ts +++ b/src/qt/locale/bitcoin_ml.ts @@ -67,6 +67,10 @@ <translation>പേയ്മെന്റുകൾ അയയ്ക്കുന്നതിനുള്ള നിങ്ങളുടെ ബിറ്റ്കോയിൻ വിലാസങ്ങളാണ് ഇവ. നാണയങ്ങൾ അയയ്ക്കുന്നതിനുമുമ്പ് എല്ലായ്പ്പോഴും തുകയും സ്വീകരിക്കുന്ന വിലാസവും പരിശോധിക്കുക.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>ഇവയാണ് പണം സ്വീകരിയ്ക്കുന്നതിനായുള്ള താങ്കളുടെ വിലാസങ്ങൾ. പുതിയ വിലാസങ്ങൾ കൂട്ടിച്ചേർക്കുന്നതിനായി ' പുതിയ വിലാസം സൃഷ്ടിയ്ക്കുക ' എന്ന ബട്ടൺ അമർത്തുക.</translation> + </message> + <message> <source>&Copy Address</source> <translation>&വിലാസം പകർത്തുക</translation> </message> @@ -129,6 +133,10 @@ <translation>പുതിയ രഹസ്യപദപ്രയോഗം ആവർത്തിക്കുക</translation> </message> <message> + <source>Show passphrase</source> + <translation>രഹസ്യപദം കാണിക്കുക </translation> + </message> + <message> <source>Encrypt wallet</source> <translation>വാലറ്റ് എൻക്രിപ്റ്റ് ചെയ്യുക</translation> </message> @@ -160,16 +168,174 @@ <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> <translation>മുന്നറിയിപ്പ്: നിങ്ങളുടെ വാലറ്റ് എൻക്രിപ്റ്റ് ചെയ്ത് പാസ്ഫ്രെയ്സ് നഷ്ടപ്പെടുകയാണെങ്കിൽ, നിങ്ങളുടെ എല്ലാ ബിറ്റ്കൊയിനുകളും നഷ്ടപ്പെടും!</translation> </message> + <message> + <source>Wallet encrypted</source> + <translation>വാലറ്റ് എന്ക്രിപ്റ് ചെയ്തു കഴിഞ്ഞു .</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>വാലെറ്റിന്റെ പഴയ രഹസ്യപദവും പുതിയ രഹസ്യപദവും നൽകുക.</translation> + </message> </context> <context> <name>BanTableModel</name> </context> <context> <name>BitcoinGUI</name> + <message> + <source>Browse transaction history</source> + <translation>ഇടപാടുകളുടെ ചരിത്രം പരിശോധിയ്ക്കുക</translation> + </message> + <message> + <source>Error</source> + <translation>പിശക് </translation> + </message> + <message> + <source>Warning</source> + <translation>മുന്നറിയിപ്പ് </translation> + </message> + <message> + <source>Information</source> + <translation>വിവരം </translation> + </message> + <message> + <source>Open Wallet</source> + <translation>വാലറ്റ് തുറക്കുക </translation> + </message> + <message> + <source>Open a wallet</source> + <translation>ഒരു വാലറ്റ് തുറക്കുക </translation> + </message> + <message> + <source>Close Wallet...</source> + <translation>വാലറ്റ് പൂട്ടുക </translation> + </message> + <message> + <source>Close wallet</source> + <translation>വാലറ്റ് പൂട്ടുക </translation> + </message> + <message> + <source>default wallet</source> + <translation>സ്ഥിരം ആയ വാലറ്റ്</translation> + </message> + <message> + <source>No wallets available</source> + <translation>വാലറ്റ് ഒന്നും ലഭ്യം അല്ല </translation> + </message> + <message> + <source>Minimize</source> + <translation>ചെറുതാക്കുക </translation> + </message> + <message> + <source>Zoom</source> + <translation>വലുതാക്കുക </translation> + </message> + <message> + <source>Main Window</source> + <translation>മുഖ്യ ജാലകം </translation> + </message> + <message> + <source>Connecting to peers...</source> + <translation>സുഹൃത്തുക്കളും ആയി കണക്ട് ചെയ്യുന്നു ...</translation> + </message> + <message> + <source>Error: %1</source> + <translation>തെറ്റ് : %1 </translation> + </message> + <message> + <source>Warning: %1</source> + <translation>മുന്നറിയിപ്പ് : %1 </translation> + </message> + <message> + <source>Date: %1 +</source> + <translation>തീയതി: %1 +</translation> + </message> + <message> + <source>Amount: %1 +</source> + <translation>തുക : %1 +</translation> + </message> + <message> + <source>Wallet: %1 +</source> + <translation>വാലറ്റ്: %1 +</translation> + </message> + <message> + <source>Label: %1 +</source> + <translation>കുറിപ്പ് : %1 +</translation> + </message> + <message> + <source>Address: %1 +</source> + <translation>മേൽവിലാസം : %1 +</translation> + </message> + <message> + <source>Sent transaction</source> + <translation>അയച്ച ഇടപാടുകൾ </translation> + </message> + <message> + <source>Incoming transaction</source> + <translation>വരവ്വ് വെച്ച ഇടപാടുകൾ </translation> + </message> </context> <context> <name>CoinControlDialog</name> <message> + <source>Coin Selection</source> + <translation>കോയിൻ തിരഞ്ഞെടുക്കൽ </translation> + </message> + <message> + <source>Quantity:</source> + <translation>നിര്ദ്ധിഷ്ടസംഖ്യ / അളവ് :</translation> + </message> + <message> + <source>Bytes:</source> + <translation>ബൈറ്റ്സ്:</translation> + </message> + <message> + <source>Amount:</source> + <translation>തുക:</translation> + </message> + <message> + <source>Fee:</source> + <translation>ഫീസ് / പ്രതിഫലം :</translation> + </message> + <message> + <source>List mode</source> + <translation>പട്ടിക </translation> + </message> + <message> + <source>Amount</source> + <translation>തുക </translation> + </message> + <message> + <source>Received with label</source> + <translation>അടയാളത്തോടുകൂടി ലഭിച്ചു </translation> + </message> + <message> + <source>Received with address</source> + <translation>മേൽവിലാസത്തോടുകൂടി ലഭിച്ചു </translation> + </message> + <message> + <source>Date</source> + <translation>തീയതി </translation> + </message> + <message> + <source>Confirmations</source> + <translation>സ്ഥിതീകരണങ്ങൾ </translation> + </message> + <message> + <source>Confirmed</source> + <translation>സ്ഥിതീകരിച്ചു</translation> + </message> + <message> <source>(no label)</source> <translation>(ലേബൽ ഇല്ല)</translation> </message> @@ -179,33 +345,77 @@ </context> <context> <name>CreateWalletDialog</name> + <message> + <source>Create Wallet</source> + <translation>വാലറ്റ് / പണസഞ്ചി സൃഷ്ടിക്കുക :</translation> + </message> </context> <context> <name>EditAddressDialog</name> </context> <context> <name>FreespaceChecker</name> + <message> + <source>name</source> + <translation>നാമധേയം / പേര് </translation> + </message> </context> <context> <name>HelpMessageDialog</name> </context> <context> <name>Intro</name> + <message> + <source>Error</source> + <translation>പിശക് </translation> + </message> </context> <context> <name>ModalOverlay</name> + <message> + <source>Unknown...</source> + <translation>അജ്ഞാതമായ </translation> + </message> + <message> + <source>Progress</source> + <translation>പുരോഗതി</translation> + </message> + <message> + <source>calculating...</source> + <translation>കണക്കായ്ക്കിക്കൊണ്ടിരിക്കുന്നു</translation> + </message> </context> <context> <name>OpenURIDialog</name> </context> <context> <name>OpenWalletActivity</name> + <message> + <source>default wallet</source> + <translation>സ്ഥിരം ആയ വാലറ്റ്</translation> + </message> </context> <context> <name>OptionsDialog</name> + <message> + <source>Error</source> + <translation>പിശക് </translation> + </message> </context> <context> <name>OverviewPage</name> + <message> + <source>Available:</source> + <translation>ലഭ്യമായ</translation> + </message> + <message> + <source>Spendable:</source> + <translation>വിനിയോഗിക്കാവുന്നത് / ചെലവാക്കാവുന്നത് </translation> + </message> + <message> + <source>Recent transactions</source> + <translation>സമീപ കാല ഇടപാടുകൾ</translation> + </message> </context> <context> <name>PaymentServer</name> @@ -215,6 +425,14 @@ </context> <context> <name>QObject</name> + <message> + <source>Amount</source> + <translation>തുക </translation> + </message> + <message> + <source>Error: %1</source> + <translation>തെറ്റ് : %1 </translation> + </message> </context> <context> <name>QRImageWidget</name> @@ -232,6 +450,10 @@ <translation>വിലാസം</translation> </message> <message> + <source>Amount</source> + <translation>തുക </translation> + </message> + <message> <source>Label</source> <translation>ലേബൽ</translation> </message> @@ -239,6 +461,10 @@ <context> <name>RecentRequestsTableModel</name> <message> + <source>Date</source> + <translation>തീയതി </translation> + </message> + <message> <source>Label</source> <translation>ലേബൽ</translation> </message> @@ -250,6 +476,26 @@ <context> <name>SendCoinsDialog</name> <message> + <source>Quantity:</source> + <translation>നിര്ദ്ധിഷ്ടസംഖ്യ / അളവ് :</translation> + </message> + <message> + <source>Bytes:</source> + <translation>ബൈറ്റ്സ്:</translation> + </message> + <message> + <source>Amount:</source> + <translation>തുക:</translation> + </message> + <message> + <source>Fee:</source> + <translation>ഫീസ് / പ്രതിഫലം :</translation> + </message> + <message> + <source>Payment request expired.</source> + <translation>പെയ്മെന്റിനുള്ള അഭ്യർത്ഥന കാലഹരണപ്പെട്ടു പോയിരിക്കുന്നു. </translation> + </message> + <message> <source>(no label)</source> <translation>(ലേബൽ ഇല്ല)</translation> </message> @@ -268,6 +514,14 @@ </context> <context> <name>TransactionDesc</name> + <message> + <source>Date</source> + <translation>തീയതി </translation> + </message> + <message> + <source>Amount</source> + <translation>തുക </translation> + </message> </context> <context> <name>TransactionDescDialog</name> @@ -275,6 +529,10 @@ <context> <name>TransactionTableModel</name> <message> + <source>Date</source> + <translation>തീയതി </translation> + </message> + <message> <source>Label</source> <translation>ലേബൽ</translation> </message> @@ -290,6 +548,14 @@ <translation>കോമയാൽ വേർതിരിച്ച ഫയൽ (* .csv)</translation> </message> <message> + <source>Confirmed</source> + <translation>സ്ഥിതീകരിച്ചു</translation> + </message> + <message> + <source>Date</source> + <translation>തീയതി </translation> + </message> + <message> <source>Label</source> <translation>ലേബൽ</translation> </message> @@ -307,13 +573,21 @@ </context> <context> <name>WalletController</name> + <message> + <source>Close wallet</source> + <translation>വാലറ്റ് പൂട്ടുക </translation> + </message> </context> <context> <name>WalletFrame</name> </context> <context> <name>WalletModel</name> - </context> + <message> + <source>default wallet</source> + <translation>സ്ഥിരം ആയ വാലറ്റ്</translation> + </message> +</context> <context> <name>WalletView</name> <message> diff --git a/src/qt/locale/bitcoin_mr_IN.ts b/src/qt/locale/bitcoin_mr_IN.ts index 4a74385b29..05e85ec96c 100644 --- a/src/qt/locale/bitcoin_mr_IN.ts +++ b/src/qt/locale/bitcoin_mr_IN.ts @@ -30,6 +30,10 @@ <translation>सध्याचा निवडलेला पत्ता यादीमधून काढून टाका</translation> </message> <message> + <source>Enter address or label to search</source> + <translation>शोधण्यासाठी पत्ता किंवा लेबल दाखल करा</translation> + </message> + <message> <source>Export the data in the current tab to a file</source> <translation>सध्याच्या टॅबमधील डेटा एका फाईलमध्ये एक्स्पोर्ट करा</translation> </message> @@ -66,6 +70,10 @@ <translation>पैसे पाठविण्यासाठीचे हे तुमचे बिटकॉईन पत्त्ते आहेत. नाणी पाठविण्यापूर्वी नेहमी रक्कम आणि प्राप्त होणारा पत्ता तपासून पहा.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>पैसे प्राप्त करण्यासाठीचे हे आपले बिटकॉइन पत्ते आहेत. नवीन पत्ते तयार करण्यासाठी प्राप्त टॅबमधील 'नवीन प्राप्त करण्याचा पत्ता तयार करा' बटण वापरा.</translation> + </message> + <message> <source>&Copy Address</source> <translation>&पत्ता कॉपी करा</translation> </message> @@ -77,10 +85,30 @@ <source>&Edit</source> <translation>&संपादित</translation> </message> + <message> + <source>Export Address List</source> + <translation>पत्त्याची निर्यात करा</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>निर्यात अयशस्वी</translation> + </message> </context> <context> <name>AddressTableModel</name> - </context> + <message> + <source>Label</source> + <translation>लेबल</translation> + </message> + <message> + <source>Address</source> + <translation>पत्ता</translation> + </message> + <message> + <source>(no label)</source> + <translation>(लेबल नाही)</translation> + </message> +</context> <context> <name>AskPassphraseDialog</name> </context> @@ -92,6 +120,10 @@ </context> <context> <name>CoinControlDialog</name> + <message> + <source>(no label)</source> + <translation>(लेबल नाही)</translation> + </message> </context> <context> <name>CreateWalletActivity</name> @@ -146,13 +178,33 @@ </context> <context> <name>ReceiveRequestDialog</name> + <message> + <source>Address</source> + <translation>पत्ता</translation> + </message> + <message> + <source>Label</source> + <translation>लेबल</translation> + </message> </context> <context> <name>RecentRequestsTableModel</name> + <message> + <source>Label</source> + <translation>लेबल</translation> + </message> + <message> + <source>(no label)</source> + <translation>(लेबल नाही)</translation> + </message> </context> <context> <name>SendCoinsDialog</name> - </context> + <message> + <source>(no label)</source> + <translation>(लेबल नाही)</translation> + </message> +</context> <context> <name>SendCoinsEntry</name> </context> @@ -173,9 +225,29 @@ </context> <context> <name>TransactionTableModel</name> + <message> + <source>Label</source> + <translation>लेबल</translation> + </message> + <message> + <source>(no label)</source> + <translation>(लेबल नाही)</translation> + </message> </context> <context> <name>TransactionView</name> + <message> + <source>Label</source> + <translation>लेबल</translation> + </message> + <message> + <source>Address</source> + <translation>पत्ता</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>निर्यात अयशस्वी</translation> + </message> </context> <context> <name>UnitDisplayStatusBarControl</name> diff --git a/src/qt/locale/bitcoin_my.ts b/src/qt/locale/bitcoin_my.ts index 1b5248ba1a..ec03afa3b7 100644 --- a/src/qt/locale/bitcoin_my.ts +++ b/src/qt/locale/bitcoin_my.ts @@ -49,6 +49,18 @@ </context> <context> <name>BitcoinGUI</name> + <message> + <source>Error</source> + <translation>အမှား</translation> + </message> + <message> + <source>Warning</source> + <translation>သတိပေးချက်</translation> + </message> + <message> + <source>Information</source> + <translation>အချက်အလက်</translation> + </message> </context> <context> <name>CoinControlDialog</name> @@ -70,6 +82,10 @@ </context> <context> <name>Intro</name> + <message> + <source>Error</source> + <translation>အမှား</translation> + </message> </context> <context> <name>ModalOverlay</name> @@ -82,6 +98,10 @@ </context> <context> <name>OptionsDialog</name> + <message> + <source>Error</source> + <translation>အမှား</translation> + </message> </context> <context> <name>OverviewPage</name> diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/bitcoin_nb.ts index 7119de29ae..f24c1aa3b6 100644 --- a/src/qt/locale/bitcoin_nb.ts +++ b/src/qt/locale/bitcoin_nb.ts @@ -70,6 +70,10 @@ <translation>Dette er dine Bitcoin adresser for å sende å sende betalinger. Husk å sjekke beløp og mottager adresser før du sender mynter.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>Dette er dine Bitcoin adresse for å betalinger. Det er anbefalt å bruke en my mottager adresse for hver transakjon.</translation> + </message> + <message> <source>&Copy Address</source> <translation>&Kopier adresse</translation> </message> @@ -132,6 +136,10 @@ <translation>Repeter passorsetningen</translation> </message> <message> + <source>Show passphrase</source> + <translation>Vis adgangsfrase</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>Krypter lommeboken</translation> </message> @@ -172,10 +180,30 @@ <translation>Lommeboken er kryptert</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Angi den nye passordfrasen for lommeboken.<br/> Vennglist du bruker en passordfrase <b> ti eller tilfeldige tegn </b>, eller <b> åtte eller flere ord.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Svriv inn den gamle passfrasen og den nye passordfrasen for lommeboken.</translation> + </message> + <message> <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> <translation>Husk at å kryptere lommeboken ikke vil beskytte dine bitcoins fullstendig fra å bli stjålet av skadevare som infiserer datamaskinen din.</translation> </message> <message> + <source>Wallet to be encrypted</source> + <translation>Lommebok som skal bli kryptert</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Din lommebok er i ferd med å bli kryptert.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Din lommebok er nå kryptert.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>VIKTIG: Alle tidligere sikkerhetskopier du har tatt av lommebokfilen bør erstattes med den nye krypterte lommebokfilen. Av sikkerhetsgrunner vil tidligere sikkerhetskopier av lommebokfilen bli ubrukelige når du begynner å bruke den ny kypterte lommeboken.</translation> </message> @@ -298,6 +326,14 @@ <translation>Åpne &URI</translation> </message> <message> + <source>Create Wallet...</source> + <translation>Lag lommebok...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Lag en ny lommebok</translation> + </message> + <message> <source>Wallet:</source> <translation>Lommebok:</translation> </message> @@ -446,6 +482,14 @@ <translation>Oppdatert</translation> </message> <message> + <source>Node window</source> + <translation>Nodevindu</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Åpne nodens konsoll for feilsøk og diagnostikk</translation> + </message> + <message> <source>&Sending addresses</source> <translation>&Avsender adresser</translation> </message> @@ -454,6 +498,10 @@ <translation>&Mottaker adresser</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Åpne en bitcoin: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Åpne Lommebok</translation> </message> @@ -514,6 +562,10 @@ <translation>Feil: %1</translation> </message> <message> + <source>Warning: %1</source> + <translation>Advarsel: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>Dato: %1 @@ -735,10 +787,58 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>Lager lommebok <b>%1<b>...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>Lage lommebok feilet</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Lag lommebokvarsel</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Lag lommebok</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Lommeboknavn</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Krypter lommeboken. Lommeboken blir kryptert med en passordfrase du velger.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Krypter Lommebok</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Deaktiver private nøkler for denne lommeboken. Lommebøker med private nøkler er deaktivert vil ikke ha noen private nøkler og kan ikke ha en HD seed eller importerte private nøkler. Dette er ideelt for loomebøker som kun er klokker.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Deaktiver Private Nøkler</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Lag en tom lommebok. Tomme lommebøker har i utgangspunktet ikke private nøkler eller skript. Private nøkler og adresser kan importeres, eller et HD- frø kan angis på et senere tidspunkt.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Lag Tom Lommebok</translation> + </message> + <message> + <source>Create</source> + <translation>Opprett</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -782,6 +882,10 @@ <translation>Adresse "%1" eksisterer allerede som en mottaksadresse merket "%2" og kan derfor ikke bli lagt til som en sendingsadresse.</translation> </message> <message> + <source>The entered address "%1" is already in the address book with label "%2".</source> + <translation>Den oppgitte adressen ''%1'' er allerede i adresseboken med etiketten ''%2''.</translation> + </message> + <message> <source>Could not unlock wallet.</source> <translation>Kunne ikke låse opp lommebok.</translation> </message> @@ -847,6 +951,10 @@ <translation>Når du klikker OK, vil %1 starte nedlasting og behandle hele den %4 blokkjeden (%2GB) fra de eldste transaksjonene i %3 når %4 først startet.</translation> </message> <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Gjenoppretting av denne innstillingen krever at du laster ned hele blockchain på nytt. Det er raskere å laste ned hele kjeden først og beskjære den senere Deaktiver noen avanserte funksjoner.</translation> + </message> + <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> <translation>Den initielle synkroniseringen er svært krevende, og kan forårsake problemer med maskinvaren i datamaskinen din som du tidligere ikke merket. Hver gang du kjører %1 vil den fortsette nedlastingen der den sluttet.</translation> </message> @@ -867,6 +975,10 @@ <translation>Bitcoin</translation> </message> <message> + <source>Discard blocks after verification, except most recent %1 GB (prune)</source> + <translation>Kast blokker etter bekreftelse, bortsett fra de siste %1 GB (sviske)</translation> + </message> + <message> <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> <translation>Minst %1 GB data vil bli lagret i denne mappen og den vil vokse over tid.</translation> </message> @@ -945,10 +1057,26 @@ <source>Hide</source> <translation>Skjul</translation> </message> - </context> + <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 synkroniseres for øyeblikket. Den vil laste ned overskrifter og blokker fra jevnaldrende og validere dem til de når spissen av blokkjeden.</translation> + </message> + <message> + <source>Unknown. Syncing Headers (%1, %2%)...</source> + <translation>Ukjent.Synkroniser overskrifter (%1,%2%)...</translation> + </message> +</context> <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Åpne bitcoin URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -956,6 +1084,14 @@ <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet failed</source> + <translation>Åpne lommebok feilet</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>Advasel om åpen lommebok.</translation> + </message> + <message> <source>default wallet</source> <translation>standard lommebok</translation> </message> @@ -1039,10 +1175,22 @@ <translation>&Nettverk</translation> </message> <message> + <source>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</source> + <translation>Deaktiver noen avanserte funksjoner, men alle blokker vil fortsatt være fullglyldig. Gjenoppretting av denne innstillingen krever at du laster ned hele blockchain på nytt. Faktisk diskbruk kan være noe høvere.</translation> + </message> + <message> + <source>Prune &block storage to</source> + <translation>Beskjær og blokker lagring til</translation> + </message> + <message> <source>GB</source> <translation>GB</translation> </message> <message> + <source>Reverting this setting requires re-downloading the entire blockchain.</source> + <translation>Gjenoppretting av denne innstillingen krever at du laster ned hele blockchain på nytt</translation> + </message> + <message> <source>MiB</source> <translation>MiB</translation> </message> @@ -1171,6 +1319,10 @@ <translation>Tredjepart transaksjon URLer</translation> </message> <message> + <source>Options set in this dialog are overridden by the command line or in the configuration file:</source> + <translation>Alternativer som er satt i denne dialogboksen overstyres av kommandolinjen eller i konfigurasjonsfilen:</translation> + </message> + <message> <source>&OK</source> <translation>&OK</translation> </message> @@ -1313,6 +1465,22 @@ <translation>URI-håndtering</translation> </message> <message> + <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source> + <translation>'bitcoin: //' er ikke en gyldig URI. Bruk 'bitcoin:' i stedet.</translation> + </message> + <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Kan ikke behandle betalingsforespørsel fordi BIP70 ikke støttes.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>På grunn av utbredte sikkerhetsfeil i BIP70 anbefales det på det sterkeste at alle selgerinstruksjoner for å bytte lommebok ignoreres.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>Hvis du mottar denne feilen, bør du be selgeren gi en BIP21-kompatibel URI.</translation> + </message> + <message> <source>Invalid payment address %1</source> <translation>Ugyldig betalingsadresse %1</translation> </message> @@ -1470,6 +1638,10 @@ <translation>Feil ved koding av URI til QR-kode.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>Støtte for QR kode ikke tilgjengelig.</translation> + </message> + <message> <source>Save QR Code</source> <translation>Lagre QR-kode</translation> </message> @@ -1505,6 +1677,10 @@ <translation>Datamappe</translation> </message> <message> + <source>Blocksdir</source> + <translation>Blocksdir</translation> + </message> + <message> <source>Startup time</source> <translation>Oppstartstidspunkt</translation> </message> @@ -1597,10 +1773,22 @@ <translation>Synkroniserte Blokker</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Det kartlagte autonome systemet som brukes til å diversifisere valg av fagfeller.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Kartlagt AS</translation> + </message> + <message> <source>User Agent</source> <translation>Brukeragent</translation> </message> <message> + <source>Node window</source> + <translation>Nodevindu</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Åpne %1-feilrettingsloggfila fra gjeldende datamappe. Dette kan ta et par sekunder for store loggfiler.</translation> </message> @@ -1741,6 +1929,14 @@ <translation>Nettverksaktivitet avskrudd</translation> </message> <message> + <source>Executing command without any wallet</source> + <translation>Utfør kommando uten noen lommebok</translation> + </message> + <message> + <source>Executing command using "%1" wallet</source> + <translation>Utfør kommando med lommebok "%1"</translation> + </message> + <message> <source>(node id: %1)</source> <translation>(node id: %1)</translation> </message> @@ -1804,6 +2000,18 @@ <translation>Et valgfritt beløp å etterspørre. La stå tomt eller null for ikke å etterspørre et spesifikt beløp.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>En valgfri etikett for å knytte til den nye mottaksadressen (brukt av deg for å identifisere en faktura). Det er også knyttet til betalingsforespørselen.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>En valgfri melding som er knyttet til betalingsforespørselen og kan vises til avsenderen.</translation> + </message> + <message> + <source>&Create new receiving address</source> + <translation>&Lag ny mottakeradresse</translation> + </message> + <message> <source>Clear all fields of the form.</source> <translation>Fjern alle felter fra skjemaet.</translation> </message> @@ -1812,6 +2020,14 @@ <translation>Fjern</translation> </message> <message> + <source>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</source> + <translation>Innfødte segwit-adresser (også kalt Bech32 eller BIP-173) reduserer transaksjonsgebyrene senere og gir bedre beskyttelse mot skrivefeil, men gamle lommebøker støtter dem ikke. Når du ikke har merket av, opprettes en adresse som er kompatibel med eldre lommebøker.</translation> + </message> + <message> + <source>Generate native segwit (Bech32) address</source> + <translation>Generer nativ segwit (Bech32) adresse</translation> + </message> + <message> <source>Requested payments history</source> <translation>Etterspurt betalingshistorikk</translation> </message> @@ -2001,6 +2217,14 @@ <translation>Advarsel: Gebyroverslag er ikke tilgjengelig for tiden.</translation> </message> <message> + <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. + +Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis.</source> + <translation>Spesifiser en tilpasset avgift per kB (1000 byte) av transaksjonens virtuelle størrelse. + +Merk: Siden avgiften er beregnet per byte-basis, vil et gebyr på "100 satoshis per kB" for en transaksjonsstørrelse på 500 byte (halvparten av 1 kB) til slutt gi et gebyr på bare 50 satoshis.</translation> + </message> + <message> <source>per kilobyte</source> <translation>per kilobyte</translation> </message> @@ -2037,6 +2261,18 @@ <translation>Støv:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Skjul innstillinger for transaksjonsgebyr</translation> + </message> + <message> + <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>Når det er mindre transaksjonsvolum enn plass i blokkene, kan gruvearbeidere så vel som videresende noder håndheve et minimumsgebyr. Å betale bare denne minsteavgiften er helt greit, men vær klar over at dette kan resultere i en aldri bekreftende transaksjon når det er større etterspørsel etter bitcoin-transaksjoner enn nettverket kan behandle.</translation> + </message> + <message> + <source>A too low fee might result in a never confirming transaction (read the tooltip)</source> + <translation>For lavt gebyr kan føre til en transaksjon som aldri bekreftes (les verktøytips)</translation> + </message> + <message> <source>Confirmation time target:</source> <translation>Bekreftelsestidsmål:</translation> </message> @@ -2097,10 +2333,18 @@ <translation>%1 (%2 blokker)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>Cr & eate Usignert</translation> + </message> + <message> <source>%1 to %2</source> <translation>%1 til %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Vil du utarbeide denne transaksjonen?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Er du sikker på at du vil sende?</translation> </message> @@ -2129,10 +2373,34 @@ <translation>Totalbeløp</translation> </message> <message> + <source>To review recipient list click "Show Details..."</source> + <translation>For å se gjennom mottakerlisten, klikk "Vis detaljer ..."</translation> + </message> + <message> <source>Confirm send coins</source> <translation>Bekreft forsendelse av mynter</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Bekreft transaksjonsforslaget</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Kopier PSBT til utklippstavlen</translation> + </message> + <message> + <source>Send</source> + <translation>Send</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT kopiert</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Kun-observer balanse:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Mottakeradressen er ikke gyldig. Sjekk den igjen.</translation> </message> @@ -2228,6 +2496,10 @@ <translation>Fjern denne oppføringen</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>beløpet som skal sendes inn den valgte enheten.</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>Gebyret vil bli trukket fra beløpet som blir sendt. Mottakeren vil motta mindre bitcoins enn det du skriver inn i beløpsfeltet. Hvis det er valgt flere mottakere, deles gebyret likt.</translation> </message> @@ -2354,6 +2626,14 @@ <translation>Bitcoin-adressen meldingen ble signert med</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Den signerte meldingen for å bekfrefte</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>signaturen som ble gitt da meldingen ble signert</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Verifiser meldingen for å være sikker på at den ble signert av den angitte Bitcoin-adressen</translation> </message> @@ -2386,6 +2666,10 @@ <translation>Opplåsning av lommebok ble avbrutt.</translation> </message> <message> + <source>No error</source> + <translation>Ingen feil</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>Privat nøkkel for den angitte adressen er ikke tilgjengelig.</translation> </message> @@ -2560,6 +2844,10 @@ <translation>Utdatainndeks</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(sertifikatet ble ikke bekreftet)</translation> + </message> + <message> <source>Merchant</source> <translation>Forretningsdrivende</translation> </message> @@ -2882,7 +3170,11 @@ <source>Close wallet</source> <translation>Lukk lommebok</translation> </message> - </context> + <message> + <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> + <translation>Å lukke lommeboken for lenge kan føre til at du må synkronisere hele kjeden hvis beskjæring er aktivert.</translation> + </message> +</context> <context> <name>WalletFrame</name> <message> @@ -2909,6 +3201,10 @@ <translation>Ønsker du å øke gebyret?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Vil du utarbeide en transaksjon med gebyrøkning?</translation> + </message> + <message> <source>Current fee:</source> <translation>Nåværede gebyr:</translation> </message> @@ -2925,6 +3221,14 @@ <translation>Bekreft gebyrøkning</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>Kan ikke utarbeide transaksjon.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT kopiert</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>Kan ikke signere transaksjon</translation> </message> @@ -3007,6 +3311,10 @@ <translation>%s-utviklerne</translation> </message> <message> + <source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source> + <translation>Kan ikke generere en ledelse-nøkkel. Ingen taster i den interne tasten og kan ikke generere noen nøkler.</translation> + </message> + <message> <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> <translation>Kan ikke låse datamappen %s. %s kjører antagelig allerede.</translation> </message> @@ -3083,6 +3391,14 @@ <translation>Oppdaget korrupt blokkdatabase</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>Kunne ikke finne asmap filen %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Kunne ikke analysere asmap filen %s</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>Ønsker du å gjenopprette blokkdatabasen nå?</translation> </message> @@ -3155,6 +3471,10 @@ <translation>Laster maskin-til-maskin -adresser…</translation> </message> <message> + <source>Error: Disk space is too low!</source> + <translation>Feil: For lite diskplass!</translation> + </message> + <message> <source>Loading banlist...</source> <translation>Laster inn bannlysningsliste…</translation> </message> @@ -3263,6 +3583,10 @@ <translation>Må oppgi en port med -whitebind: '%s'</translation> </message> <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>Beskjæringsmodus er inkompatibel med -blokkfilterindex.</translation> + </message> + <message> <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> <translation>Reduserer -maxconnections fra %d til %d, pga. systembegrensninger.</translation> </message> @@ -3385,6 +3709,14 @@ <translation>Utilstrekkelige midler</translation> </message> <message> + <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> + <translation>Kan ikke oppgradere en delt lommebok uten HD uten å oppgradere til støtte for forhåndsdelt tastatur. Bruk -upgradewallet = 169900 eller -upgradewallet uten versjon spesifisert.</translation> + </message> + <message> + <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> + <translation>Avgiftsberegning mislyktes. Fallbackfee er deaktivert. Vent et par blokker eller aktiver -fallbackfee.</translation> + </message> + <message> <source>Loading block index...</source> <translation>Laster blokkindeks...</translation> </message> diff --git a/src/qt/locale/bitcoin_ne.ts b/src/qt/locale/bitcoin_ne.ts index 0a291dd95e..7f74cb5d50 100644 --- a/src/qt/locale/bitcoin_ne.ts +++ b/src/qt/locale/bitcoin_ne.ts @@ -55,8 +55,7 @@ </message> <message> <source>&Copy Address</source> - <translation>ठेगाना कपी गर्नुहोस् -</translation> + <translation>ठेगाना कपी गर्नुहोस्</translation> </message> </context> <context> @@ -191,8 +190,7 @@ </message> <message> <source>Copy address</source> - <translation>ठेगाना कपी गर्नुहोस् -</translation> + <translation>ठेगाना कपी गर्नुहोस्</translation> </message> </context> <context> @@ -396,8 +394,7 @@ <name>TransactionView</name> <message> <source>Copy address</source> - <translation>ठेगाना कपी गर्नुहोस् -</translation> + <translation>ठेगाना कपी गर्नुहोस्</translation> </message> </context> <context> @@ -416,8 +413,7 @@ <name>WalletView</name> <message> <source>&Export</source> - <translation>&amp;निर्यात गर्नुहोस् -</translation> + <translation>&amp;निर्यात गर्नुहोस्</translation> </message> <message> <source>Export the data in the current tab to a file</source> diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/bitcoin_nl.ts index 73c18cd4d8..ad713a8cc8 100644 --- a/src/qt/locale/bitcoin_nl.ts +++ b/src/qt/locale/bitcoin_nl.ts @@ -1790,6 +1790,14 @@ Dit is ideaal voor alleen-lezen portommonees.</translation> <translation>Gesynchroniseerde blokken</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Het in kaart gebrachte autonome systeem dat wordt gebruikt voor het diversifiëren van peer-selectie.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>AS in kaart gebracht.</translation> + </message> + <message> <source>User Agent</source> <translation>User Agent</translation> </message> diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/bitcoin_pl.ts index c09e0d41ac..552d3e1ca7 100644 --- a/src/qt/locale/bitcoin_pl.ts +++ b/src/qt/locale/bitcoin_pl.ts @@ -482,6 +482,14 @@ <translation>Aktualny</translation> </message> <message> + <source>Node window</source> + <translation>Okno węzła</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Otwórz konsolę diagnostyczną i debugowanie węzłów</translation> + </message> + <message> <source>&Sending addresses</source> <translation>&Adresy wysyłania</translation> </message> @@ -490,6 +498,10 @@ <translation>&Adresy odbioru</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Otwórz URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Otwórz Portfel</translation> </message> @@ -1023,7 +1035,7 @@ </message> <message> <source>Unknown...</source> - <translation>Nienznane...</translation> + <translation>Nieznany...</translation> </message> <message> <source>Last block time</source> @@ -1050,6 +1062,14 @@ <translation>Ukryj</translation> </message> <message> + <source>Esc</source> + <translation>Wyjdź</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 jest w trakcie synchronizacji. Trwa pobieranie i weryfikacja nagłówków oraz bloków z sieci w celu uzyskania aktualnego stanu łańcucha.</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Nieznane. Synchronizowanie nagłówków (%1, %2%)...</translation> </message> @@ -1057,6 +1077,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Otwórz URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -1449,6 +1473,10 @@ <translation>'bitcoin://' nie jest poprawnym URI. Użyj 'bitcoin:'.</translation> </message> <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Nie można przetworzyć żądania zapłaty z powodu braku wsparcia BIP70.</translation> + </message> + <message> <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> <translation>Z powodu znanych błędów bezpieczeństwa w BIP70 zaleca się ignorować wszelkie polecenie od sprzedawcy dotyczące zmiany portfela.</translation> </message> @@ -1761,10 +1789,22 @@ <translation>Zsynchronizowane bloki</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Zmapowany autonomiczny system (ang. asmap) używany do dywersyfikacji wyboru węzłów.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Zmapowany autonomiczny system (ang. asmap)</translation> + </message> + <message> <source>User Agent</source> <translation>Aplikacja kliencka</translation> </message> <message> + <source>Node window</source> + <translation>Okno węzła</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Otwórz plik dziennika debugowania %1 z obecnego katalogu z danymi. Może to potrwać kilka sekund przy większych plikach.</translation> </message> @@ -1976,6 +2016,14 @@ <translation>Opcjonalna kwota by zażądać. Zostaw puste lub zero by nie zażądać konkretnej kwoty.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Dodatkowa etykieta powiązana z nowym adresem do odbierania płatności (używanym w celu odnalezienia faktury). Jest również powiązana z żądaniem płatności.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Dodatkowa wiadomość dołączana do żądania zapłaty, która może być odczytana przez płacącego.</translation> + </message> + <message> <source>&Create new receiving address</source> <translation>&Stwórz nowy adres odbiorczy</translation> </message> @@ -2230,6 +2278,10 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za <translation>Pył:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Ukryj ustawienia opłat transakcyjnych</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>Gdy ilość transakcji jest mniejsza niż ilość miejsca w bloku, górnicy i węzły przekazujące wymagają minimalnej opłaty. Zapłata tylko tej wartości jest dopuszczalna, lecz może skutkować transakcją która nigdy nie zostanie potwierdzona w sytuacji, gdy ilość transakcji przekroczy przepustowość sieci.</translation> </message> @@ -2298,6 +2350,14 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za <translation>%1 (%2 bloków)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>&Utwórz niepodpisaną transakcję</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Tworzy częściowo podpisaną transakcję (ang. PSBT) używaną np. offline z portfelem %1 lub z innym portfelem zgodnym z PSBT.</translation> + </message> + <message> <source> from wallet '%1'</source> <translation>z portfela '%1'</translation> </message> @@ -2310,10 +2370,18 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za <translation>%1 do %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Czy chcesz zapisać szkic tej transakcji?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Czy na pewno chcesz wysłać?</translation> </message> <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Proszę przejrzeć propozycję transakcji. Zostanie utworzona częściowo podpisana transakcja (ang. PSBT), którą można skopiować, a następnie podpisać np. offline z portfelem %1 lub z innym portfelem zgodnym z PSBT.</translation> + </message> + <message> <source>or</source> <translation>lub</translation> </message> @@ -2346,6 +2414,26 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za <translation>Potwierdź wysyłanie monet</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Potwierdź propozycję transakcji</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Skopiuj PSBT do schowka</translation> + </message> + <message> + <source>Send</source> + <translation>Wyślij</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>Skopiowano PSBT</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Kwota na obserwowanych kontach:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Adres odbiorcy jest nieprawidłowy, proszę sprawić ponownie.</translation> </message> @@ -2441,6 +2529,10 @@ Uwaga: Ponieważ opłata jest naliczana za każdy bajt, opłata "100 satoshi za <translation>Usuń ten wpis</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>Kwota do wysłania w wybranej jednostce</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>Opłata zostanie odjęta od kwoty wysyłane.Odbiorca otrzyma mniej niż bitcoins wpisz w polu kwoty. Jeśli wybrano kilku odbiorców, opłata jest podzielona równo.</translation> </message> @@ -2568,6 +2660,14 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw <translation>Adres Bitcoin, którym została podpisana wiadomość</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Podpisana wiadomość do weryfikacji</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>Sygnatura podawana przy podpisywaniu wiadomości</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Zweryfikuj wiadomość, aby upewnić się, że została podpisana odpowiednim adresem Bitcoin.</translation> </message> @@ -2600,6 +2700,10 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw <translation>Odblokowanie portfela zostało anulowane.</translation> </message> <message> + <source>No error</source> + <translation>Brak błędów</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>Klucz prywatny dla podanego adresu nie jest dostępny.</translation> </message> @@ -3135,6 +3239,10 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw <translation>Czy chcesz zwiększyć prowizję?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Czy chcesz zapisać szkic transakcji ze zwiększoną opłatą transakcyjną?</translation> + </message> + <message> <source>Current fee:</source> <translation>Aktualna opłata:</translation> </message> @@ -3151,6 +3259,14 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw <translation>Potwierdź zwiększenie opłaty</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>Nie można zapisać szkicu transakcji.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>Skopiowano PSBT</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>Nie można podpisać transakcji.</translation> </message> @@ -3317,6 +3433,14 @@ Zwróć uwagę, że poprawnie zweryfikowana wiadomość potwierdza to, że nadaw <translation>Wykryto uszkodzoną bazę bloków</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>Nie można odnaleźć pliku asmap %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Nie można przetworzyć pliku asmap %s</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>Czy chcesz teraz przebudować bazę bloków?</translation> </message> diff --git a/src/qt/locale/bitcoin_pt.ts b/src/qt/locale/bitcoin_pt.ts index 9fc9170501..4df412cfad 100644 --- a/src/qt/locale/bitcoin_pt.ts +++ b/src/qt/locale/bitcoin_pt.ts @@ -1790,6 +1790,14 @@ <translation>Blocos Sincronizados</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>O sistema autonômo mapeado usado para diversificar a seleção de pares.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapeado como</translation> + </message> + <message> <source>User Agent</source> <translation>User Agent</translation> </message> diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/bitcoin_pt_BR.ts index b4ae9eeee5..efd437fb1d 100644 --- a/src/qt/locale/bitcoin_pt_BR.ts +++ b/src/qt/locale/bitcoin_pt_BR.ts @@ -1789,6 +1789,14 @@ <translation>Blocos Sincronizados</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>O sistema autônomo delineado usado para a diversificação da seleção de pares.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapeado como</translation> + </message> + <message> <source>User Agent</source> <translation>User Agent</translation> </message> @@ -1862,7 +1870,7 @@ </message> <message> <source>&Network Traffic</source> - <translation>&Tráfico de Rede</translation> + <translation>&Tráfego da Rede</translation> </message> <message> <source>Totals</source> @@ -1930,7 +1938,7 @@ </message> <message> <source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</source> - <translation>ATENÇÃO: Fraudadores solicitam a usuários que digitem comandos aqui, e assim roubão o conteúdo de suas carteiras. Não utilize este console sem antes conhecer os comandos e seus efeitos.</translation> + <translation>ATENÇÃO: Fraudadores solicitam a usuários que digitem comandos aqui, e assim roubam o conteúdo de suas carteiras. Não utilize este console sem antes conhecer os comandos e seus efeitos.</translation> </message> <message> <source>Network activity disabled</source> diff --git a/src/qt/locale/bitcoin_ro.ts b/src/qt/locale/bitcoin_ro.ts index 333a191ed3..310aa000e0 100644 --- a/src/qt/locale/bitcoin_ro.ts +++ b/src/qt/locale/bitcoin_ro.ts @@ -15,7 +15,7 @@ </message> <message> <source>Copy the currently selected address to the system clipboard</source> - <translation>Copiază adresa selectată în clipboard</translation> + <translation>Copiază adresa selectată curent în clipboard</translation> </message> <message> <source>&Copy</source> @@ -27,7 +27,7 @@ </message> <message> <source>Delete the currently selected address from the list</source> - <translation>Şterge adresa selectată din listă</translation> + <translation>Şterge adresa selectată curent din listă</translation> </message> <message> <source>Enter address or label to search</source> @@ -132,6 +132,10 @@ <translation>Repetaţi noua frază de acces</translation> </message> <message> + <source>Show passphrase</source> + <translation>Arată fraza de acces</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>Criptare portofel</translation> </message> @@ -172,6 +176,18 @@ <translation>Portofel criptat</translation> </message> <message> + <source>Wallet to be encrypted</source> + <translation>Portofel de criptat</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Portofelul tău urmează să fie criptat.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Protofelul tău este criptat.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>IMPORTANT: Orice copie de siguranţă făcută anterior portofelului dumneavoastră ar trebui înlocuită cu cea generată cel mai recent, fişier criptat al portofelului. Pentru siguranţă, copiile de siguranţă vechi ale portofelului ne-criptat vor deveni inutile imediat ce veţi începe folosirea noului fişier criptat al portofelului.</translation> </message> @@ -294,6 +310,14 @@ <translation>Deschide &URI...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>Crează portofel...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Crează un portofel nou</translation> + </message> + <message> <source>Wallet:</source> <translation>Portofel:</translation> </message> @@ -442,6 +466,38 @@ <translation>Actualizat</translation> </message> <message> + <source>Node window</source> + <translation>Fereastra nodului</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Deschide consola pentru depanare şi diagnosticare a nodului</translation> + </message> + <message> + <source>&Sending addresses</source> + <translation>&Adresele de destinatie</translation> + </message> + <message> + <source>&Receiving addresses</source> + <translation>&Adresele de primire</translation> + </message> + <message> + <source>Open Wallet</source> + <translation>Deschide portofel</translation> + </message> + <message> + <source>Open a wallet</source> + <translation>Deschide un portofel</translation> + </message> + <message> + <source>Close Wallet...</source> + <translation>Inchide portofel...</translation> + </message> + <message> + <source>Close wallet</source> + <translation>Inchide portofel</translation> + </message> + <message> <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source> <translation>Arată mesajul de ajutor %1 pentru a obţine o listă cu opţiunile posibile de linii de comandă Bitcoin</translation> </message> @@ -450,6 +506,10 @@ <translation>portofel implicit</translation> </message> <message> + <source>No wallets available</source> + <translation>Niciun portofel disponibil</translation> + </message> + <message> <source>&Window</source> <translation>&Fereastră</translation> </message> @@ -458,6 +518,14 @@ <translation>Minimizare</translation> </message> <message> + <source>Zoom</source> + <translation>Zoom</translation> + </message> + <message> + <source>Main Window</source> + <translation>Fereastra principală</translation> + </message> + <message> <source>%1 client</source> <translation>Client %1</translation> </message> @@ -474,6 +542,10 @@ <translation>Eroare: %1</translation> </message> <message> + <source>Warning: %1</source> + <translation> Atenționare: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>Data: %1 @@ -526,6 +598,10 @@ <translation>Generarea de chei HD este <b>dezactivata</b></translation> </message> <message> + <source>Private key <b>disabled</b></source> + <translation>Cheia privată <b>dezactivată</b></translation> + </message> + <message> <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> <translation>Portofelul este <b>criptat</b> iar în momentul de faţă este <b>deblocat</b></translation> </message> @@ -691,10 +767,46 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Create wallet failed</source> + <translation>Crearea portofelului a eşuat</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Atentionare la crearea portofelului</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Crează portofel</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Numele portofelului</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Criptează portofelul. Portofelul va fi criptat cu fraza de acces aleasă.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Criptează portofelul.</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Dezactivează cheile private pentru acest portofel. Portofelele cu cheile private dezactivate nu vor avea chei private şi nu vor putea avea samanţă HD sau chei private importate. Ideal pentru portofele marcate doar pentru citire.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Dezactivează cheile private</translation> + </message> + <message> + <source>Create</source> + <translation>Creează</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -1573,6 +1685,10 @@ <translation>Agent utilizator</translation> </message> <message> + <source>Node window</source> + <translation>Fereastra nodului</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Deschide fişierul jurnal depanare %1 din directorul curent. Aceasta poate dura cateva secunde pentru fişierele mai mari.</translation> </message> @@ -2093,6 +2209,10 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o <translation>%1(%2 blocuri)</translation> </message> <message> + <source> from wallet '%1'</source> + <translation>din portofelul '%1'</translation> + </message> + <message> <source>%1 to %2</source> <translation>%1 la %2</translation> </message> @@ -2556,6 +2676,10 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o <translation>Index debit</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(Certificatul nu a fost verificat)</translation> + </message> + <message> <source>Merchant</source> <translation>Comerciant</translation> </message> @@ -2874,6 +2998,10 @@ Nota: Cum taxa este calculata per byte, o taxa de "100 satoshi per kB" pentru o </context> <context> <name>WalletController</name> + <message> + <source>Close wallet</source> + <translation>Inchide portofel</translation> + </message> </context> <context> <name>WalletFrame</name> diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index b7515b1a7c..4b063eb201 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -181,7 +181,7 @@ </message> <message> <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> - <translation>Введите новый пароль для кошелька.<br/>Используйте пароль, состоящий из <b>десяти или более случайных символов</b>, или <b>восьми или более слов</b>.</translation> + <translation>Введите новый пароль для кошелька.<br/>Используйте пароль, состоящий из <b>десяти или более случайных символов</b> или <b>восьми или более слов</b>.</translation> </message> <message> <source>Enter the old passphrase and new passphrase for the wallet.</source> @@ -205,7 +205,7 @@ </message> <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> - <translation>ВАЖНО: любые предыдущие резервные копия вашего кошелька, выполненные вами, необходимо заменить новым сгенерированным, зашифрованным файлом кошелька. В целях безопасности, предыдущие резервные копии незашифрованного файла кошелька утратят пригодность после начала использования нового зашифрованного кошелька.</translation> + <translation>ВАЖНО: любые предыдущие резервные копия вашего кошелька, выполненные вами, необходимо заменить новым сгенерированным, зашифрованным файлом кошелька. В целях безопасности предыдущие резервные копии незашифрованного файла кошелька утратят пригодность после начала использования нового зашифрованного кошелька.</translation> </message> <message> <source>Wallet encryption failed</source> @@ -399,11 +399,11 @@ </message> <message> <source>Sign messages with your Bitcoin addresses to prove you own them</source> - <translation>Подписывайте сообщения Биткойн-адресами чтобы подтвердить что это написали именно Вы</translation> + <translation>Подписывайте сообщения Биткойн-адресами, чтобы подтвердить, что это написали именно вы</translation> </message> <message> <source>Verify messages to ensure they were signed with specified Bitcoin addresses</source> - <translation>Проверяйте сообщения чтобы убедиться что они подписаны конкретными Биткойн-адресами</translation> + <translation>Проверяйте сообщения, чтобы убедиться, что они подписаны конкретными Биткойн-адресами</translation> </message> <message> <source>&File</source> @@ -482,6 +482,14 @@ <translation>Готов</translation> </message> <message> + <source>Node window</source> + <translation>Окно узла</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Открыть консоль отладки и диагностики узла</translation> + </message> + <message> <source>&Sending addresses</source> <translation>&Адреса для отправлений</translation> </message> @@ -490,6 +498,10 @@ <translation>&Адреса для получений</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Открыть биткойн: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Открыть Кошелёк</translation> </message> @@ -808,7 +820,7 @@ </message> <message> <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> - <translation>Отключить приватные ключи для этого кошелька. Кошельки с отключенными приватными ключами не будут иметь приватных ключей и HD мастер-ключ или импортированные приватные ключи. Это подходит только кошелькам для часов.</translation> + <translation>Отключить приватные ключи для этого кошелька. Кошельки с отключенными приватными ключами не будут иметь приватных ключей и HD мастер-ключа или импортированных приватных ключей. Это подходит только кошелькам для часов.</translation> </message> <message> <source>Disable Private Keys</source> @@ -816,7 +828,7 @@ </message> <message> <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> - <translation>Сделать пустой кошелёк. Чистые кошельки изначально не имеют приватных ключей или скриптов. Позже можно импортировать приватные ключи и адреса, или установить HD мастер-ключ.</translation> + <translation>Сделать пустой кошелёк. Чистые кошельки изначально не имеют приватных ключей или скриптов. Позже можно импортировать приватные ключи и адреса или установить HD мастер-ключ.</translation> </message> <message> <source>Make Blank Wallet</source> @@ -944,7 +956,7 @@ </message> <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> - <translation>Первоначальная синхронизация очень сложна и может выявить проблемы с оборудованием вашего компьютера, которые ранее оставались незамеченными. Каждый раз, когда вы запускаете %1, будет продолжена загрузка с того места, где остановился.</translation> + <translation>Первоначальная синхронизация очень сложна и может выявить проблемы с оборудованием вашего компьютера, которые ранее оставались незамеченными. Каждый раз, когда вы запускаете %1, будет продолжена загрузка с места остановки.</translation> </message> <message> <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source> @@ -1050,6 +1062,14 @@ <translation>Спрятать</translation> </message> <message> + <source>Esc</source> + <translation>Выйти</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 синхронизировано. Заголовки и блоки будут скачиваться с узлов сети и проверяться до тех пор пока не будет достигнут конец цепи блоков.</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Неизвестно. Синхронизация заголовков (%1, %2%)...</translation> </message> @@ -1057,6 +1077,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Открыть URI биткойна</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -1112,7 +1136,7 @@ </message> <message> <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> - <translation>Показывает, используется ли прокси SOCKS5 по умолчанию, для доступа к узлам через этот тип сети.</translation> + <translation>Показывает, используется ли прокси SOCKS5 по умолчанию для доступа к узлам через этот тип сети.</translation> </message> <message> <source>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</source> @@ -1132,7 +1156,7 @@ </message> <message> <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> - <translation>Сторонние URL-адреса (например, обозреватель блоков) , которые отображаются на вкладке транзакции как элементы контекстного меню. %s в URL заменяется хэшем транзакции. Несколько URL-адресов разделены вертикальной чертой |.</translation> + <translation>Сторонние URL-адреса (например, обозреватель блоков), которые отображаются на вкладке транзакции как элементы контекстного меню. %s в URL заменяется хэшем транзакции. Несколько URL-адресов разделены вертикальной чертой |.</translation> </message> <message> <source>Open the %1 configuration file from the working directory.</source> @@ -1156,7 +1180,7 @@ </message> <message> <source>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</source> - <translation>Отключает некоторые дополнительные функции, но все блоки по-прежнему будут полностью проверены. Для возврата к этому параметру необходимо повторно загрузить весь блокчейн. Фактическое использование диска может быть несколько выше.</translation> + <translation>Отключает некоторые дополнительные функции, но все блоки по-прежнему будут полностью проверены. Для возврата к этому параметру необходимо повторно загрузить весь блокчейн. Фактическое использование диска может быть несколько больше.</translation> </message> <message> <source>Prune &block storage to</source> @@ -1192,7 +1216,7 @@ </message> <message> <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source> - <translation>При отключении траты неподтверждённой сдачи, сдача от транзакции не может быть использована до тех пор пока у этой транзакции не будет хотя бы одно подтверждение. Это также влияет как ваш баланс рассчитывается.</translation> + <translation>При отключении траты неподтверждённой сдачи сдача от транзакции не может быть использована до тех пор пока у этой транзакции не будет хотя бы одно подтверждение. Это также влияет как ваш баланс рассчитывается.</translation> </message> <message> <source>&Spend unconfirmed change</source> @@ -1200,7 +1224,7 @@ </message> <message> <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source> - <translation>Автоматически открыть порт для Биткойн-клиента на маршрутизаторе. Работает только если Ваш маршрутизатор поддерживает UPnP, и данная функция включена.</translation> + <translation>Автоматически открыть порт для Биткойн-клиента на маршрутизаторе. Работает, если ваш маршрутизатор поддерживает UPnP, и данная функция включена.</translation> </message> <message> <source>Map port using &UPnP</source> @@ -1216,7 +1240,7 @@ </message> <message> <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> - <translation>Подключится к сети Биткойн через прокси SOCKS5.</translation> + <translation>Подключиться к сети Биткойн через прокси SOCKS5.</translation> </message> <message> <source>&Connect through SOCKS5 proxy (default proxy):</source> @@ -1252,7 +1276,7 @@ </message> <message> <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> - <translation>Подключатся к Биткойн-сети через отдельный прокси SOCKS5 для скрытых сервисов Tor.</translation> + <translation>Подключаться к Биткойн-сети через отдельный прокси SOCKS5 для скрытых сервисов Tor.</translation> </message> <message> <source>&Window</source> @@ -1383,7 +1407,7 @@ </message> <message> <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> - <translation>Общая сумма всех транзакций, которые до сих пор не подтверждены, и до сих пор не учитываются в расходном балансе</translation> + <translation>Общая сумма всех транзакций, которые до сих пор не подтверждены и не учитываются в расходном балансе</translation> </message> <message> <source>Immature:</source> @@ -1446,7 +1470,11 @@ </message> <message> <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source> - <translation>'bitcoin://' не верный URI. Используйте 'bitcoin:' вместо этого.</translation> + <translation>'bitcoin://' неверный URI. Используйте 'bitcoin:' вместо этого.</translation> + </message> + <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Невозможно обработать запрос платежа, потому что BIP70 не поддерживается.</translation> </message> <message> <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> @@ -1552,7 +1580,7 @@ </message> <message numerus="yes"> <source>%n week(s)</source> - <translation><numerusform>%n недели</numerusform><numerusform>%n недель</numerusform><numerusform>%n недель</numerusform><numerusform>%n недель</numerusform></translation> + <translation><numerusform>%n неделя</numerusform><numerusform>%n недель</numerusform><numerusform>%n недель</numerusform><numerusform>%n недель</numerusform></translation> </message> <message> <source>%1 and %2</source> @@ -1560,7 +1588,7 @@ </message> <message numerus="yes"> <source>%n year(s)</source> - <translation><numerusform>%n год</numerusform><numerusform>%n лет</numerusform><numerusform>%n лет</numerusform><numerusform>%n лет</numerusform></translation> + <translation><numerusform>%n год</numerusform><numerusform>%n года</numerusform><numerusform>%n лет</numerusform><numerusform>%n лет</numerusform></translation> </message> <message> <source>%1 B</source> @@ -1584,7 +1612,7 @@ </message> <message> <source>Error: Cannot parse configuration file: %1.</source> - <translation>Ошибка : Не возможно разобрать файл конфигурации: %1.</translation> + <translation>Ошибка : Невозможно разобрать файл конфигурации: %1.</translation> </message> <message> <source>Error: %1</source> @@ -1619,7 +1647,7 @@ </message> <message> <source>QR code support not available.</source> - <translation>Поддержка QR кодов не доступна.</translation> + <translation>Поддержка QR кодов недоступна.</translation> </message> <message> <source>Save QR Code</source> @@ -1627,7 +1655,7 @@ </message> <message> <source>PNG Image (*.png)</source> - <translation>PNG Картинка (*.png)</translation> + <translation>PNG Image (*.png)</translation> </message> </context> <context> @@ -1761,10 +1789,22 @@ <translation>Синхронизировано блоков</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>The mapped Autonomous System used for diversifying peer selection.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapped AS</translation> + </message> + <message> <source>User Agent</source> <translation>Пользовательский агент</translation> </message> <message> + <source>Node window</source> + <translation>Окно узла</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Открыть отладочный лог-файл %1 с текущего каталога данных. Для больших лог-файлов это может занять несколько секунд.</translation> </message> @@ -1870,7 +1910,7 @@ </message> <message> <source>&Disconnect</source> - <translation>&Отключится</translation> + <translation>&Отключиться</translation> </message> <message> <source>Ban for</source> @@ -1882,7 +1922,7 @@ </message> <message> <source>Welcome to the %1 RPC console.</source> - <translation>Добро пожаловать в %1 RPC консоль</translation> + <translation>Добро пожаловать в %1 RPC-консоль</translation> </message> <message> <source>Use up and down arrows to navigate history, and %1 to clear screen.</source> @@ -1894,7 +1934,7 @@ </message> <message> <source>For more information on using this console type %1.</source> - <translation>Для получения дополнительных сведений об использовании этой консоли, введите %1.</translation> + <translation>Для получения дополнительных сведений об использовании этой консоли введите %1.</translation> </message> <message> <source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</source> @@ -1973,7 +2013,15 @@ </message> <message> <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source> - <translation>Необязательная сумма для запроса. Оставьте пустым или укажите ноль, чтобы запросить неопределённую сумму.</translation> + <translation>Необязательная сумма для запроса. Оставьте пустым или укажите ноль, чтобы не запрашивать определённую сумму.</translation> + </message> + <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Необязательная метка, ассоциированная с новым адресом приёма (используется вами, чтобы идентифицировать выставленный счёт). Также она присоединяется к запросу платежа.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Необязательное сообщение, которое присоединяется к запросу платежа и может быть показано отправителю.</translation> </message> <message> <source>&Create new receiving address</source> @@ -1989,7 +2037,7 @@ </message> <message> <source>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</source> - <translation>"Родные" segwit адреса (Bech32 или BIP-173) в дальнейшем уменьшат комиссии ваших транзакций и предоставят улучшенную защиту от опечаток, однако старые кошельки не поддерживают эти адреса. Если не выбрано, будет создан совместимый со старыми кошелёк.</translation> + <translation>"Родные" segwit-адреса (Bech32 или BIP-173) в дальнейшем уменьшат комиссии ваших транзакций и предоставят улучшенную защиту от опечаток, однако старые кошельки не поддерживают эти адреса. Если не выбрано, будет создан совместимый со старыми кошелёк.</translation> </message> <message> <source>Generate native segwit (Bech32) address</source> @@ -2190,7 +2238,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis.</source> <translation>Укажите пользовательскую плату за килобайт (1000 байт) виртуального размера транзакции. -Примечание: Так как комиссия рассчитывается на основе каждого байта, комиссия "100 сатошей за КБ " для транзакции размером 500 байт (половина 1 КБ) в конечном счете, приведет к сбору только 50 сатошей.</translation> +Примечание: Так как комиссия рассчитывается на основе каждого байта, комиссия "100 сатошей за КБ " для транзакции размером 500 байт (половина 1 КБ) в конечном счете приведет к сбору только 50 сатошей.</translation> </message> <message> <source>per kilobyte</source> @@ -2198,7 +2246,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Hide</source> - <translation>Спрятать</translation> + <translation>Скрыть</translation> </message> <message> <source>Recommended:</source> @@ -2301,6 +2349,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>%1 (%2 блоков)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>Создать Без Подписи</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</translation> + </message> + <message> <source> from wallet '%1'</source> <translation>с кошелька '%1'</translation> </message> @@ -2313,10 +2369,18 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>С %1 на %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Вы хотите подготовить черновик транзакции?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Вы действительно хотите выполнить отправку?</translation> </message> <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</translation> + </message> + <message> <source>or</source> <translation>или</translation> </message> @@ -2349,10 +2413,26 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>Подтвердить отправку монет</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Подтвердите предложенную транзакцию</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Копировать PSBT в буфер обмена</translation> + </message> + <message> <source>Send</source> <translation>Отправить</translation> </message> <message> + <source>PSBT copied</source> + <translation>PSBT скопирована</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Баланс только для просмотра:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Адрес получателя неверный. Пожалуйста, перепроверьте.</translation> </message> @@ -2448,6 +2528,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>Удалить эту запись</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>The amount to send in the selected unit</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>С отправляемой суммы будет удержана комиссия. Получателю придёт меньше биткойнов, чем вы вводите в поле количества. Если выбрано несколько получателей, комиссия распределяется поровну.</translation> </message> @@ -2465,7 +2549,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>This is an unauthenticated payment request.</source> - <translation>Это не проверенный запрос на оплату.</translation> + <translation>Это непроверенный запрос на оплату.</translation> </message> <message> <source>This is an authenticated payment request.</source> @@ -2477,7 +2561,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source> - <translation>Сообщение прикрепленное к биткойн идентификатору будет сохранено вместе с транзакцией для вашего сведения. Заметьте: Сообщение не будет отправлено через сеть Биткойн.</translation> + <translation>Сообщение, прикрепленное к биткойн-идентификатору, будет сохранено вместе с транзакцией для вашего сведения. Заметьте: Сообщение не будет отправлено через сеть Биткойн.</translation> </message> <message> <source>Pay To:</source> @@ -2567,13 +2651,21 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source> - <translation>Введите ниже адрес получателя, сообщение (убедитесь, что переводы строк, пробелы, табы и т.п. в точности скопированы) и подпись, чтобы проверить сообщение. Убедитесь, что не скопировали лишнего в подпись, по сравнению с самим подписываемым сообщением, чтобы не стать жертвой атаки "man-in-the-middle". Заметьте, что эта операция удостоверяет лишь авторство подписавшего, но не может удостоверить отправителя транзакции.</translation> + <translation>Введите ниже адрес получателя, сообщение (убедитесь, что переводы строк, пробелы, табы и т.п. в точности скопированы) и подпись, чтобы проверить сообщение. Убедитесь, что не скопировали лишнего в подпись, сравнив с самим подписываемым сообщением, чтобы не стать жертвой атаки "man-in-the-middle". Заметьте, что эта операция удостоверяет лишь авторство подписавшего, но не может удостоверить отправителя транзакции.</translation> </message> <message> <source>The Bitcoin address the message was signed with</source> <translation>Биткойн-адрес, которым было подписано сообщение</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Подписанное сообщение для проверки</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>The signature given when the message was signed</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Проверить сообщение, чтобы убедиться, что оно было подписано указанным Биткойн-адресом</translation> </message> @@ -2646,7 +2738,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <name>TrafficGraphWidget</name> <message> <source>KB/s</source> - <translation>КБ/сек</translation> + <translation>КБ/с</translation> </message> </context> <context> @@ -2661,7 +2753,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>conflicted with a transaction with %1 confirmations</source> - <translation>конфликт с транзакцией с %1 подтверждений</translation> + <translation>конфликт с транзакцией с %1 подтверждениями</translation> </message> <message> <source>0/unconfirmed, %1</source> @@ -3070,7 +3162,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>ID</source> - <translation>ИН</translation> + <translation>ID</translation> </message> <message> <source>Exporting Failed</source> @@ -3145,6 +3237,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>Желаете увеличить комиссию?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Do you want to draft a transaction with fee increase?</translation> + </message> + <message> <source>Current fee:</source> <translation>Текущая комиссия:</translation> </message> @@ -3161,6 +3257,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>Подтвердите оплату</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>Невозможно подготовить черновик транзакции.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT скопирована</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>Невозможно подписать транзакцию</translation> </message> @@ -3248,7 +3352,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> - <translation>Невозможно заблокировать каталог данных %s. %s возможно уже работает.</translation> + <translation>Невозможно заблокировать каталог данных %s. %s, возможно, уже работает.</translation> </message> <message> <source>Cannot provide specific connections and have addrman find outgoing connections at the same.</source> @@ -3260,7 +3364,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source> - <translation>Пожалуйста убедитесь в корректности установки времени и даты на вашем компьютере! Если время установлено неверно, %s не будет работать правильно.</translation> + <translation>Пожалуйста, убедитесь в корректности установки времени и даты на вашем компьютере! Если время установлено неверно, %s не будет работать правильно.</translation> </message> <message> <source>Please contribute if you find %s useful. Visit %s for further information about the software.</source> @@ -3268,7 +3372,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> - <translation>База данных блоков содержит блок, который появляется из будущего. Это может из-за некорректно установленных даты и времени на вашем компьютере. Остается только перестраивать базу блоков, если вы уверены, что дата и время корректны.</translation> + <translation>База данных блоков содержит блок, который появляется из будущего. Это может произойти из-за некорректно установленных даты и времени на вашем компьютере. Остается только перестраивать базу блоков, если вы уверены, что дата и время корректны.</translation> </message> <message> <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> @@ -3276,7 +3380,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>This is the transaction fee you may discard if change is smaller than dust at this level</source> - <translation>Это плата за транзакцию, которую вы можете отменить, если изменения меньше чем пыль</translation> + <translation>Это плата за транзакцию, которую вы можете отменить, если изменения меньше, чем пыль</translation> </message> <message> <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source> @@ -3372,7 +3476,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Failed to listen on any port. Use -listen=0 if you want this.</source> - <translation>Не удалось начать прослушивание на порту. Используйте -listen=0 если вас это устраивает.</translation> + <translation>Не удалось начать прослушивание на порту. Используйте -listen=0, если вас это устраивает.</translation> </message> <message> <source>Failed to rescan the wallet during initialization</source> @@ -3436,7 +3540,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Not enough file descriptors available.</source> - <translation>Недоступно достаточного количества дескрипторов файла.</translation> + <translation>Недоступно достаточное количество дескрипторов файла.</translation> </message> <message> <source>Prune cannot be configured with a negative value.</source> @@ -3646,7 +3750,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>The wallet will avoid paying less than the minimum relay fee.</source> - <translation>Кошелёк будет избегать оплат меньших, нежели минимальная комиссия передачи.</translation> + <translation>Кошелёк будет избегать оплат меньше минимальной комиссии передачи.</translation> </message> <message> <source>This is the minimum transaction fee you pay on every transaction.</source> @@ -3678,7 +3782,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> - <translation>Невозможно обновить не разделенный HD кошелёк без обновления для поддержки предварительно разделенного пула ключей. Пожалуйста, используйте -upgradewallet=169900 или -upgradeallet без указания версии.</translation> + <translation>Невозможно обновить неразделенный HD кошелёк без обновления для поддержки предварительно разделенного пула ключей. Пожалуйста, используйте -upgradewallet=169900 или -upgradeallet без указания версии.</translation> </message> <message> <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> diff --git a/src/qt/locale/bitcoin_si.ts b/src/qt/locale/bitcoin_si.ts index fbcc8ae7bb..bf3f976e1e 100644 --- a/src/qt/locale/bitcoin_si.ts +++ b/src/qt/locale/bitcoin_si.ts @@ -2,10 +2,38 @@ <context> <name>AddressBookPage</name> <message> + <source>Right-click to edit address or label</source> + <translation>ලිපිනය හෝ ලේබලය සංස්කරණය කිරීමට දකුණු මූසික බොත්තම ක්ලික් කරන්න</translation> + </message> + <message> <source>Create a new address</source> <translation>නව ලිපිනයක් සාදන්න</translation> </message> <message> + <source>&New</source> + <translation>නව</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>දැනට තෝරාගෙන ඇති ලිපිනය පද්ධති පසුරු පුවරුවට (clipboard) පිටපත් කරන්න</translation> + </message> + <message> + <source>&Copy</source> + <translation>පිටපත් කරන්න</translation> + </message> + <message> + <source>C&lose</source> + <translation>වසා දමන්න</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>දැනට තෝරාගත් ලිපිනය ලැයිස්තුවෙන් ඉවත් කරන්න</translation> + </message> + <message> + <source>Enter address or label to search</source> + <translation>සෙවීමට ලිපිනය හෝ ලේබලය ඇතුළත් කරන්න</translation> + </message> + <message> <source>Choose the address to send coins to</source> <translation>කාසි යැවිය යුතු ලිපිනය තෝරන්න</translation> </message> @@ -21,7 +49,23 @@ <source>Receiving addresses</source> <translation>ලබන ලිපින</translation> </message> - </context> + <message> + <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> + <translation>මේවා ඔබගේ ගෙවීම් යැවීම සඳහා වන බිට්කොයින් ලිපින වේ. කාසි යැවීමට පෙර සෑම විටම මුදල සහ ලැබීමේ ලිපිනය පරීක්ෂා කරන්න.</translation> + </message> + <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation> මේවා ඔබගේ ගෙවීම් ලැබීම සඳහා වන බිට්කොයින් ලිපින වේ. නව ලිපින සෑදීම සඳහා ලැබීම් ටැබ් එකෙහි ඇති 'නව ලැබීමේ ලිපිනයක් සාදන්න' බොත්තම භාවිතා කරන්න.</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>කොමා වලින් වෙන් කරන ලද ගොනුව (* .csv)</translation> + </message> + <message> + <source>There was an error trying to save the address list to %1. Please try again.</source> + <translation>ලිපින ලැයිස්තුව %1 ට සුරැකීමට උත්සාහ කිරීමේදී දෝෂයක් ඇතිවිය. කරුණාකර නැවත උත්සාහ කරන්න.</translation> + </message> +</context> <context> <name>AddressTableModel</name> <message> @@ -39,13 +83,141 @@ </context> <context> <name>AskPassphraseDialog</name> - </context> + <message> + <source>Passphrase Dialog</source> + <translation>මුරපද කවුළුව</translation> + </message> + <message> + <source>Enter passphrase</source> + <translation>මුරපදය ඇතුල් කරන්න</translation> + </message> + <message> + <source>New passphrase</source> + <translation>නව මුරපදය</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>නව මුරපදය නැවත ඇතුලත් කරන්න</translation> + </message> + <message> + <source>Show passphrase</source> + <translation>මුරපදය පෙන්වන්න</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>පසුම්බිය සංකේතනය කරන්න</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>පසුම්බිය අගුළු ඇරීමේ මෙම ක්රියාවලියට ඔබේ පසුම්බියේ මුරපදය අවශ්ය වේ.</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>පසුම්බිය අගුළු අරින්න</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>පසුම්බිය විකේතනය කිරීමේ මෙම ක්රියාවලියට ඔබේ පසුම්බියේ මුරපදය අවශ්ය වේ.</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>පසුම්බිය විකේතනය කරන්න</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>මුරපදය වෙනස් කරන්න</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>පසුම්බි සංකේතනය තහවුරු කරන්න</translation> + </message> + <message> + <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> + <translation>අවවාදයයි: ඔබ ඔබේ මුදල් පසුම්බිය සංකේතනය කල පසු ඔබගේ මුරපදය නැති වුවහොත්, ඔබේ <b>බිට්කොයින් සියල්ලම ඔබට අහිමි වනු ඇත</b>!</translation> + </message> + <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>ඔබේ මුදල් පසුම්බිය සංකේතනය කිරීමේ අවශ්යතාව තහවුරු කරන්න?</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>පසුම්බිය සංකේතනය කර ඇත</translation> + </message> + <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>පසුම්බිය සඳහා නව මුරපදය ඇතුළත් කරන්න.<br/>කරුණාකර මුරපදය සඳහා <b>අහඹු අක්ෂර දහයක් හෝ වැඩි ගණනක්</b>, හෝ <b>වචන අටක් හෝ වැඩි ගණනක්</b>භාවිතා කරන්න.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>පසුම්බිය සඳහා පැරණි මුරපදය සහ නව මුරපදය ඇතුළත් කරන්න.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>ඔබේ මුදල් පසුම්බිය සංකේතනය කිරීමෙන් ඔබේ පරිගණකයට අනිෂ්ට මෘදුකාංග (malware) ඇතුලු වීමෙන් කෙරෙන බිට්කොයින් සොරකම් කිරීම් වලින් සම්පූර්ණයෙන්ම වැළැක්වීම කළ නොහැකි බව මතක තබා ගන්න.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>සංකේතනය කළ යුතු පසුම්බිය</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>ඔබේ මුදල් පසුම්බිය සංකේතනය කිරීමට ආසන්නයි.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>ඔබගේ මුදල් පසුම්බිය දැන් සංකේතනය කර ඇත.</translation> + </message> + <message> + <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> + <translation>වැදගත්: ඔබගේ පසුම්බි ගොනුවෙන් ඔබ විසින් සාදන ලද පෙර උපස්ථයන්(backups) අලුතින් ජනනය කරන ලද, සංකේතනය කළ පසුම්බි ගොනුව සමඟ ප්රතිස්ථාපනය(replace) කළ යුතුය. ආරක්ෂක හේතූන් මත, ඔබ නව, සංකේතනය කළ පසුම්බිය භාවිතා කිරීමට පටන් ගත් වහාම සංකේතනය නොකළ පසුම්බි ගොනුවේ පෙර උපස්ථ අක්රීය වනු ඇත.</translation> + </message> + <message> + <source>Wallet encryption failed</source> + <translation>පසුම්බි සංකේතනය අසාර්ථක විය</translation> + </message> + <message> + <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source> + <translation>අභ්යන්තර දෝෂයක් හේතුවෙන් පසුම්බි සංකේතනය අසාර්ථක විය. ඔබගේ මුදල් පසුම්බිය සංකේතනය වී නොමැත.</translation> + </message> + <message> + <source>The supplied passphrases do not match.</source> + <translation>සපයන ලද මුරපද නොගැලපේ.</translation> + </message> + <message> + <source>Wallet unlock failed</source> + <translation>පසුම්බි අගුළු ඇරීම අසාර්ථක විය</translation> + </message> + <message> + <source>The passphrase entered for the wallet decryption was incorrect.</source> + <translation>පසුම්බිය විකේතනය සඳහා ඇතුළත් කළ මුරපදය වැරදිය.</translation> + </message> + <message> + <source>Wallet decryption failed</source> + <translation>පසුම්බි විකේතනය අසාර්ථකයි.</translation> + </message> + <message> + <source>Wallet passphrase was successfully changed.</source> + <translation>පසුම්බි මුරපදය සාර්ථකව වෙනස් කරන ලදි.</translation> + </message> + <message> + <source>Warning: The Caps Lock key is on!</source> + <translation>අවවාදයයි: කැප්ස් ලොක් යතුර ක්රියාත්මකයි!</translation> + </message> +</context> <context> <name>BanTableModel</name> + <message> + <source>IP/Netmask</source> + <translation>IP/Netmask</translation> + </message> </context> <context> <name>BitcoinGUI</name> <message> + <source>Browse transaction history</source> + <translation>ගනුදෙනු ඉතිහාසය පිරික්සන්න</translation> + </message> + <message> <source>Warning</source> <translation>අවවාදය</translation> </message> @@ -277,6 +449,10 @@ <context> <name>TransactionView</name> <message> + <source>Comma separated file (*.csv)</source> + <translation>කොමා වලින් වෙන් කරන ලද ගොනුව (* .csv)</translation> + </message> + <message> <source>Date</source> <translation>දිනය</translation> </message> diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/bitcoin_sk.ts index 8435a49319..0b2b26c0c7 100644 --- a/src/qt/locale/bitcoin_sk.ts +++ b/src/qt/locale/bitcoin_sk.ts @@ -482,6 +482,14 @@ <translation>Aktualizovaný</translation> </message> <message> + <source>Node window</source> + <translation>Uzlové okno</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Otvor konzolu pre ladenie a diagnostiku uzlu</translation> + </message> + <message> <source>&Sending addresses</source> <translation>&Odosielajúce adresy</translation> </message> @@ -490,6 +498,10 @@ <translation>&Prijímajúce adresy</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Otvoriť bitcoin: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Otvoriť peňaženku</translation> </message> @@ -944,7 +956,7 @@ </message> <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> - <translation>Prvá synchronizácia je veľmi náročná a môžu sa tak vďaka nej začat na Vašom počítači projavovať doteraz skryté hárdwarové problémy. Vždy, keď spustíte %1, bude sťahovanie pokračovať tam, kde skončilo.</translation> + <translation>Prvá synchronizácia je veľmi náročná a môžu sa tak vďaka nej začat na Vašom počítači prejavovať doteraz skryté hardwarové problémy. Vždy, keď spustíte %1, bude sťahovanie pokračovať tam, kde naposledy skončilo.</translation> </message> <message> <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source> @@ -1050,6 +1062,14 @@ <translation>Skryť</translation> </message> <message> + <source>Esc</source> + <translation>Esc - úniková klávesa</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 sa práve synchronizuje. Sťahujú sa hlavičky a bloky od partnerov. Tie sa budú sa overovať až sa kompletne overí celý reťazec blokov - blockchain.</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Neznámy. Synchronizujú sa hlavičky (%1, %2%)...</translation> </message> @@ -1057,6 +1077,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Otvoriť bitcoin URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -1449,6 +1473,10 @@ <translation>'bitcoin://' je neplatná URI. Použite 'bitcoin:'</translation> </message> <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Nemožno spracovať žiadosť o platbu, pretože podpora pre BIP70 nieje podporovaná.</translation> + </message> + <message> <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> <translation>Kvôli mnohým bezpečnostným chybám v BIP70 sa dôrazne odporúča ignorovať inštrukcie na prepínanie peňaženiek od akýchkoľvek obchodníkov.</translation> </message> @@ -1762,10 +1790,22 @@ <translation>Synchronizované bloky</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Mapovaný nezávislý - Autonómny Systém používaný na rozšírenie vzájomného výberu partnerov.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapovaný AS</translation> + </message> + <message> <source>User Agent</source> <translation>Aplikácia</translation> </message> <message> + <source>Node window</source> + <translation>Uzlové okno</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Otvoriť %1 ladiaci výpis z aktuálnej zložky. Pre veľké súbory to môže chvíľu trvať.</translation> </message> @@ -1977,8 +2017,16 @@ <translation>Voliteľná požadovaná suma. Nechajte prázdne alebo nulu ak nepožadujete určitú sumu.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Voliteľný popis ktorý sa pridá k tejto novej prijímajúcej adrese (pre jednoduchšiu identifikáciu). Tento popis je taktiež pridaný do výzvy k platbe.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Voliteľná správa ktorá bude pridaná k tejto platobnej výzve a môže byť zobrazená odosielateľovi.</translation> + </message> + <message> <source>&Create new receiving address</source> - <translation>Vytvoriť novú adresu pre prijímanie</translation> + <translation>&Vytvoriť novú príjmaciu adresu</translation> </message> <message> <source>Clear all fields of the form.</source> @@ -2230,6 +2278,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>Prach:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Skryť nastavenie poplatkov transakcie</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>Ak je v blokoch menej objemu transakcií ako priestoru, ťažiari ako aj vysielacie uzly, môžu uplatniť minimálny poplatok. Platiť iba minimálny poplatok je v poriadku, ale uvedomte si, že to môže mať za následok transakciu, ktorá sa nikdy nepotvrdí, akonáhle je väčší dopyt po bitcoinových transakciách, než dokáže sieť spracovať.</translation> </message> @@ -2298,6 +2350,14 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>%1 (%2 blokov)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>Vytvoriť bez podpisu</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Vytvorí čiastočne podpísanú Bitcoin transakciu (Partially Signed Bitcoin Transaction - PSBT) na použitie napríklad s offline %1 peňaženkou alebo v hardvérovej peňaženke kompatibilnej s PSBT.</translation> + </message> + <message> <source> from wallet '%1'</source> <translation> z peňaženky '%1'</translation> </message> @@ -2310,6 +2370,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>%1 do %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Chcete naplánovať túto transakciu?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Určite chcete odoslať transakciu?</translation> </message> @@ -2346,6 +2410,26 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>Potvrďte odoslanie mincí</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Potvrdiť návrh transakcie</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Skopírovať PSBT do schránky</translation> + </message> + <message> + <source>Send</source> + <translation>Odoslať</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT skopírovaný</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Iba sledovaný zostatok:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Adresa príjemcu je neplatná. Prosím, overte ju.</translation> </message> @@ -2441,6 +2525,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>Odstrániť túto položku</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>Suma na odoslanie vo vybranej mene</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>Poplatok sa odpočíta od čiastky, ktorú odosielate. Príjemca dostane menej bitcoinov ako zadáte. Ak je vybraných viacero príjemcov, poplatok je rozdelený rovným dielom.</translation> </message> @@ -2567,6 +2655,14 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>Adresa Bitcoin, ktorou bola podpísaná správa</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Podpísaná správa na overenie</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>Poskytnutý podpis pri podpísaní správy</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Overím správy sa uistiť že bola podpísaná označenou Bitcoin adresou</translation> </message> @@ -2599,6 +2695,10 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>Odomknutie peňaženky bolo zrušené.</translation> </message> <message> + <source>No error</source> + <translation>Bez chyby</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>Súkromný kľúč pre zadanú adresu nieje k dispozícii.</translation> </message> @@ -3131,7 +3231,11 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato </message> <message> <source>Do you want to increase the fee?</source> - <translation>Chceš poplatok navýšiť?</translation> + <translation>Chcete navýšiť poplatok?</translation> + </message> + <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Chcete naplánovať túto transakciu s navýšením poplatkov.</translation> </message> <message> <source>Current fee:</source> @@ -3150,6 +3254,14 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>Potvrď navýšenie poplatku</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>Nemožno naplánovať túto transakciu.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT skopírovaný</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>Nemôzeme podpíaať transakciu.</translation> </message> @@ -3316,6 +3428,14 @@ Poznámka: Keďže poplatok je počítaný za bajt, poplatok o hodnote "100 sato <translation>Zistená poškodená databáza blokov</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>Nepodarilo sa nájsť asmap súbor %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Nepodarilo sa analyzovať asmap súbor %s</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>Chcete znovu zostaviť databázu blokov?</translation> </message> diff --git a/src/qt/locale/bitcoin_sl.ts b/src/qt/locale/bitcoin_sl.ts index 251c040a22..fffb181e76 100644 --- a/src/qt/locale/bitcoin_sl.ts +++ b/src/qt/locale/bitcoin_sl.ts @@ -267,7 +267,7 @@ </message> <message> <source>Show general overview of wallet</source> - <translation>Oglejte si splošne informacije o vaši denarnici</translation> + <translation>Oglejte si splošne informacije o svoji denarnici</translation> </message> <message> <source>&Transactions</source> @@ -1435,7 +1435,7 @@ </message> <message> <source>Spendable:</source> - <translation>Na voljo:</translation> + <translation>Na voljo za pošiljanje:</translation> </message> <message> <source>Recent transactions</source> @@ -1789,6 +1789,14 @@ <translation>Sinhronizirani bloki</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Mapirani Avtonomski Sistem, uporabljan za diverzificiranje izbire soležnikov.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Mapirani AS</translation> + </message> + <message> <source>User Agent</source> <translation>Ime agenta</translation> </message> @@ -2350,15 +2358,15 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" </message> <message> <source> from wallet '%1'</source> - <translation>iz denarnice '%1'</translation> + <translation> iz denarnice '%1'</translation> </message> <message> <source>%1 to '%2'</source> - <translation>%1 do '%2'</translation> + <translation>%1 v '%2'</translation> </message> <message> <source>%1 to %2</source> - <translation>%1 do %2</translation> + <translation>%1 v %2</translation> </message> <message> <source>Do you want to draft this transaction?</source> @@ -2366,7 +2374,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" </message> <message> <source>Are you sure you want to send?</source> - <translation>Ali ste prepričani, da želite poslati?</translation> + <translation>Ali ste prepričani, da želite poslati sredstva?</translation> </message> <message> <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> @@ -2382,7 +2390,7 @@ Opomba: Ker se provizija izračuna na bajt, bi provizija "100 satoshijev na kB" </message> <message> <source>Please, review your transaction.</source> - <translation>Prosimo, preglejte vaše transakcije.</translation> + <translation>Prosimo, preglejte svojo transakcijo.</translation> </message> <message> <source>Transaction fee</source> diff --git a/src/qt/locale/bitcoin_sq.ts b/src/qt/locale/bitcoin_sq.ts index da3551e241..3a9949488f 100644 --- a/src/qt/locale/bitcoin_sq.ts +++ b/src/qt/locale/bitcoin_sq.ts @@ -116,6 +116,10 @@ <translation>Përsërisni fjalëkalimin e ri</translation> </message> <message> + <source>Show passphrase</source> + <translation>Shfaqe fjalëkalimin</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>Kripto portofolin</translation> </message> @@ -152,6 +156,14 @@ <translation>Portofoli u enkriptua</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Jepe fjalëkalimin e ri për portofolin. Ju lutemi të përdorni një fjalkalim prej dhjetë ose më shumë shkronjave të rëndomta, ose tetë e më shumë fjalë.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Jepe fjalëkalimin e vjetër dhe fjalkalimin e ri për portofolin.</translation> + </message> + <message> <source>Wallet encryption failed</source> <translation>Enkriptimi i portofolit dështoi</translation> </message> diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/bitcoin_sr.ts index fecdb44c86..8e511ba027 100644 --- a/src/qt/locale/bitcoin_sr.ts +++ b/src/qt/locale/bitcoin_sr.ts @@ -7,7 +7,7 @@ </message> <message> <source>Create a new address</source> - <translation>Направите нову адресу</translation> + <translation>Направи нову адресу</translation> </message> <message> <source>&New</source> @@ -27,15 +27,15 @@ </message> <message> <source>Delete the currently selected address from the list</source> - <translation>Обришите тренутно одабрану адресу са листе</translation> + <translation>Обриши тренутно одабрану адресу са листе</translation> </message> <message> <source>Enter address or label to search</source> - <translation>Navedite adresu ili naziv koji bi ste potražili</translation> + <translation>Унеси адресу или назив ознаке за претрагу</translation> </message> <message> <source>Export the data in the current tab to a file</source> - <translation>Извези податке из одабране картице у фајлj</translation> + <translation>Извези податке из одабране картице у датотеку</translation> </message> <message> <source>&Export</source> @@ -47,15 +47,15 @@ </message> <message> <source>Choose the address to send coins to</source> - <translation>Изаберите адресу за слање</translation> + <translation>Одабери адресу за слање</translation> </message> <message> <source>Choose the address to receive coins with</source> - <translation>Изаберите адресу за примање</translation> + <translation>Одабери адресу за примање</translation> </message> <message> <source>C&hoose</source> - <translation>&Изабери</translation> + <translation>&Одабери</translation> </message> <message> <source>Sending addresses</source> @@ -67,7 +67,11 @@ </message> <message> <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> - <translation>Ово су ваше Биткоин адресе за слање уплата. Увек добро проверите износ и адресу на коју шаљете пре него што пошаљете уплату.</translation> + <translation>Ово су твоје Биткоин адресе за слање уплата. Увек добро провери износ и адресу на коју шаљеш пре него што пошаљеш уплату.</translation> + </message> + <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>Ово су твоје Биткоин адресе за примање уплата. Користи дугме „Направи нову адресу за примање” у картици за примање за креирање нових адреса.</translation> </message> <message> <source>&Copy Address</source> @@ -102,7 +106,7 @@ <name>AddressTableModel</name> <message> <source>Label</source> - <translation>Етикета</translation> + <translation>Ознака</translation> </message> <message> <source>Address</source> @@ -110,7 +114,7 @@ </message> <message> <source>(no label)</source> - <translation>(без етикете)</translation> + <translation>(без ознаке)</translation> </message> </context> <context> @@ -121,7 +125,7 @@ </message> <message> <source>Enter passphrase</source> - <translation>Унесите лозинку</translation> + <translation>Унеси лозинку</translation> </message> <message> <source>New passphrase</source> @@ -129,7 +133,11 @@ </message> <message> <source>Repeat new passphrase</source> - <translation>Поновите нову лозинку</translation> + <translation>Понови нову лозинку</translation> + </message> + <message> + <source>Show passphrase</source> + <translation>Прикажи лозинку</translation> </message> <message> <source>Encrypt wallet</source> @@ -137,7 +145,7 @@ </message> <message> <source>This operation needs your wallet passphrase to unlock the wallet.</source> - <translation>Ова операција захтева да унесете лозинку новчаника како би откључали новчаник.</translation> + <translation>Ова операција захтева да унесеш лозинку новчаника како би се новчаник откључао.</translation> </message> <message> <source>Unlock wallet</source> @@ -145,7 +153,7 @@ </message> <message> <source>This operation needs your wallet passphrase to decrypt the wallet.</source> - <translation>Ова операција захтева да унесете лозинку новчаника како би дешифровали новчаник.</translation> + <translation>Ова операција захтева да унесеш лозинку новчаника како би новчаник био дешифрован.</translation> </message> <message> <source>Decrypt wallet</source> @@ -153,7 +161,7 @@ </message> <message> <source>Change passphrase</source> - <translation>Измену лозинку</translation> + <translation>Измени лозинку</translation> </message> <message> <source>Confirm wallet encryption</source> @@ -161,7 +169,7 @@ </message> <message> <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> - <translation>Упозорење: Уколико шифрирате новчаник и изгубите своју лозинку, <b>ИЗГУБИЋЕТЕ СВЕ СВОЈЕ БИТКОИНЕ</b>!</translation> + <translation>Упозорење: Уколико шифрираш новчаник и изгубиш своју лозинку, <b>ИЗГУБИЋЕШ СВЕ СВОЈЕ БИТКОИНЕ</b>!</translation> </message> <message> <source>Are you sure you wish to encrypt your wallet?</source> @@ -172,6 +180,30 @@ <translation>Новчаник шифриран</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Унеси нову лозинку за новчаник<br/>Молимо користи лозинку од десет или више насумичних карактера<b>,или<b>осам или више речи</b>.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Унеси стару лозинку и нову лозинку новчаника.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>Упамти, шифрирање новчаника не може у потуности заштити твоје биткоине од крађе од стране малвера инфицира твој рачунар.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>Новчаник за шифрирање</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Твој новчаник биће шифриран.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Твој новчаник сада је шифриран.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>ВАЖНО: Свакa претходнa резерва новчаника коју сте имали треба да се замени новим, шифрираним фајлом новчаника. Из сигурносних разлога, свака претходна резерва нешифрираног фајла новчаника постаће сувишна, чим почнете да користите нови, шифрирани новчаник.</translation> </message> @@ -205,7 +237,7 @@ </message> <message> <source>Warning: The Caps Lock key is on!</source> - <translation>Упозорање Caps Lock дугме укључено.</translation> + <translation>Упозорање Caps Lock дугме укључено!</translation> </message> </context> <context> @@ -267,7 +299,7 @@ </message> <message> <source>Show information about Qt</source> - <translation>Прегледајте информације о Qt-у</translation> + <translation>Прегледај информације о Qt-у</translation> </message> <message> <source>&Options...</source> @@ -287,15 +319,23 @@ </message> <message> <source>&Change Passphrase...</source> - <translation>Промени &лозинку...</translation> + <translation>& Промени лозинку...</translation> </message> <message> <source>Open &URI...</source> - <translation>Отвори &УРИ...</translation> + <translation>Отвори &URI...</translation> + </message> + <message> + <source>Create Wallet...</source> + <translation>Направи Новчаник...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Направи нови ночаник</translation> </message> <message> <source>Wallet:</source> - <translation>Новчаник</translation> + <translation>Новчаник:</translation> </message> <message> <source>Click to disable network activity.</source> @@ -315,7 +355,7 @@ </message> <message> <source>Reindexing blocks on disk...</source> - <translation>Поново идексирање блокова на диску.</translation> + <translation>Поново идексирање блокова на диску...</translation> </message> <message> <source>Proxy is <b>enabled</b>: %1</source> @@ -323,11 +363,11 @@ </message> <message> <source>Send coins to a Bitcoin address</source> - <translation>Пошаљите новац на Биткоин адресу</translation> + <translation>Пошаљи новац на Биткоин адресу</translation> </message> <message> <source>Backup wallet to another location</source> - <translation>Направите резервну копију новчаника на другој локацији</translation> + <translation>Направи резервну копију новчаника на другој локацији</translation> </message> <message> <source>Change the passphrase used for wallet encryption</source> @@ -427,7 +467,7 @@ </message> <message> <source>Error</source> - <translation>Greška</translation> + <translation>Грешка</translation> </message> <message> <source>Warning</source> @@ -439,7 +479,43 @@ </message> <message> <source>Up to date</source> - <translation>Ажурно</translation> + <translation>Ажурирано</translation> + </message> + <message> + <source>Node window</source> + <translation>Ноде прозор</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Отвори конзолу за ноде дебуг и дијагностику</translation> + </message> + <message> + <source>&Sending addresses</source> + <translation>&Адресе за слање</translation> + </message> + <message> + <source>&Receiving addresses</source> + <translation>&Адресе за примање</translation> + </message> + <message> + <source>Open a bitcoin: URI</source> + <translation>Отвори биткоин: URI</translation> + </message> + <message> + <source>Open Wallet</source> + <translation>Отвори новчаник</translation> + </message> + <message> + <source>Open a wallet</source> + <translation>Отвори новчаник</translation> + </message> + <message> + <source>Close Wallet...</source> + <translation>Затвори новчаник...</translation> + </message> + <message> + <source>Close wallet</source> + <translation>Затвори новчаник</translation> </message> <message> <source>Show the %1 help message to get a list with possible Bitcoin command-line options</source> @@ -450,14 +526,42 @@ <translation>подразумевани новчаник</translation> </message> <message> + <source>No wallets available</source> + <translation>Нема доступних новчаника</translation> + </message> + <message> + <source>Minimize</source> + <translation>Умањи</translation> + </message> + <message> + <source>Zoom</source> + <translation>Увећај</translation> + </message> + <message> + <source>Main Window</source> + <translation>Главни прозор</translation> + </message> + <message> <source>%1 client</source> <translation>%1 клијент</translation> </message> <message> + <source>Connecting to peers...</source> + <translation>Повезивање са клијентима...</translation> + </message> + <message> <source>Catching up...</source> <translation>Ажурирање у току...</translation> </message> <message> + <source>Error: %1</source> + <translation>Грешка: %1</translation> + </message> + <message> + <source>Warning: %1</source> + <translation>Упозорење: %1</translation> + </message> + <message> <source>Date: %1 </source> <translation>Датум: %1 @@ -484,7 +588,7 @@ <message> <source>Label: %1 </source> - <translation>Етикета: %1 + <translation>Ознака: %1 </translation> </message> <message> @@ -495,11 +599,11 @@ </message> <message> <source>Sent transaction</source> - <translation>Послана трансакција</translation> + <translation>Послата трансакција</translation> </message> <message> <source>Incoming transaction</source> - <translation>Придошла трансакција</translation> + <translation>Долазна трансакција</translation> </message> <message> <source>HD key generation is <b>enabled</b></source> @@ -510,8 +614,12 @@ <translation>Генерисање ХД кључа је <b>онеомогућено</b></translation> </message> <message> + <source>Private key <b>disabled</b></source> + <translation>Приватни кључ <b>онемогућен</b></translation> + </message> + <message> <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> - <translation>Новчаник јс <b>шифрован</b> и тренутно <b>откључан</b></translation> + <translation>Новчаник јс <b>шифриран</b> и тренутно <b>откључан</b></translation> </message> <message> <source>Wallet is <b>encrypted</b> and currently <b>locked</b></source> @@ -558,8 +666,15 @@ </message> <message> <source>(un)select all</source> - <translation>изаберите / поништите све -</translation> + <translation>(Де)Селектуј све</translation> + </message> + <message> + <source>Tree mode</source> + <translation>Прикажи као стабло</translation> + </message> + <message> + <source>List mode</source> + <translation>Прикажи као листу</translation> </message> <message> <source>Amount</source> @@ -567,7 +682,7 @@ </message> <message> <source>Received with label</source> - <translation>Примљено са етикетом</translation> + <translation>Примљено са ознаком</translation> </message> <message> <source>Received with address</source> @@ -575,7 +690,7 @@ </message> <message> <source>Date</source> - <translation>datum</translation> + <translation>Датум</translation> </message> <message> <source>Confirmations</source> @@ -583,7 +698,7 @@ </message> <message> <source>Confirmed</source> - <translation>Potvrdjen</translation> + <translation>Потврђено</translation> </message> <message> <source>Copy address</source> @@ -591,7 +706,7 @@ </message> <message> <source>Copy label</source> - <translation>Копирај налепницу</translation> + <translation>Копирај ознаку</translation> </message> <message> <source>Copy amount</source> @@ -631,7 +746,7 @@ </message> <message> <source>Copy change</source> - <translation>Копирај промену</translation> + <translation>Копирај кусур</translation> </message> <message> <source>(%1 locked)</source> @@ -646,8 +761,20 @@ <translation>не</translation> </message> <message> + <source>This label turns red if any recipient receives an amount smaller than the current dust threshold.</source> + <translation>Ознака постаје црвена уколико прималац прими износ мањи од износа прашине - сићушног износа.</translation> + </message> + <message> + <source>Can vary +/- %1 satoshi(s) per input.</source> + <translation>Може варирати +/- %1 сатоши(ја) по инпуту.</translation> + </message> + <message> <source>(no label)</source> - <translation>(без налепнице)</translation> + <translation>(без ознаке)</translation> + </message> + <message> + <source>change from %1 (%2)</source> + <translation>Измени од %1 (%2)</translation> </message> <message> <source>(change)</source> @@ -656,10 +783,58 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>Креирање новчаника<b>%1... </b>...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>Креирање новчаника неуспешно</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Направи упозорење за новчаник</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Направи новчаник</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Име Новчаника</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Шифрирај новчаник. Новчаник ће бити шифриран лозинком коју одаберете.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Шифрирај новчаник</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Онемогући приватни кључ за овај новчаник. Новчаници са онемогућеним приватним кључем неће имати приватни кључ и не могу имати HD семе или увезени приватни кључ. Ова опција идеална је за новчанике који су искључиво за посматрање.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Онемогући Приватне Кључеве</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Направи празан новчаник. Празни новчанци немају приватане кључеве или скрипте. Приватни кључеви могу се увести, или HD семе може бити постављено касније.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Направи Празан Новчаник</translation> + </message> + <message> + <source>Create</source> + <translation>Направи</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -668,11 +843,11 @@ </message> <message> <source>&Label</source> - <translation>&Етикета</translation> + <translation>&Ознака</translation> </message> <message> <source>The label associated with this address list entry</source> - <translation>Етикета повезана са овом ставком из листе адреса</translation> + <translation>Ознака повезана са овом ставком из листе адреса</translation> </message> <message> <source>The address associated with this address list entry. This can only be modified for sending addresses.</source> @@ -699,6 +874,14 @@ <translation>Унета адреса "%1" није важећа Биткоин адреса.</translation> </message> <message> + <source>Address "%1" already exists as a receiving address with label "%2" and so cannot be added as a sending address.</source> + <translation>Адреса "%1" већ постоји као примајућа адреса са ознаком "%2" и не може бити додата као адреса за слање.</translation> + </message> + <message> + <source>The entered address "%1" is already in the address book with label "%2".</source> + <translation>Унета адреса "%1" већ постоји у адресару са ознаком "%2".</translation> + </message> + <message> <source>Could not unlock wallet.</source> <translation>Новчаник није могуће откључати.</translation> </message> @@ -711,7 +894,7 @@ <name>FreespaceChecker</name> <message> <source>A new data directory will be created.</source> - <translation>Нови директоријум података ће бити креиран.</translation> + <translation>Нови директоријум података биће креиран.</translation> </message> <message> <source>name</source> @@ -761,11 +944,15 @@ </message> <message> <source>When you click OK, %1 will begin to download and process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</source> - <translation>Када кликнете на ОК, %1 ће почети с преузимањем и процесирањем целокупног ланца блокова %4 (%2GB), почевши од најранијих трансакција у %3 када је %4 покренут.</translation> + <translation>Када кликнете на ОК, %1 ће почети с преузимањем и процесуирањем целокупног ланца блокова %4 (%2GB), почевши од најранијих трансакција у %3 када је %4 покренут.</translation> + </message> + <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Враћање ове опције захтева поновно преузимање целокупног блокчејна - ланца блокова. Брже је преузети цели ланац и касније га скратити. Онемогућава неке напредне опције.</translation> </message> <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> - <translation>Ова иницијална синхронизација је веома захтевна и може изложити ваш рачунар хардверским проблемима који раније нису били примећени. Сваки пут када покренете %1, преузимање ће се наставити тамо где је било прекинуто.</translation> + <translation>Првобитна синхронизација веома је захтевна и може изложити ваш рачунар хардверским проблемима који раније нису били примећени. Сваки пут када покренете %1, преузимање ће се наставити тамо где је било прекинуто.</translation> </message> <message> <source>If you have chosen to limit block chain storage (pruning), the historical data must still be downloaded and processed, but will be deleted afterward to keep your disk usage low.</source> @@ -784,10 +971,46 @@ <translation>Биткоин</translation> </message> <message> + <source>Discard blocks after verification, except most recent %1 GB (prune)</source> + <translation>Обриши блокове након верификације, осим најновије %1 GB (скраћено)</translation> + </message> + <message> + <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> + <translation>Најмање %1 GB подататака биће складиштен у овај директорјиум који ће временом порасти.</translation> + </message> + <message> + <source>Approximately %1 GB of data will be stored in this directory.</source> + <translation>Најмање %1 GB подататака биће складиштен у овај директорјиум.</translation> + </message> + <message> + <source>%1 will download and store a copy of the Bitcoin block chain.</source> + <translation>%1 биће преузеће и складиштити копију Биткоин ланца блокова.</translation> + </message> + <message> + <source>The wallet will also be stored in this directory.</source> + <translation>Новчаник ће бити складиштен у овом директоријуму.</translation> + </message> + <message> + <source>Error: Specified data directory "%1" cannot be created.</source> + <translation>Грешка: Одабрана датотека "%1" не може бити креирана.</translation> + </message> + <message> <source>Error</source> - <translation>Greška</translation> + <translation>Грешка</translation> + </message> + <message numerus="yes"> + <source>%n GB of free space available</source> + <translation><numerusform>Доступно %n GB слободног простора</numerusform><numerusform>Доступно %n GB слободног простора</numerusform><numerusform>Доступно %n GB слободног простора</numerusform></translation> + </message> + <message numerus="yes"> + <source>(of %n GB needed)</source> + <translation><numerusform>(од потребних %n GB)</numerusform><numerusform>(од потребних %n GB)</numerusform><numerusform>(од потребних %n GB)</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(%n GB needed for full chain)</source> + <translation><numerusform>(%n GB потребно за цео ланац)</numerusform><numerusform>(%n GB потребно за цео ланац)</numerusform><numerusform>(%n GB потребно за цео ланац)</numerusform></translation> + </message> +</context> <context> <name>ModalOverlay</name> <message> @@ -795,8 +1018,16 @@ <translation>Форма</translation> </message> <message> + <source>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</source> + <translation>Недавне трансакције можда не буду видљиве, зато салдо твог новчаника можда буде нетачан. Ова информација биђе тачна када новчаник заврши са синхронизацијом биткоин мреже, приказаној испод.</translation> + </message> + <message> + <source>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</source> + <translation>Покушај слања биткоина који су под утицајем још не приказаних трансакција неће бити прихваћен од стране мреже.</translation> + </message> + <message> <source>Number of blocks left</source> - <translation>Остала количина блокова</translation> + <translation>Преостала количина блокова</translation> </message> <message> <source>Unknown...</source> @@ -811,24 +1042,64 @@ <translation>Напредак</translation> </message> <message> + <source>Progress increase per hour</source> + <translation>Пораст напретка по часу</translation> + </message> + <message> <source>calculating...</source> - <translation>Рачунање</translation> + <translation>рачунање...</translation> + </message> + <message> + <source>Estimated time left until synced</source> + <translation>Оквирно време до краја синхронизације</translation> </message> <message> <source>Hide</source> <translation>Сакриј</translation> </message> - </context> + <message> + <source>Esc</source> + <translation>Есц</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 се синхронузује. Преузеће заглавља и блокове од клијената и потврдити их док не стигне на крај ланца блокова.</translation> + </message> + <message> + <source>Unknown. Syncing Headers (%1, %2%)...</source> + <translation>Непознато. Синхронизација заглавља (%1, %2%)...</translation> + </message> +</context> <context> <name>OpenURIDialog</name> - </context> + <message> + <source>Open bitcoin URI</source> + <translation>Отвори биткоин URI</translation> + </message> + <message> + <source>URI:</source> + <translation>URI:</translation> + </message> +</context> <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet failed</source> + <translation>Отварање новчаника неуспешно</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>Упозорење приликом отварања новчаника</translation> + </message> + <message> <source>default wallet</source> <translation>подразумевани новчаник</translation> </message> - </context> + <message> + <source>Opening Wallet <b>%1</b>...</source> + <translation>Отварање новчаника<b>%1</b>...</translation> + </message> +</context> <context> <name>OptionsDialog</name> <message> @@ -836,18 +1107,158 @@ <translation>Поставке</translation> </message> <message> + <source>&Main</source> + <translation>&Главни</translation> + </message> + <message> + <source>Automatically start %1 after logging in to the system.</source> + <translation>Аутоматски почети %1 након пријање на систем.</translation> + </message> + <message> + <source>&Start %1 on system login</source> + <translation>&Покрени %1 приликом пријаве на систем</translation> + </message> + <message> + <source>Size of &database cache</source> + <translation>Величина кеша базе података</translation> + </message> + <message> + <source>Number of script &verification threads</source> + <translation>Број скрипти и CPU за верификацију</translation> + </message> + <message> + <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> + <translation>ИП адреса проксија (нпр. IPv4: 127.0.0.1 / IPv6: ::1)</translation> + </message> + <message> + <source>Shows if the supplied default SOCKS5 proxy is used to reach peers via this network type.</source> + <translation>Приказује се ако је испоручени уобичајени SOCKS5 проxy коришћен ради проналажења клијената преко овог типа мреже. </translation> + </message> + <message> + <source>Use separate SOCKS&5 proxy to reach peers via Tor hidden services:</source> + <translation>Користи посебан SOCKS&5 како би пронашли клијенте преко Тор-а.</translation> + </message> + <message> + <source>Hide the icon from the system tray.</source> + <translation>Сакриј икону са системске траке.</translation> + </message> + <message> + <source>&Hide tray icon</source> + <translation>&Сакриј икону</translation> + </message> + <message> + <source>Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Exit in the menu.</source> + <translation>Минимизирање уместо искључивања апликације када се прозор затвори. Када је ова опција омогућена, апликација ће бити затворена тек након одабира Излаз у менију. </translation> + </message> + <message> + <source>Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |.</source> + <translation>URL треће стране (нпр блок претраживач) који се појављује у менију трансакције. %s у URL замењен је хашом трансакције. Више URL-ова поделено је вертикалом |.</translation> + </message> + <message> + <source>Open the %1 configuration file from the working directory.</source> + <translation>Отвори %1 конфигурациони фајл из директоријума у употреби.</translation> + </message> + <message> <source>Open Configuration File</source> <translation>Отвори Конфигурациону Датотеку</translation> </message> <message> + <source>Reset all client options to default.</source> + <translation>Ресетуј све опције клијента на почетна подешавања.</translation> + </message> + <message> + <source>&Reset Options</source> + <translation>&Ресет Опције</translation> + </message> + <message> + <source>&Network</source> + <translation>&Мрежа</translation> + </message> + <message> + <source>Disables some advanced features but all blocks will still be fully validated. Reverting this setting requires re-downloading the entire blockchain. Actual disk usage may be somewhat higher.</source> + <translation>Онемогућава поједина напредна својства, али ће сви блокови у потпуности бити валидирани. Враћање ове опције захтева да поновно преузимање целокупонг блокчејна.</translation> + </message> + <message> + <source>Prune &block storage to</source> + <translation>Сакрати &block складиштење на</translation> + </message> + <message> + <source>GB</source> + <translation>GB</translation> + </message> + <message> + <source>Reverting this setting requires re-downloading the entire blockchain.</source> + <translation>Враћање ове опције захтева да поновно преузимање целокупонг блокчејна.</translation> + </message> + <message> + <source>MiB</source> + <translation>MiB</translation> + </message> + <message> + <source>(0 = auto, <0 = leave that many cores free)</source> + <translation>(0 = аутоматски одреди, <0 = остави слободно толико језгара)</translation> + </message> + <message> <source>W&allet</source> - <translation>новчаник</translation> + <translation>Н&овчаник</translation> </message> <message> <source>Expert</source> <translation>Експерт</translation> </message> <message> + <source>Enable coin &control features</source> + <translation>Омогући опцију контроле новчића</translation> + </message> + <message> + <source>If you disable the spending of unconfirmed change, the change from a transaction cannot be used until that transaction has at least one confirmation. This also affects how your balance is computed.</source> + <translation>Уколико онемогућиш трошење непотврђеног кусура, кусур трансакције неће моћи да се користи док транскација нема макар једну потврду. Ово такође утиче како ће се салдо рачунати.</translation> + </message> + <message> + <source>&Spend unconfirmed change</source> + <translation>&Троши непотврђени кусур</translation> + </message> + <message> + <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source> + <translation>Аутоматски отвори Биткоин клијент порт на рутеру. Ова опција ради само уколико твој рутер подржава и има омогућен UPnP.</translation> + </message> + <message> + <source>Map port using &UPnP</source> + <translation>Мапирај порт користећи &UPnP</translation> + </message> + <message> + <source>Accept connections from outside.</source> + <translation>Прихвати спољашње концекције.</translation> + </message> + <message> + <source>Allow incomin&g connections</source> + <translation>Дозволи долазеће конекције.</translation> + </message> + <message> + <source>Connect to the Bitcoin network through a SOCKS5 proxy.</source> + <translation>Конектуј се на Биткоин мрежу кроз SOCKS5 проксијем.</translation> + </message> + <message> + <source>&Connect through SOCKS5 proxy (default proxy):</source> + <translation>&Конектуј се кроз SOCKS5 прокси (уобичајени прокси):</translation> + </message> + <message> + <source>Proxy &IP:</source> + <translation>Прокси &IP:</translation> + </message> + <message> + <source>&Port:</source> + <translation>&Порт:</translation> + </message> + <message> + <source>Port of the proxy (e.g. 9050)</source> + <translation>Прокси порт (нпр. 9050)</translation> + </message> + <message> + <source>Used for reaching peers via:</source> + <translation>Коришћен за приступ другим чворовима преко:</translation> + </message> + <message> <source>IPv4</source> <translation>IPv4</translation> </message> @@ -860,10 +1271,54 @@ <translation>Тор</translation> </message> <message> + <source>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</source> + <translation>Конектуј се на Биткоин мрежу кроз SOCK5 прокси за Тор скривене сервисе.</translation> + </message> + <message> + <source>Show only a tray icon after minimizing the window.</source> + <translation>Покажи само иконицу у панелу након минимизирања прозора</translation> + </message> + <message> + <source>&Minimize to the tray instead of the taskbar</source> + <translation>&минимизирај у доњу линију, уместо у програмску траку</translation> + </message> + <message> + <source>M&inimize on close</source> + <translation>Минимизирај при затварању</translation> + </message> + <message> + <source>&Display</source> + <translation>&Прикажи</translation> + </message> + <message> + <source>User Interface &language:</source> + <translation>&Језик корисничког интерфејса:</translation> + </message> + <message> + <source>The user interface language can be set here. This setting will take effect after restarting %1.</source> + <translation>Језик корисничког интерфејса може се овде поставити. Ово својство биће на снази након поновног покреања %1.</translation> + </message> + <message> <source>&Unit to show amounts in:</source> <translation>&Јединица за приказивање износа:</translation> </message> <message> + <source>Choose the default subdivision unit to show in the interface and when sending coins.</source> + <translation>Одабери уобичајену подјединицу која се приказује у интерфејсу и када се шаљу новчићи.</translation> + </message> + <message> + <source>Whether to show coin control features or not.</source> + <translation>Да ли да се прикажу опције контроле новчића или не.</translation> + </message> + <message> + <source>&Third party transaction URLs</source> + <translation>&URL-ови трансакција трећих страна</translation> + </message> + <message> + <source>Options set in this dialog are overridden by the command line or in the configuration file:</source> + <translation>Опције постављене у овом диалогу су поништене командном линијом или у конфигурационој датотеци:</translation> + </message> + <message> <source>&OK</source> <translation>&Уреду</translation> </message> @@ -872,10 +1327,50 @@ <translation>&Откажи</translation> </message> <message> + <source>default</source> + <translation>подразумевано</translation> + </message> + <message> + <source>none</source> + <translation>ниједно</translation> + </message> + <message> + <source>Confirm options reset</source> + <translation>Потврди ресет опција</translation> + </message> + <message> + <source>Client restart required to activate changes.</source> + <translation>Рестарт клијента захтеван како би се промене активирале.</translation> + </message> + <message> + <source>Client will be shut down. Do you want to proceed?</source> + <translation>Клијент ће се искључити. Да ли желите да наставите?</translation> + </message> + <message> + <source>Configuration options</source> + <translation>Конфигурација својстава</translation> + </message> + <message> + <source>The configuration file is used to specify advanced user options which override GUI settings. Additionally, any command-line options will override this configuration file.</source> + <translation>Конфигурациона датотека се користи да одреди напредне корисничке опције које поништају подешавања у графичком корисничком интерфејсу.</translation> + </message> + <message> <source>Error</source> - <translation>Greška</translation> + <translation>Грешка</translation> </message> - </context> + <message> + <source>The configuration file could not be opened.</source> + <translation>Ова конфигурациона датотека не може бити отворена.</translation> + </message> + <message> + <source>This change would require a client restart.</source> + <translation>Ова промена захтева да се рачунар поново покрене.</translation> + </message> + <message> + <source>The supplied proxy address is invalid.</source> + <translation>Достављена прокси адреса није валидна.</translation> + </message> +</context> <context> <name>OverviewPage</name> <message> @@ -883,90 +1378,729 @@ <translation>Форма</translation> </message> <message> + <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> + <translation>Приказана информација може бити застарела. Ваш новчаник се аутоматски синхронизује са Биткоин мрежом након успостављања конекције, али овај процес је још увек у току.</translation> + </message> + <message> + <source>Watch-only:</source> + <translation>Само гледање:</translation> + </message> + <message> <source>Available:</source> <translation>Доступно:</translation> </message> <message> + <source>Your current spendable balance</source> + <translation>Салдо који можете потрошити</translation> + </message> + <message> <source>Pending:</source> <translation>На чекању:</translation> </message> <message> + <source>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</source> + <translation>Укупан број трансакција које још увек нису потврђене, и не рачунају се у салдо рачуна који је могуће потрошити</translation> + </message> + <message> + <source>Immature:</source> + <translation>Недоспело:</translation> + </message> + <message> + <source>Mined balance that has not yet matured</source> + <translation>Салдо рударења који још увек није доспео</translation> + </message> + <message> + <source>Balances</source> + <translation>Салдо</translation> + </message> + <message> <source>Total:</source> <translation>Укупно:</translation> </message> - </context> + <message> + <source>Your current total balance</source> + <translation>Твој тренутни салдо</translation> + </message> + <message> + <source>Your current balance in watch-only addresses</source> + <translation>Твој тренутни салдо са гледај-само адресама</translation> + </message> + <message> + <source>Spendable:</source> + <translation>Могуће потрошити:</translation> + </message> + <message> + <source>Recent transactions</source> + <translation>Недавне трансакције</translation> + </message> + <message> + <source>Unconfirmed transactions to watch-only addresses</source> + <translation>Трансакције за гледај-само адресе које нису потврђене</translation> + </message> + <message> + <source>Mined balance in watch-only addresses that has not yet matured</source> + <translation>Салдорударења у адресама које су у моду само гледање, који још увек није доспео</translation> + </message> + <message> + <source>Current total balance in watch-only addresses</source> + <translation>Тренутни укупни салдо у адресама у опцији само-гледај</translation> + </message> +</context> <context> <name>PaymentServer</name> - </context> + <message> + <source>Payment request error</source> + <translation>Грешка у захтеву за плаћање</translation> + </message> + <message> + <source>Cannot start bitcoin: click-to-pay handler</source> + <translation>Не могу покренути биткоин: "кликни-да-платиш" механизам</translation> + </message> + <message> + <source>URI handling</source> + <translation>URI руковање</translation> + </message> + <message> + <source>'bitcoin://' is not a valid URI. Use 'bitcoin:' instead.</source> + <translation>'bitcoin://' није важећи URI. Уместо тога користити 'bitcoin:'.</translation> + </message> + <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Захтев за плаћање не може се обрадити, јер BIP70 није подржан.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>Због великог броја безбедносних пропуста у BIP70, препоручено је да се све инструкције трговаца за промену новчаника игноришу.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>Уколико добијате грешку овог типа, потребно је да захтевате од трговца BIP21 компатибилан URI.</translation> + </message> + <message> + <source>Invalid payment address %1</source> + <translation>Неважећа адреса за плаћање %1</translation> + </message> + <message> + <source>URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</source> + <translation>URI се не може рашчланити! Ово може бити проузроковано неважећом Биткоин адресом или погрешно форматираним URI параметрима.</translation> + </message> + <message> + <source>Payment request file handling</source> + <translation>Руковање датотеком захтева за плаћање</translation> + </message> +</context> <context> <name>PeerTableModel</name> - </context> + <message> + <source>User Agent</source> + <translation>Кориснички агент</translation> + </message> + <message> + <source>Node/Service</source> + <translation>Ноде/Сервис</translation> + </message> + <message> + <source>NodeId</source> + <translation>НодеИД</translation> + </message> + <message> + <source>Ping</source> + <translation>Пинг</translation> + </message> + <message> + <source>Sent</source> + <translation>Послато</translation> + </message> + <message> + <source>Received</source> + <translation>Примљено</translation> + </message> +</context> <context> <name>QObject</name> <message> <source>Amount</source> - <translation>iznos</translation> + <translation>Износ</translation> + </message> + <message> + <source>Enter a Bitcoin address (e.g. %1)</source> + <translation>Унеси Биткоин адресу, (нпр %1)</translation> + </message> + <message> + <source>%1 d</source> + <translation>%1 d</translation> + </message> + <message> + <source>%1 h</source> + <translation>%1 h</translation> + </message> + <message> + <source>%1 m</source> + <translation>%1 m</translation> + </message> + <message> + <source>%1 s</source> + <translation>%1 s</translation> + </message> + <message> + <source>None</source> + <translation>Nijedan</translation> + </message> + <message> + <source>N/A</source> + <translation>Није применљиво</translation> + </message> + <message> + <source>%1 ms</source> + <translation>%1 ms</translation> + </message> + <message numerus="yes"> + <source>%n second(s)</source> + <translation><numerusform>%n секунда</numerusform><numerusform>%n секунди</numerusform><numerusform>%n секунди</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n minute(s)</source> + <translation><numerusform>%n минут</numerusform><numerusform>%n минута</numerusform><numerusform>%n минута</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n hour(s)</source> + <translation><numerusform>%n час</numerusform><numerusform>%n часа</numerusform><numerusform>%n часова</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n day(s)</source> + <translation><numerusform>%n минут</numerusform><numerusform>%n минута</numerusform><numerusform>%n минута</numerusform></translation> + </message> + <message numerus="yes"> + <source>%n week(s)</source> + <translation><numerusform>%n недеља</numerusform><numerusform>%n недеље</numerusform><numerusform>%n недеља</numerusform></translation> + </message> + <message> + <source>%1 and %2</source> + <translation>%1 и %2</translation> + </message> + <message numerus="yes"> + <source>%n year(s)</source> + <translation><numerusform>%n година</numerusform><numerusform>%n године</numerusform><numerusform>%n година</numerusform></translation> + </message> + <message> + <source>%1 B</source> + <translation>%1 B</translation> + </message> + <message> + <source>%1 KB</source> + <translation>%1 KB</translation> + </message> + <message> + <source>%1 MB</source> + <translation>%1 MB</translation> + </message> + <message> + <source>%1 GB</source> + <translation>%1 GB</translation> + </message> + <message> + <source>Error: Specified data directory "%1" does not exist.</source> + <translation>Грешка: Одабрани директорјиум датотеке "%1" не постоји.</translation> + </message> + <message> + <source>Error: %1</source> + <translation>Грешка: %1</translation> + </message> + <message> + <source>%1 didn't yet exit safely...</source> + <translation>%1 није изашао безбедно...</translation> </message> <message> <source>unknown</source> - <translation>nepoznato</translation> + <translation>непознато</translation> </message> </context> <context> <name>QRImageWidget</name> - </context> + <message> + <source>&Save Image...</source> + <translation>&Сачувај Слику...</translation> + </message> + <message> + <source>&Copy Image</source> + <translation>&Копирај Слику</translation> + </message> + <message> + <source>Resulting URI too long, try to reduce the text for label / message.</source> + <translation>Дати резултат URI предуг, покушај да сманиш текст за ознаку / поруку.</translation> + </message> + <message> + <source>Error encoding URI into QR Code.</source> + <translation>Грешка током енкодирања URI у QR Код.</translation> + </message> + <message> + <source>QR code support not available.</source> + <translation>QR код подршка није доступна.</translation> + </message> + <message> + <source>Save QR Code</source> + <translation>Упамти QR Код</translation> + </message> + <message> + <source>PNG Image (*.png)</source> + <translation>PNG Слка (*.png)</translation> + </message> +</context> <context> <name>RPCConsole</name> <message> + <source>N/A</source> + <translation>Није применљиво</translation> + </message> + <message> + <source>Client version</source> + <translation>Верзија клијента</translation> + </message> + <message> + <source>&Information</source> + <translation>&Информације</translation> + </message> + <message> + <source>General</source> + <translation>Опште</translation> + </message> + <message> + <source>Using BerkeleyDB version</source> + <translation>Коришћење BerkeleyDB верзије.</translation> + </message> + <message> + <source>Datadir</source> + <translation>Datadir</translation> + </message> + <message> + <source>To specify a non-default location of the data directory use the '%1' option.</source> + <translation>Да би сте одредили локацију која није унапред задата за директоријум података користите '%1' опцију.</translation> + </message> + <message> + <source>Blocksdir</source> + <translation>Blocksdir</translation> + </message> + <message> + <source>To specify a non-default location of the blocks directory use the '%1' option.</source> + <translation>Да би сте одредили локацију која није унапред задата за директоријум блокова користите '%1' опцију.</translation> + </message> + <message> + <source>Startup time</source> + <translation>Време подизања система</translation> + </message> + <message> + <source>Network</source> + <translation>Мрежа</translation> + </message> + <message> + <source>Name</source> + <translation>Име</translation> + </message> + <message> + <source>Number of connections</source> + <translation>Број конекција</translation> + </message> + <message> + <source>Block chain</source> + <translation>Блокчејн</translation> + </message> + <message> + <source>Current number of blocks</source> + <translation>Тренутни број блокова</translation> + </message> + <message> + <source>Memory Pool</source> + <translation>Удружена меморија</translation> + </message> + <message> + <source>Current number of transactions</source> + <translation>Тренутни број трансакција</translation> + </message> + <message> + <source>Memory usage</source> + <translation>Употреба меморије</translation> + </message> + <message> + <source>Wallet: </source> + <translation>Новчаник</translation> + </message> + <message> + <source>(none)</source> + <translation>(ниједан)</translation> + </message> + <message> + <source>&Reset</source> + <translation>&Ресетуј</translation> + </message> + <message> + <source>Received</source> + <translation>Примљено</translation> + </message> + <message> + <source>Sent</source> + <translation>Послато</translation> + </message> + <message> + <source>&Peers</source> + <translation>&Колеге</translation> + </message> + <message> + <source>Banned peers</source> + <translation>Забрањене колеге на мрежи</translation> + </message> + <message> + <source>Select a peer to view detailed information.</source> + <translation>Одабери колегу да би видели детаљне информације</translation> + </message> + <message> + <source>Whitelisted</source> + <translation>На списку познатих</translation> + </message> + <message> + <source>Direction</source> + <translation>Правац</translation> + </message> + <message> + <source>Version</source> + <translation>Верзија</translation> + </message> + <message> + <source>Starting Block</source> + <translation>Почетни блок</translation> + </message> + <message> + <source>Synced Headers</source> + <translation>Синхронизована заглавља</translation> + </message> + <message> + <source>Synced Blocks</source> + <translation>Синхронизовани блокови</translation> + </message> + <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Мапирани аутономни систем који се користи за диверсификацију селекције колега чворова.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Мапирани АС</translation> + </message> + <message> + <source>User Agent</source> + <translation>Кориснички агент</translation> + </message> + <message> + <source>Node window</source> + <translation>Ноде прозор</translation> + </message> + <message> + <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> + <translation>Отворите %1 датотеку са записима о отклоњеним грешкама из тренутног директоријума датотека. Ово може потрајати неколико секунди за велике датотеке записа.</translation> + </message> + <message> + <source>Decrease font size</source> + <translation>Смањи величину фонта</translation> + </message> + <message> + <source>Increase font size</source> + <translation>Увећај величину фонта</translation> + </message> + <message> + <source>Services</source> + <translation>Услуге</translation> + </message> + <message> + <source>Ban Score</source> + <translation>Ниво забране</translation> + </message> + <message> + <source>Connection Time</source> + <translation>Време конекције</translation> + </message> + <message> + <source>Last Send</source> + <translation>Последње послато</translation> + </message> + <message> + <source>Last Receive</source> + <translation>Последње примљено</translation> + </message> + <message> + <source>Ping Time</source> + <translation>Пинг време</translation> + </message> + <message> + <source>The duration of a currently outstanding ping.</source> + <translation>Трајање тренутно неразрешеног пинга.</translation> + </message> + <message> + <source>Ping Wait</source> + <translation>Чекање на пинг</translation> + </message> + <message> + <source>Min Ping</source> + <translation>Мин Пинг</translation> + </message> + <message> + <source>Time Offset</source> + <translation>Помак времена</translation> + </message> + <message> <source>Last block time</source> <translation>Време последњег блока</translation> </message> <message> + <source>&Open</source> + <translation>&Отвори</translation> + </message> + <message> + <source>&Console</source> + <translation>&Конзола</translation> + </message> + <message> + <source>&Network Traffic</source> + <translation>& Саобраћај Мреже</translation> + </message> + <message> + <source>Totals</source> + <translation>Укупно</translation> + </message> + <message> + <source>In:</source> + <translation>Долазно:</translation> + </message> + <message> + <source>Out:</source> + <translation>Одлазно:</translation> + </message> + <message> + <source>Debug log file</source> + <translation>Дебугуј лог фајл</translation> + </message> + <message> + <source>Clear console</source> + <translation>Очисти конзолу</translation> + </message> + <message> + <source>1 &hour</source> + <translation>1 &Сат</translation> + </message> + <message> + <source>1 &day</source> + <translation>1 &дан</translation> + </message> + <message> + <source>1 &week</source> + <translation>1 &недеља</translation> + </message> + <message> + <source>1 &year</source> + <translation>1 &година</translation> + </message> + <message> + <source>&Disconnect</source> + <translation>&Прекини везу</translation> + </message> + <message> + <source>Ban for</source> + <translation>Забрани за</translation> + </message> + <message> + <source>&Unban</source> + <translation>&Уклони забрану</translation> + </message> + <message> + <source>Welcome to the %1 RPC console.</source> + <translation>Добродошли на %1 RPC конзоле.</translation> + </message> + <message> + <source>Use up and down arrows to navigate history, and %1 to clear screen.</source> + <translation>Користи стрелице горе и доле за навигацију историје, и %1 зa чишћење екрана.</translation> + </message> + <message> + <source>Type %1 for an overview of available commands.</source> + <translation>Укуцај %1 за преглед доступних команди.</translation> + </message> + <message> + <source>For more information on using this console type %1.</source> + <translation>За више информација о коришћењу конзиле укуцај %1.</translation> + </message> + <message> + <source>WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command.</source> + <translation>УПОЗОРЕЊЕ: Преваранти активно говоре корисницима да овде укуцају команде, том приликом краду садржај новчаника. Немојте користити конзолу без претходног разумевања последица коришћења команди.</translation> + </message> + <message> + <source>Network activity disabled</source> + <translation>Активност мреже онемогућена</translation> + </message> + <message> + <source>Executing command without any wallet</source> + <translation>Извршење команде без новчаника</translation> + </message> + <message> + <source>Executing command using "%1" wallet</source> + <translation>Извршење команде коришћењем "%1" новчаника</translation> + </message> + <message> + <source>(node id: %1)</source> + <translation>(node id: %1)</translation> + </message> + <message> + <source>via %1</source> + <translation>преко %1</translation> + </message> + <message> + <source>never</source> + <translation>никад</translation> + </message> + <message> + <source>Inbound</source> + <translation>Долазеће</translation> + </message> + <message> + <source>Outbound</source> + <translation>Одлазеће</translation> + </message> + <message> <source>Yes</source> - <translation>Da</translation> + <translation>Да</translation> </message> <message> <source>No</source> - <translation>Ne</translation> + <translation>Не</translation> </message> - </context> + <message> + <source>Unknown</source> + <translation>Непознато</translation> + </message> +</context> <context> <name>ReceiveCoinsDialog</name> <message> <source>&Amount:</source> - <translation>Iznos:</translation> + <translation>&Износ:</translation> </message> <message> <source>&Label:</source> - <translation>&Етикета</translation> + <translation>&Ознака</translation> </message> <message> <source>&Message:</source> <translation>Poruka:</translation> </message> <message> + <source>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</source> + <translation>Опциона порука коју можеш прикачити уз захтев за плаћање, која ће бити приказана када захтев буде отворен. Напомена: Порука неће бити послата са уплатом на Биткоин мрежи.</translation> + </message> + <message> + <source>An optional label to associate with the new receiving address.</source> + <translation>Опционална ознака за поистовећивање са новом примајућом адресом.</translation> + </message> + <message> + <source>Use this form to request payments. All fields are <b>optional</b>.</source> + <translation>Користи ову форму како би захтевао уплату. Сва поља су <b>опционална</b>.</translation> + </message> + <message> + <source>An optional amount to request. Leave this empty or zero to not request a specific amount.</source> + <translation>Опциони износ за захтев. Остави празно или нула уколико не желиш прецизирати износ.</translation> + </message> + <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Опционална ознака за поистовећивање са новом адресом примаоца (користите је за идентификацију рачуна). Она је такође придодата захтеву за плаћање.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Опциона порука која је придодата захтеву за плаћање и може бити приказана пошиљаоцу.</translation> + </message> + <message> + <source>&Create new receiving address</source> + <translation>&Направи нову адресу за примање</translation> + </message> + <message> + <source>Clear all fields of the form.</source> + <translation>Очисти сва пола форме.</translation> + </message> + <message> + <source>Clear</source> + <translation>Очисти</translation> + </message> + <message> + <source>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</source> + <translation>Природне segwit адресе (нпр Bech32 или BIP-173) касније смањују трошкове трансакција и нуде бољу заштиту од грешака у куцању, али их стари новчаници не подржавају. Када није одабрано, биће креирана адреса компатибилна са старијим новчаницима.</translation> + </message> + <message> + <source>Generate native segwit (Bech32) address</source> + <translation>Направи segwit (Bech32) адресу</translation> + </message> + <message> + <source>Requested payments history</source> + <translation>Историја захтева за плаћање</translation> + </message> + <message> + <source>Show the selected request (does the same as double clicking an entry)</source> + <translation>Прикажи селектовани захтев (има исту сврху као и дупли клик на одговарајући унос)</translation> + </message> + <message> <source>Show</source> - <translation>Prikaži</translation> + <translation>Прикажи</translation> + </message> + <message> + <source>Remove the selected entries from the list</source> + <translation>Уклони одабрани унос из листе</translation> + </message> + <message> + <source>Remove</source> + <translation>Уклони</translation> + </message> + <message> + <source>Copy URI</source> + <translation>Копирај URI</translation> </message> <message> <source>Copy label</source> - <translation>Копирај налепницу -</translation> + <translation>Копирај ознаку</translation> + </message> + <message> + <source>Copy message</source> + <translation>Копирај поруку</translation> </message> <message> <source>Copy amount</source> - <translation>к</translation> + <translation>Копирај износ</translation> </message> </context> <context> <name>ReceiveRequestDialog</name> <message> + <source>QR Code</source> + <translation>QR Код</translation> + </message> + <message> + <source>Copy &URI</source> + <translation>Копирај &URI</translation> + </message> + <message> <source>Copy &Address</source> - <translation>Kopirajte adresu</translation> + <translation>Копирај &Адресу</translation> + </message> + <message> + <source>&Save Image...</source> + <translation>&Сачувај Слику...</translation> + </message> + <message> + <source>Request payment to %1</source> + <translation>Захтевај уплату ка %1</translation> + </message> + <message> + <source>Payment information</source> + <translation>Информације о плаћању</translation> + </message> + <message> + <source>URI</source> + <translation>URI</translation> </message> <message> <source>Address</source> - <translation>Adresa</translation> + <translation>Адреса</translation> </message> <message> <source>Amount</source> @@ -974,11 +2108,11 @@ </message> <message> <source>Label</source> - <translation>Налепница</translation> + <translation>Ознака</translation> </message> <message> <source>Message</source> - <translation>Poruka</translation> + <translation>Порука</translation> </message> <message> <source>Wallet</source> @@ -989,11 +2123,11 @@ <name>RecentRequestsTableModel</name> <message> <source>Date</source> - <translation>datum</translation> + <translation>Датум</translation> </message> <message> <source>Label</source> - <translation>Налепница</translation> + <translation>Ознака</translation> </message> <message> <source>Message</source> @@ -1001,14 +2135,42 @@ </message> <message> <source>(no label)</source> - <translation>(без налепнице)</translation> + <translation>(без ознаке)</translation> </message> - </context> + <message> + <source>(no message)</source> + <translation>(нема поруке)</translation> + </message> + <message> + <source>(no amount requested)</source> + <translation>(нема захтеваног износа)</translation> + </message> + <message> + <source>Requested</source> + <translation>Захтевано</translation> + </message> +</context> <context> <name>SendCoinsDialog</name> <message> <source>Send Coins</source> - <translation>Слање новца</translation> + <translation>Пошаљи новчиће</translation> + </message> + <message> + <source>Coin Control Features</source> + <translation>Опција контроле новчића</translation> + </message> + <message> + <source>Inputs...</source> + <translation>Инпути...</translation> + </message> + <message> + <source>automatically selected</source> + <translation>аутоматски одабрано</translation> + </message> + <message> + <source>Insufficient funds!</source> + <translation>Недовољно средстава!</translation> </message> <message> <source>Quantity:</source> @@ -1020,7 +2182,7 @@ </message> <message> <source>Amount:</source> - <translation>Iznos:</translation> + <translation>Износ:</translation> </message> <message> <source>Fee:</source> @@ -1032,17 +2194,109 @@ </message> <message> <source>Change:</source> - <translation>Промени:</translation> + <translation>Кусур:</translation> + </message> + <message> + <source>If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address.</source> + <translation>Уколико је ово активирано, али је промењена адреса празна или неважећа, промена ће бити послата на ново-генерисану адресу.</translation> + </message> + <message> + <source>Custom change address</source> + <translation>Прилагођена промењена адреса</translation> + </message> + <message> + <source>Transaction Fee:</source> + <translation>Провизија за трансакцију:</translation> + </message> + <message> + <source>Choose...</source> + <translation>Одабери...</translation> + </message> + <message> + <source>Using the fallbackfee can result in sending a transaction that will take several hours or days (or never) to confirm. Consider choosing your fee manually or wait until you have validated the complete chain.</source> + <translation>Коришћење безбедносне накнаде може резултовати у времену потребно за потврду трансакције од неколико сати или дана (или никад). Размислите о ручном одабиру провизије или сачекајте док нисте потврдили комплетан ланац.</translation> + </message> + <message> + <source>Warning: Fee estimation is currently not possible.</source> + <translation>Упозорење: Процена провизије тренутно није могућа.</translation> + </message> + <message> + <source>Specify a custom fee per kB (1,000 bytes) of the transaction's virtual size. + +Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis per kB" for a transaction size of 500 bytes (half of 1 kB) would ultimately yield a fee of only 50 satoshis.</source> + <translation>Одредити прилагођену провизију по kB (1,000 битова) виртуелне величине трансакције. + +Напомена: С обзиром да се провизија рачуна на основу броја бајтова, провизија за "100 сатошија по kB" за величину трансакције од 500 бајтова (пола од 1 kB) ће аутоматски износити само 50 сатошија.</translation> + </message> + <message> + <source>per kilobyte</source> + <translation>по килобајту</translation> </message> <message> <source>Hide</source> <translation>Сакриј</translation> </message> <message> + <source>Recommended:</source> + <translation>Препоручено:</translation> + </message> + <message> + <source>Custom:</source> + <translation>Прилагођено:</translation> + </message> + <message> + <source>(Smart fee not initialized yet. This usually takes a few blocks...)</source> + <translation>(Паметна накнада још није покренута. Ово уобичајено траје неколико блокова...)</translation> + </message> + <message> + <source>Send to multiple recipients at once</source> + <translation>Пошаљи већем броју примаоца одједанпут</translation> + </message> + <message> + <source>Add &Recipient</source> + <translation>Додај &Примаоца</translation> + </message> + <message> + <source>Clear all fields of the form.</source> + <translation>Очисти сва поља форме.</translation> + </message> + <message> <source>Dust:</source> <translation>Прашина:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Сакријте износ накнаде за трансакцију</translation> + </message> + <message> + <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> + <translation>Када је мањи обим трансакција од простора у блоку, рудари, као и повезани нодови могу применити минималну провизију. Плаћање само минималне накнаде - провизије је добро, али треба бити свестан да ово може резултовати трансакцијом која неће никада бити потврђена, у случају када је број захтева за биткоин трансакцијама већи од могућности мреже да обради.</translation> + </message> + <message> + <source>A too low fee might result in a never confirming transaction (read the tooltip)</source> + <translation>Сувише ниска накнада може резултовати у трансакцији која никад неће бити потврђена (прочитајте опис)</translation> + </message> + <message> + <source>Confirmation time target:</source> + <translation>Циљно време потврде:</translation> + </message> + <message> + <source>Enable Replace-By-Fee</source> + <translation>Омогући Замени-за-Провизију</translation> + </message> + <message> + <source>With Replace-By-Fee (BIP-125) you can increase a transaction's fee after it is sent. Without this, a higher fee may be recommended to compensate for increased transaction delay risk.</source> + <translation>Са Замени-за-Провизију (BIP-125) се може повећати висина провизије за трансакцију након што је послата. Без овога, виша провизија може бити препоручена да се смањи ризик од кашњења трансакције. </translation> + </message> + <message> + <source>Clear &All</source> + <translation>Очисти &Све</translation> + </message> + <message> + <source>Balance:</source> + <translation>Салдо:</translation> + </message> + <message> <source>Confirm the send action</source> <translation>Потврди акцију слања</translation> </message> @@ -1056,7 +2310,7 @@ </message> <message> <source>Copy amount</source> - <translation>к</translation> + <translation>Копирај износ</translation> </message> <message> <source>Copy fee</source> @@ -1079,141 +2333,649 @@ <translation>Копирај промену</translation> </message> <message> + <source>%1 (%2 blocks)</source> + <translation>%1 (%2 блокови)</translation> + </message> + <message> + <source>Cr&eate Unsigned</source> + <translation>Креирај непотписано</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Креира делимично потписану Биткоин трансакцију (PSBT) за коришћење са нпр. офлајн %1 новчаником, или PSBT компатибилним хардверским новчаником. </translation> + </message> + <message> + <source> from wallet '%1'</source> + <translation>из новчаника '%1'</translation> + </message> + <message> + <source>%1 to '%2'</source> + <translation>%1 до '%2'</translation> + </message> + <message> + <source>%1 to %2</source> + <translation>%1 до %2</translation> + </message> + <message> + <source>Do you want to draft this transaction?</source> + <translation>Да ли желите да саставите ову трансакцију?</translation> + </message> + <message> + <source>Are you sure you want to send?</source> + <translation>Да ли сте сигурни да желите да пошаљете?</translation> + </message> + <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Молим, проверите ваш предлог трансакције. Ово ће произвести делимично потписану Биткоин трансакцију (PSBT) коју можете копирати и онда потписати са нпр. офлајн %1 новчаником, или PSBT компатибилним хардверским новчаником.</translation> + </message> + <message> + <source>or</source> + <translation>или</translation> + </message> + <message> + <source>You can increase the fee later (signals Replace-By-Fee, BIP-125).</source> + <translation>Можете повећати провизију касније (сигнали Замени-са-Провизијом, BIP-125).</translation> + </message> + <message> + <source>Please, review your transaction.</source> + <translation>Молим, размотрите вашу трансакцију.</translation> + </message> + <message> + <source>Transaction fee</source> + <translation>Провизија за трансакцију</translation> + </message> + <message> + <source>Not signalling Replace-By-Fee, BIP-125.</source> + <translation>Не сигнализира Замени-са-Провизијом, BIP-125.</translation> + </message> + <message> + <source>Total Amount</source> + <translation>Укупан износ</translation> + </message> + <message> + <source>To review recipient list click "Show Details..."</source> + <translation>Да би сте размотрили листу примаоца кликните на "Прикажи детаље..."</translation> + </message> + <message> + <source>Confirm send coins</source> + <translation>Потврдите слање новчића</translation> + </message> + <message> + <source>Confirm transaction proposal</source> + <translation>Потврдите предлог трансакције</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Копирајте PSBT у базу за копирање</translation> + </message> + <message> + <source>Send</source> + <translation>Пошаљи</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT је копиран</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Само-гледање Стање:</translation> + </message> + <message> + <source>The recipient address is not valid. Please recheck.</source> + <translation>Адреса примаоца није валидна. Молим проверите поново.</translation> + </message> + <message> + <source>The amount to pay must be larger than 0.</source> + <translation>Овај износ за плаћање мора бити већи од 0.</translation> + </message> + <message> + <source>The amount exceeds your balance.</source> + <translation>Овај износ је већи од вашег салда.</translation> + </message> + <message> + <source>The total exceeds your balance when the %1 transaction fee is included.</source> + <translation>Укупни износ премашује ваш салдо, када се %1 провизија за трансакцију укључи у износ.</translation> + </message> + <message> + <source>Duplicate address found: addresses should only be used once each.</source> + <translation>Пронађена је дуплирана адреса: адресе се требају користити само једном.</translation> + </message> + <message> + <source>Transaction creation failed!</source> + <translation>Израда трансакције није успела!</translation> + </message> + <message> + <source>A fee higher than %1 is considered an absurdly high fee.</source> + <translation>Провизија већа од %1 се сматра апсурдно високом провизијом.</translation> + </message> + <message> + <source>Payment request expired.</source> + <translation>Захтев за плаћање је истекао.</translation> + </message> + <message numerus="yes"> + <source>Estimated to begin confirmation within %n block(s).</source> + <translation><numerusform>Процењује се да ће започети потврду унутар %n блока.</numerusform><numerusform>Процењује се да ће започети потврду унутар %n блока.</numerusform><numerusform>Процењује се да ће започети потврду унутар %n блокова.</numerusform></translation> + </message> + <message> + <source>Warning: Invalid Bitcoin address</source> + <translation>Упозорење: Неважећа Биткоин адреса</translation> + </message> + <message> + <source>Warning: Unknown change address</source> + <translation>Упозорење: Непозната адреса за промену</translation> + </message> + <message> + <source>Confirm custom change address</source> + <translation>Потврдите прилагођену адресу за промену</translation> + </message> + <message> + <source>The address you selected for change is not part of this wallet. Any or all funds in your wallet may be sent to this address. Are you sure?</source> + <translation>Адреса коју сте одабрали за промену није део овог новчаника. Део или цео износ вашег новчаника може бити послат на ову адресу. Да ли сте сигурни?</translation> + </message> + <message> <source>(no label)</source> - <translation>(без налепнице)</translation> + <translation>(без ознаке)</translation> </message> </context> <context> <name>SendCoinsEntry</name> <message> <source>A&mount:</source> - <translation>Iznos:</translation> + <translation>&Износ:</translation> + </message> + <message> + <source>Pay &To:</source> + <translation>Плати &За:</translation> </message> <message> <source>&Label:</source> - <translation>&Етикета</translation> + <translation>&Ознака</translation> + </message> + <message> + <source>Choose previously used address</source> + <translation>Одабери претходно коришћену адресу</translation> + </message> + <message> + <source>The Bitcoin address to send the payment to</source> + <translation>Биткоин адреса на коју се шаље уплата</translation> </message> <message> <source>Alt+A</source> - <translation>Alt+</translation> + <translation>Alt+A</translation> + </message> + <message> + <source>Paste address from clipboard</source> + <translation>Налепите адресу из базе за копирање</translation> </message> <message> <source>Alt+P</source> <translation>Alt+П</translation> </message> <message> + <source>Remove this entry</source> + <translation>Уклоните овај унос</translation> + </message> + <message> + <source>The amount to send in the selected unit</source> + <translation>Износ који ће бити послат у одабрану јединицу</translation> + </message> + <message> + <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> + <translation>Провизија ће бити одузета од износа који је послат. Примаоц ће добити мање биткоина него што је унесено у поље за износ. Уколико је одабрано више примаоца, провизија се дели равномерно.</translation> + </message> + <message> + <source>S&ubtract fee from amount</source> + <translation>&Одузми провизију од износа</translation> + </message> + <message> + <source>Use available balance</source> + <translation>Користи расположиви салдо</translation> + </message> + <message> <source>Message:</source> - <translation>Poruka:</translation> + <translation>Порука:</translation> + </message> + <message> + <source>This is an unauthenticated payment request.</source> + <translation>Ово је неовлашћени захтев за плаћање.</translation> + </message> + <message> + <source>This is an authenticated payment request.</source> + <translation>Ово је овлашћени захтев за плаћање.</translation> </message> - </context> + <message> + <source>Enter a label for this address to add it to the list of used addresses</source> + <translation>Унесите ознаку за ову адресу да бисте је додали на листу коришћених адреса</translation> + </message> + <message> + <source>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</source> + <translation>Порука која је приложена биткоину: URI која ће бити сачувана уз трансакцију ради референце. Напомена: Ова порука се шаље преко Биткоин мреже.</translation> + </message> + <message> + <source>Pay To:</source> + <translation>Плати ка:</translation> + </message> + <message> + <source>Memo:</source> + <translation>Мемо:</translation> + </message> +</context> <context> <name>ShutdownWindow</name> - </context> + <message> + <source>%1 is shutting down...</source> + <translation>%1 се искључује</translation> + </message> + <message> + <source>Do not shut down the computer until this window disappears.</source> + <translation>Немојте искључити рачунар док овај прозор не нестане.</translation> + </message> +</context> <context> <name>SignVerifyMessageDialog</name> <message> + <source>Signatures - Sign / Verify a Message</source> + <translation>Потписи - Потпиши / Потврди поруку</translation> + </message> + <message> + <source>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source> + <translation>Можете потписати поруку/споразум са вашом адресом да би сте доказали да можете примити биткоин послат ка њима. Будите опрезни да не потписујете ништа нејасно или случајно, јер се може десити напад крађе идентитета, да потпишете ваш идентитет нападачу. Потпишите само потпуно детаљне изјаве са којима се слажете.</translation> + </message> + <message> + <source>The Bitcoin address to sign the message with</source> + <translation>Биткоин адреса са којом ћете потписати поруку</translation> + </message> + <message> + <source>Choose previously used address</source> + <translation>Промени претходно коришћену адресу</translation> + </message> + <message> <source>Alt+A</source> - <translation>Alt+</translation> + <translation>Alt+A</translation> + </message> + <message> + <source>Paste address from clipboard</source> + <translation>Налепите адресу из базе за копирање</translation> </message> <message> <source>Alt+P</source> - <translation>Alt+П</translation> + <translation>Alt+P</translation> + </message> + <message> + <source>Enter the message you want to sign here</source> + <translation>Унесите поруку коју желите да потпишете овде</translation> + </message> + <message> + <source>Signature</source> + <translation>Потпис</translation> + </message> + <message> + <source>Copy the current signature to the system clipboard</source> + <translation>Копирајте тренутни потпис у системску базу за копирање</translation> + </message> + <message> + <source>Sign the message to prove you own this Bitcoin address</source> + <translation>Потпишите поруку да докажете да сте власник ове Биткоин адресе</translation> + </message> + <message> + <source>Sign &Message</source> + <translation>Потпис &Порука</translation> + </message> + <message> + <source>Reset all sign message fields</source> + <translation>Поништите сва поља за потписивање поруке</translation> + </message> + <message> + <source>Clear &All</source> + <translation>Очисти &Све</translation> + </message> + <message> + <source>&Verify Message</source> + <translation>&Потврди поруку</translation> + </message> + <message> + <source>Enter the receiver's address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. Note that this only proves the signing party receives with the address, it cannot prove sendership of any transaction!</source> + <translation>Унесите адресу примаоца, поруку (осигурајте да тачно копирате прекиде линија, размаке, картице итд) и потпишите испод да потврдите поруку. Будите опрезни да не убаците више у потпис од онога што је у потписаној поруци, да би сте избегли напад посредника. Имајте на уму да потпис само доказује да потписник прима са потписаном адресом, а не може да докаже слање било које трансакције!</translation> + </message> + <message> + <source>The Bitcoin address the message was signed with</source> + <translation>Биткоин адреса са којом је потписана порука</translation> + </message> + <message> + <source>The signed message to verify</source> + <translation>Потписана порука за потврду</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>Потпис који је дат приликом потписивања поруке</translation> + </message> + <message> + <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> + <translation>Потврдите поруку да осигурате да је потписана са одговарајућом Биткоин адресом</translation> + </message> + <message> + <source>Verify &Message</source> + <translation>Потврди &Поруку</translation> + </message> + <message> + <source>Reset all verify message fields</source> + <translation>Поништите сва поља за потврду поруке</translation> + </message> + <message> + <source>Click "Sign Message" to generate signature</source> + <translation>Притисни "Потпиши поруку" за израду потписа</translation> + </message> + <message> + <source>The entered address is invalid.</source> + <translation>Унесена адреса није важећа.</translation> + </message> + <message> + <source>Please check the address and try again.</source> + <translation>Молим проверите адресу и покушајте поново.</translation> + </message> + <message> + <source>The entered address does not refer to a key.</source> + <translation>Унесена адреса се не односи на кључ.</translation> + </message> + <message> + <source>Wallet unlock was cancelled.</source> + <translation>Откључавање новчаника је отказано.</translation> + </message> + <message> + <source>No error</source> + <translation>Нема грешке</translation> </message> - </context> + <message> + <source>Private key for the entered address is not available.</source> + <translation>Приватни кључ за унесену адресу није доступан.</translation> + </message> + <message> + <source>Message signing failed.</source> + <translation>Потписивање поруке није успело.</translation> + </message> + <message> + <source>Message signed.</source> + <translation>Порука је потписана.</translation> + </message> + <message> + <source>The signature could not be decoded.</source> + <translation>Потпис не може бити декодиран.</translation> + </message> + <message> + <source>Please check the signature and try again.</source> + <translation>Молим проверите потпис и покушајте поново.</translation> + </message> + <message> + <source>The signature did not match the message digest.</source> + <translation>Потпис се не подудара са прегледом порука.</translation> + </message> + <message> + <source>Message verification failed.</source> + <translation>Провера поруке није успела.</translation> + </message> + <message> + <source>Message verified.</source> + <translation>Порука је проверена.</translation> + </message> +</context> <context> <name>TrafficGraphWidget</name> - </context> + <message> + <source>KB/s</source> + <translation>KB/s</translation> + </message> +</context> <context> <name>TransactionDesc</name> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Отворено за још %n блок.</numerusform><numerusform>Отворено за још %n блока</numerusform><numerusform>Отворено за још %n блокова</numerusform></translation> + </message> <message> <source>Open until %1</source> <translation>Otvoreno do %1</translation> </message> <message> + <source>0/unconfirmed, %1</source> + <translation>0/непотврђено, %1</translation> + </message> + <message> + <source>in memory pool</source> + <translation>у удруженој меморији</translation> + </message> + <message> + <source>not in memory pool</source> + <translation>није у удруженој меморији</translation> + </message> + <message> + <source>abandoned</source> + <translation>напуштено</translation> + </message> + <message> <source>%1/unconfirmed</source> - <translation>%1/nepotvrdjeno</translation> + <translation>%1/непотврђено</translation> </message> <message> <source>%1 confirmations</source> - <translation>%1 potvrde</translation> + <translation>%1 порврде</translation> + </message> + <message> + <source>Status</source> + <translation>Статус</translation> </message> <message> <source>Date</source> - <translation>datum</translation> + <translation>Датум</translation> + </message> + <message> + <source>Source</source> + <translation>Извор</translation> + </message> + <message> + <source>Generated</source> + <translation>Генерисано</translation> + </message> + <message> + <source>From</source> + <translation>Од</translation> </message> <message> <source>unknown</source> - <translation>nepoznato</translation> + <translation>непознато</translation> + </message> + <message> + <source>To</source> + <translation>За</translation> + </message> + <message> + <source>own address</source> + <translation>сопствена адреса</translation> + </message> + <message> + <source>watch-only</source> + <translation>гледај-само</translation> </message> <message> <source>label</source> - <translation>етикета</translation> + <translation>ознака</translation> + </message> + <message> + <source>Credit</source> + <translation>Заслуге</translation> + </message> + <message numerus="yes"> + <source>matures in %n more block(s)</source> + <translation><numerusform>сазрева за %n блок</numerusform><numerusform>сазрева за %n блока</numerusform><numerusform>сазрева за %n блокова</numerusform></translation> + </message> + <message> + <source>not accepted</source> + <translation>није прихваћено</translation> + </message> + <message> + <source>Debit</source> + <translation>Задужење</translation> + </message> + <message> + <source>Total debit</source> + <translation>Укупно задужење</translation> + </message> + <message> + <source>Total credit</source> + <translation>Укупни кредит</translation> + </message> + <message> + <source>Transaction fee</source> + <translation>Провизија за трансакцију</translation> + </message> + <message> + <source>Net amount</source> + <translation>Нето износ</translation> </message> <message> <source>Message</source> - <translation>Poruka</translation> + <translation>Порука</translation> + </message> + <message> + <source>Comment</source> + <translation>Коментар</translation> + </message> + <message> + <source>Transaction ID</source> + <translation>ID Трансакције</translation> + </message> + <message> + <source>Transaction total size</source> + <translation>Укупна величина трансакције</translation> + </message> + <message> + <source>Transaction virtual size</source> + <translation>Виртуелна величина трансакције</translation> + </message> + <message> + <source>Output index</source> + <translation>Излазни индекс</translation> + </message> + <message> + <source> (Certificate was not verified)</source> + <translation>(Сертификат још није проверен)</translation> + </message> + <message> + <source>Merchant</source> + <translation>Трговац</translation> + </message> + <message> + <source>Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.</source> + <translation>Генерисани новчићи морају доспети %1 блокова пре него што могу бити потрошени. Када генеришете овај блок, он се емитује у мрежу, да би био придодат на ланац блокова. Укупно не успе да се придода на ланац, његово стање се мења у "није прихваћен" и неће га бити могуће потрошити. Ово се може повремено десити уколико други чвор генерише блок у периоду од неколико секунди од вашег.</translation> + </message> + <message> + <source>Debug information</source> + <translation>Информације о оклањању грешака</translation> </message> <message> <source>Transaction</source> - <translation>transakcije</translation> + <translation>Трансакције</translation> + </message> + <message> + <source>Inputs</source> + <translation>Инпути</translation> </message> <message> <source>Amount</source> <translation>Износ</translation> </message> - </context> + <message> + <source>true</source> + <translation>тачно</translation> + </message> + <message> + <source>false</source> + <translation>нетачно</translation> + </message> +</context> <context> <name>TransactionDescDialog</name> <message> <source>This pane shows a detailed description of the transaction</source> - <translation>Ovaj odeljak pokazuje detaljan opis transakcije</translation> + <translation>Овај одељак приказује детањан приказ трансакције</translation> + </message> + <message> + <source>Details for %1</source> + <translation>Детаљи за %1</translation> </message> - </context> +</context> <context> <name>TransactionTableModel</name> <message> <source>Date</source> - <translation>datum</translation> + <translation>Датум</translation> </message> <message> <source>Type</source> - <translation>tip</translation> + <translation>Тип</translation> </message> <message> <source>Label</source> - <translation>Налепница</translation> + <translation>Ознака</translation> + </message> + <message numerus="yes"> + <source>Open for %n more block(s)</source> + <translation><numerusform>Отворено за још %n блок </numerusform><numerusform>Отворено за још %n блока</numerusform><numerusform> Отворено за још %n блокова</numerusform></translation> </message> <message> <source>Open until %1</source> - <translation>Otvoreno do %1</translation> + <translation>Отворено до %1</translation> + </message> + <message> + <source>Unconfirmed</source> + <translation>Непотврђено</translation> + </message> + <message> + <source>Abandoned</source> + <translation>Напуштено</translation> + </message> + <message> + <source>Confirming (%1 of %2 recommended confirmations)</source> + <translation>Потврђивање у току (%1 од %2 препоручене потврде)</translation> </message> <message> <source>Confirmed (%1 confirmations)</source> <translation>Potvrdjena (%1 potvrdjenih)</translation> </message> <message> + <source>Conflicted</source> + <translation>Неуслагашен</translation> + </message> + <message> + <source>Immature (%1 confirmations, will be available after %2)</source> + <translation>Није доспео (%1 потврде, биће доступан након %2)</translation> + </message> + <message> <source>Generated but not accepted</source> - <translation>Generisan ali nije prihvaćen</translation> + <translation>Генерисан али није прихваћен</translation> </message> <message> <source>Received with</source> - <translation>Primljen sa</translation> + <translation>Примљен са</translation> </message> <message> <source>Received from</source> - <translation>Primljeno od</translation> + <translation>Примљено од</translation> </message> <message> <source>Sent to</source> - <translation>Poslat ka</translation> + <translation>Послато ка</translation> </message> <message> <source>Payment to yourself</source> - <translation>Isplata samom sebi</translation> + <translation>Уплата самом себи</translation> </message> <message> <source>Mined</source> - <translation>Minirano</translation> + <translation>Рударено</translation> + </message> + <message> + <source>watch-only</source> + <translation>гледај-само</translation> </message> <message> <source>(n/a)</source> @@ -1221,78 +2983,98 @@ </message> <message> <source>(no label)</source> - <translation>(без налепнице)</translation> + <translation>(без ознаке)</translation> </message> <message> <source>Transaction status. Hover over this field to show number of confirmations.</source> - <translation>Status vaše transakcije. Predjite mišem preko ovog polja da bi ste videli broj konfirmacija</translation> + <translation>Статус трансакције. Пређи мишем преко поља за приказ броја трансакција.</translation> </message> <message> <source>Date and time that the transaction was received.</source> - <translation>Datum i vreme primljene transakcije.</translation> + <translation>Датум и време пријема трансакције</translation> </message> <message> <source>Type of transaction.</source> - <translation>Tip transakcije</translation> + <translation>Тип трансакције.</translation> + </message> + <message> + <source>Whether or not a watch-only address is involved in this transaction.</source> + <translation>Без обзира да ли је у ову трансакције укључена или није - адреса само за гледање.</translation> + </message> + <message> + <source>User-defined intent/purpose of the transaction.</source> + <translation>Намена / сврха трансакције коју одређује корисник.</translation> </message> <message> <source>Amount removed from or added to balance.</source> - <translation>Iznos odbijen ili dodat balansu.</translation> + <translation>Износ одбијен или додат салду.</translation> </message> </context> <context> <name>TransactionView</name> <message> <source>All</source> - <translation>Sve</translation> + <translation>Све</translation> </message> <message> <source>Today</source> - <translation>Danas</translation> + <translation>Данас</translation> </message> <message> <source>This week</source> - <translation>ove nedelje</translation> + <translation>Oве недеље</translation> </message> <message> <source>This month</source> - <translation>Ovog meseca</translation> + <translation>Овог месеца</translation> </message> <message> <source>Last month</source> - <translation>Prošlog meseca</translation> + <translation>Претходног месеца</translation> </message> <message> <source>This year</source> - <translation>Ove godine</translation> + <translation>Ове године</translation> </message> <message> <source>Range...</source> - <translation>Opseg...</translation> + <translation>Опсег...</translation> </message> <message> <source>Received with</source> - <translation>Primljen sa</translation> + <translation>Примљен са...</translation> </message> <message> <source>Sent to</source> - <translation>Poslat ka</translation> + <translation>Послат ка</translation> </message> <message> <source>To yourself</source> - <translation>Vama - samom sebi</translation> + <translation>Теби</translation> </message> <message> <source>Mined</source> - <translation>Minirano</translation> + <translation>Рударено</translation> </message> <message> <source>Other</source> - <translation>Drugi</translation> + <translation>Други</translation> + </message> + <message> + <source>Enter address, transaction id, or label to search</source> + <translation>Унесите адресу, ознаку трансакције, или назив за претрагу</translation> </message> <message> <source>Min amount</source> - <translation>Min iznos</translation> + <translation>Минимални износ</translation> + </message> + <message> + <source>Abandon transaction</source> + <translation>Напусти трансакцију</translation> + </message> + <message> + <source>Increase transaction fee</source> + <translation>Повећај провизију трансакције</translation> </message> <message> <source>Copy address</source> @@ -1300,20 +3082,35 @@ </message> <message> <source>Copy label</source> - <translation>Копирај налепницу -</translation> + <translation>Копирај ознаку</translation> </message> <message> <source>Copy amount</source> - <translation>к</translation> + <translation>Копирај износ</translation> </message> <message> <source>Copy transaction ID</source> <translation>Копирај идентификациони број трансакције</translation> </message> <message> + <source>Copy raw transaction</source> + <translation>Копирајте необрађену трансакцију</translation> + </message> + <message> + <source>Copy full transaction details</source> + <translation>Копирајте потпуне детаље трансакције</translation> + </message> + <message> <source>Edit label</source> - <translation>promeni naziv</translation> + <translation>Измени ознаку</translation> + </message> + <message> + <source>Show transaction details</source> + <translation>Прикажи детаље транакције</translation> + </message> + <message> + <source>Export Transaction History</source> + <translation>Извези Детаље Трансакције</translation> </message> <message> <source>Comma separated file (*.csv)</source> @@ -1321,46 +3118,86 @@ </message> <message> <source>Confirmed</source> - <translation>Potvrdjen</translation> + <translation>Потврђено</translation> + </message> + <message> + <source>Watch-only</source> + <translation>Само-гледање</translation> </message> <message> <source>Date</source> - <translation>datum</translation> + <translation>Датум</translation> </message> <message> <source>Type</source> - <translation>tip</translation> + <translation>Тип</translation> </message> <message> <source>Label</source> - <translation>Налепница</translation> + <translation>Ознака</translation> </message> <message> <source>Address</source> - <translation>Adresa</translation> + <translation>Адреса</translation> + </message> + <message> + <source>ID</source> + <translation>ID</translation> </message> <message> <source>Exporting Failed</source> <translation>Извоз Неуспешан</translation> </message> <message> + <source>There was an error trying to save the transaction history to %1.</source> + <translation>Десила се грешка приликом покушаја да се сними историја трансакција на %1.</translation> + </message> + <message> + <source>Exporting Successful</source> + <translation>Извоз Успешан</translation> + </message> + <message> + <source>The transaction history was successfully saved to %1.</source> + <translation>Историја трансакција је успешно снимљена на %1.</translation> + </message> + <message> <source>Range:</source> - <translation>Opseg:</translation> + <translation>Опсег:</translation> </message> <message> <source>to</source> - <translation>do</translation> + <translation>до</translation> </message> </context> <context> <name>UnitDisplayStatusBarControl</name> - </context> + <message> + <source>Unit to show amounts in. Click to select another unit.</source> + <translation>Јединица у којој се приказују износи. Притисни да се прикаже друга јединица.</translation> + </message> +</context> <context> <name>WalletController</name> - </context> + <message> + <source>Close wallet</source> + <translation>Затвори новчаник</translation> + </message> + <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Да ли сте сигурни да желите да затворите новчаник <i>%1</i>?</translation> + </message> + <message> + <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> + <translation>Услед затварања новчаника на дугачки период времена може се десити да је потребна поновна синхронизација комплетног ланца, уколико је дозвољено резање.</translation> + </message> +</context> <context> <name>WalletFrame</name> - </context> + <message> + <source>No wallet has been loaded.</source> + <translation>Ниједан новчаник није учитан.</translation> + </message> +</context> <context> <name>WalletModel</name> <message> @@ -1368,6 +3205,54 @@ <translation>Слање новца</translation> </message> <message> + <source>Fee bump error</source> + <translation>Изненадна грешка у накнади</translation> + </message> + <message> + <source>Increasing transaction fee failed</source> + <translation>Повећавање провизије за трансакцију није успело</translation> + </message> + <message> + <source>Do you want to increase the fee?</source> + <translation>Да ли желиш да увећаш накнаду?</translation> + </message> + <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Да ли желите да саставите трансакцију са повећаном провизијом?</translation> + </message> + <message> + <source>Current fee:</source> + <translation>Тренутна накнада:</translation> + </message> + <message> + <source>Increase:</source> + <translation>Увећај:</translation> + </message> + <message> + <source>New fee:</source> + <translation>Нова накнада:</translation> + </message> + <message> + <source>Confirm fee bump</source> + <translation>Потврдите ударну провизију</translation> + </message> + <message> + <source>Can't draft transaction.</source> + <translation>Није могуће саставити трансакцију.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT је копиран</translation> + </message> + <message> + <source>Can't sign transaction.</source> + <translation>Није могуће потписати трансакцију.</translation> + </message> + <message> + <source>Could not commit transaction</source> + <translation>Трансакција није могућа</translation> + </message> + <message> <source>default wallet</source> <translation>подразумевани новчаник</translation> </message> @@ -1376,7 +3261,7 @@ <name>WalletView</name> <message> <source>&Export</source> - <translation>&Izvedi</translation> + <translation>&Извези</translation> </message> <message> <source>Export the data in the current tab to a file</source> @@ -1384,24 +3269,526 @@ </message> <message> <source>Backup Wallet</source> - <translation>Backup новчаника</translation> + <translation>Резервна копија новчаника</translation> + </message> + <message> + <source>Wallet Data (*.dat)</source> + <translation>Датотека новчаника (*.dat)</translation> </message> - </context> + <message> + <source>Backup Failed</source> + <translation>Резервна копија није успела</translation> + </message> + <message> + <source>There was an error trying to save the wallet data to %1.</source> + <translation>Десила се грешка приликом покушаја да се сними датотека новчаника на %1.</translation> + </message> + <message> + <source>Backup Successful</source> + <translation>Резервна копија је успела</translation> + </message> + <message> + <source>The wallet data was successfully saved to %1.</source> + <translation>Датотека новчаника је успешно снимљена на %1.</translation> + </message> + <message> + <source>Cancel</source> + <translation>Откажи</translation> + </message> +</context> <context> <name>bitcoin-core</name> <message> + <source>Distributed under the MIT software license, see the accompanying file %s or %s</source> + <translation>Дистрибуирано под MIT софтверском лиценцом, погледајте придружени документ %s или %s</translation> + </message> + <message> + <source>Prune configured below the minimum of %d MiB. Please use a higher number.</source> + <translation>Скраћивање је конфигурисано испод минимума од %d MiB. Молимо користите већи број.</translation> + </message> + <message> + <source>Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node)</source> + <translation>Скраћивање: последња синхронизација иде преко одрезаних података. Потребно је урадити ре-индексирање (преузети комплетан ланац блокова поново у случају одсеченог чвора)</translation> + </message> + <message> + <source>Error: A fatal internal error occurred, see debug.log for details</source> + <translation>Грешка: Десила се фатална интерна грешка, погледати debug.log за детаље</translation> + </message> + <message> + <source>Pruning blockstore...</source> + <translation>Скраћивање спремљених блокова...</translation> + </message> + <message> + <source>Unable to start HTTP server. See debug log for details.</source> + <translation>Стартовање HTTP сервера није могуће. Погледати дневник исправљених грешака за детаље.</translation> + </message> + <message> + <source>The %s developers</source> + <translation>%s девелопери</translation> + </message> + <message> + <source>Can't generate a change-address key. No keys in the internal keypool and can't generate any keys.</source> + <translation>Кључ за промену адресе није могуће генерисати. У интерној групи кључева нема кључева и не може се генерисати нови кључ.</translation> + </message> + <message> + <source>Cannot obtain a lock on data directory %s. %s is probably already running.</source> + <translation>Директоријум података се не може закључати %s. %s је вероватно већ покренут.</translation> + </message> + <message> + <source>Cannot provide specific connections and have addrman find outgoing connections at the same.</source> + <translation>Не може се обезбедити одређена конекција и да addrman нађе одлазне конекције у исто време.</translation> + </message> + <message> + <source>Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect.</source> + <translation>Грешка у читању %s! Сви кључеви су прочитани коректно, али подаци о трансакцији или уноси у адресар могу недостајати или бити нетачни.</translation> + </message> + <message> + <source>Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly.</source> + <translation>Молим проверите да су време и датум на вашем рачунару тачни. Уколико је сат нетачан, %s неће радити исправно.</translation> + </message> + <message> + <source>Please contribute if you find %s useful. Visit %s for further information about the software.</source> + <translation>Молим донирајте, уколико сматрате %s корисним. Посетите %s за више информација о софтверу.</translation> + </message> + <message> + <source>The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct</source> + <translation>База података о блоковима садржи блок, за који се чини да је из будућности. Ово може бити услед тога што су време и датум на вашем рачунару нису подешени коректно. Покушајте обнову базе података о блоковима, само уколико сте сигурни да су време и датум на вашем рачунару исправни.</translation> + </message> + <message> + <source>This is a pre-release test build - use at your own risk - do not use for mining or merchant applications</source> + <translation>Ово је тестна верзија пред издавање - користите на ваш ризик - не користити за рударење или трговачку примену</translation> + </message> + <message> + <source>This is the transaction fee you may discard if change is smaller than dust at this level</source> + <translation>Ово је накнада за трансакцију коју можете одбацити уколико је мања од нивоа прашине</translation> + </message> + <message> + <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source> + <translation>Блокове није могуће поново репродуковати. Ви ћете морати да обновите базу података користећи -reindex-chainstate.</translation> + </message> + <message> + <source>Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain</source> + <translation>Није могуће вратити базу података на стање пре форк-а. Ви ћете морати да урадите поновно преузимање ланца блокова.</translation> + </message> + <message> + <source>Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.</source> + <translation>Упозорење: Изгледа да не постоји пуна сагласност на мрежи. Изгледа да одређени рудари имају проблеме.</translation> + </message> + <message> + <source>Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.</source> + <translation>Упозорење: Изгледа да се ми у потпуности не слажемо са нашим чворовима! Можда постоји потреба да урадите надоградњу, или други чворови морају да ураде надоградњу.</translation> + </message> + <message> + <source>%d of last 100 blocks have unexpected version</source> + <translation>%d од последњих 100 блокова имају неочекивану верзију</translation> + </message> + <message> + <source>%s corrupt, salvage failed</source> + <translation>%s је оштећен, спас није успео</translation> + </message> + <message> + <source>-maxmempool must be at least %d MB</source> + <translation>-maxmempool мора бити минимално %d MB</translation> + </message> + <message> + <source>Cannot resolve -%s address: '%s'</source> + <translation>Не могу решити -%s адреса: '%s'</translation> + </message> + <message> + <source>Change index out of range</source> + <translation>Промењен индекс изван домета</translation> + </message> + <message> + <source>Config setting for %s only applied on %s network when in [%s] section.</source> + <translation>Подешавање конфигурације за %s је само примењено на %s мрежи када је у [%s] секцији.</translation> + </message> + <message> + <source>Copyright (C) %i-%i</source> + <translation>Ауторско право (C) %i-%i</translation> + </message> + <message> + <source>Corrupted block database detected</source> + <translation>Детектована је оштећена база података блокова</translation> + </message> + <message> + <source>Could not find asmap file %s</source> + <translation>Не могу пронаћи датотеку asmap %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Не могу рашчланити датотеку asmap %s</translation> + </message> + <message> + <source>Do you want to rebuild the block database now?</source> + <translation>Да ли желите да сада обновите базу података блокова?</translation> + </message> + <message> + <source>Error initializing block database</source> + <translation>Грешка у иницијализацији базе података блокова</translation> + </message> + <message> + <source>Error initializing wallet database environment %s!</source> + <translation>Грешка код иницијализације окружења базе података новчаника %s!</translation> + </message> + <message> + <source>Error loading %s</source> + <translation>Грешка током учитавања %s</translation> + </message> + <message> + <source>Error loading %s: Private keys can only be disabled during creation</source> + <translation>Грешка током учитавања %s: Приватни кључеви могу бити онемогућени само приликом креирања</translation> + </message> + <message> + <source>Error loading %s: Wallet corrupted</source> + <translation>Грешка током учитавања %s: Новчаник је оштећен</translation> + </message> + <message> + <source>Error loading %s: Wallet requires newer version of %s</source> + <translation>Грешка током учитавања %s: Новчаник захтева новију верзију %s</translation> + </message> + <message> + <source>Error loading block database</source> + <translation>Грешка у учитавању базе података блокова</translation> + </message> + <message> + <source>Error opening block database</source> + <translation>Грешка приликом отварања базе података блокова</translation> + </message> + <message> + <source>Failed to listen on any port. Use -listen=0 if you want this.</source> + <translation>Преслушавање није успело ни на једном порту. Користите -listen=0 уколико желите то.</translation> + </message> + <message> + <source>Failed to rescan the wallet during initialization</source> + <translation>Није успело поновно скенирање новчаника приликом иницијализације.</translation> + </message> + <message> + <source>Importing...</source> + <translation>Увоз у току...</translation> + </message> + <message> + <source>Incorrect or no genesis block found. Wrong datadir for network?</source> + <translation>Почетни блок је погрешан или се не може пронаћи. Погрешан datadir за мрежу?</translation> + </message> + <message> + <source>Initialization sanity check failed. %s is shutting down.</source> + <translation>Провера исправности иницијализације није успела. %s се искључује.</translation> + </message> + <message> + <source>Invalid P2P permission: '%s'</source> + <translation>Неважећа P2P дозвола: '%s'</translation> + </message> + <message> + <source>Invalid amount for -%s=<amount>: '%s'</source> + <translation>Неважећи износ за %s=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -discardfee=<amount>: '%s'</source> + <translation>Неважећи износ за -discardfee=<amount>: '%s'</translation> + </message> + <message> + <source>Invalid amount for -fallbackfee=<amount>: '%s'</source> + <translation>Неважећи износ за -fallbackfee=<amount>: '%s'</translation> + </message> + <message> + <source>Specified blocks directory "%s" does not exist.</source> + <translation>Наведени директоријум блокова "%s" не постоји.</translation> + </message> + <message> + <source>Unknown address type '%s'</source> + <translation>Непознати тип адресе '%s'</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>Непознати тип промене '%s'</translation> + </message> + <message> + <source>Upgrading txindex database</source> + <translation>Надоградња txindex базе података</translation> + </message> + <message> + <source>Loading P2P addresses...</source> + <translation>Учитавање P2P адреса...</translation> + </message> + <message> + <source>Error: Disk space is too low!</source> + <translation>Грешка: Простор на диску је сувише мали!</translation> + </message> + <message> + <source>Loading banlist...</source> + <translation>Учитавање листе забрана...</translation> + </message> + <message> + <source>Not enough file descriptors available.</source> + <translation>Нема довољно доступних дескриптора датотеке.</translation> + </message> + <message> + <source>Prune cannot be configured with a negative value.</source> + <translation>Скраћење се не може конфигурисати са негативном вредношћу.</translation> + </message> + <message> + <source>Prune mode is incompatible with -txindex.</source> + <translation>Мод скраћивања није компатибилан са -txindex.</translation> + </message> + <message> + <source>Replaying blocks...</source> + <translation>Поновно репродуковање блокова...</translation> + </message> + <message> + <source>Rewinding blocks...</source> + <translation>Премотавање блокова...</translation> + </message> + <message> + <source>The source code is available from %s.</source> + <translation>Изворни код је доступан из %s.</translation> + </message> + <message> + <source>Transaction fee and change calculation failed</source> + <translation>Провизија за трансакцију и промена израчуна није успела</translation> + </message> + <message> + <source>Unable to bind to %s on this computer. %s is probably already running.</source> + <translation>Није могуће повезивање са %s на овом рачунару. %s је вероватно већ покренут.</translation> + </message> + <message> + <source>Unable to generate keys</source> + <translation>Није могуће генерисати кључеве</translation> + </message> + <message> + <source>Unsupported logging category %s=%s.</source> + <translation>Категорија записа није подржана %s=%s.</translation> + </message> + <message> + <source>Upgrading UTXO database</source> + <translation>Надоградња UTXO базе података</translation> + </message> + <message> + <source>User Agent comment (%s) contains unsafe characters.</source> + <translation>Коментар агента корисника (%s) садржи небезбедне знакове.</translation> + </message> + <message> + <source>Verifying blocks...</source> + <translation>Потврда блокова у току...</translation> + </message> + <message> + <source>Wallet needed to be rewritten: restart %s to complete</source> + <translation>Новчаник треба да буде преписан: поновно покрените %s да завршите</translation> + </message> + <message> + <source>Error: Listening for incoming connections failed (listen returned error %s)</source> + <translation>Грешка: Претрага за долазним конекцијама није успела (претрага враћа грешку %s)</translation> + </message> + <message> + <source>Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions)</source> + <translation>Неважећи износ за -maxtxfee=<amount>: '%s' (мора бити minrelay провизија од %s да би се спречило да се трансакција заглави)</translation> + </message> + <message> + <source>The transaction amount is too small to send after the fee has been deducted</source> + <translation>Износ трансакције је толико мали за слање након што се одузме провизија</translation> + </message> + <message> + <source>You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain</source> + <translation>Обновите базу података користећи -reindex да би се вратили у нескраћени мод. Ово ће урадити поновно преузимање комплетног ланца података</translation> + </message> + <message> + <source>Error reading from database, shutting down.</source> + <translation>Грешка приликом читања из базе података, искључивање у току.</translation> + </message> + <message> + <source>Error upgrading chainstate database</source> + <translation>Грешка приликом надоградње базе података стања ланца</translation> + </message> + <message> + <source>Error: Disk space is low for %s</source> + <translation>Грешка: Простор на диску је мали за %s</translation> + </message> + <message> + <source>Invalid -onion address or hostname: '%s'</source> + <translation>Неважећа -onion адреса или име хоста: '%s'</translation> + </message> + <message> + <source>Invalid -proxy address or hostname: '%s'</source> + <translation>Неважећа -proxy адреса или име хоста: '%s'</translation> + </message> + <message> + <source>Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)</source> + <translation>Неважећи износ за -paytxfee=<amount>: '%s' (мора бити бар %s)</translation> + </message> + <message> + <source>Invalid netmask specified in -whitelist: '%s'</source> + <translation>Неважећа мрежна маска наведена у -whitelist: '%s'</translation> + </message> + <message> + <source>Need to specify a port with -whitebind: '%s'</source> + <translation>Ви морате одредити порт са -whitebind: '%s'</translation> + </message> + <message> + <source>Prune mode is incompatible with -blockfilterindex.</source> + <translation>Мод скраћења је некомпатибилна са -blockfilterindex.</translation> + </message> + <message> + <source>Reducing -maxconnections from %d to %d, because of system limitations.</source> + <translation>Смањивање -maxconnections са %d на %d, због ограничења система.</translation> + </message> + <message> + <source>Section [%s] is not recognized.</source> + <translation>Одељак [%s] није препознат.</translation> + </message> + <message> + <source>Signing transaction failed</source> + <translation>Потписивање трансакције није успело</translation> + </message> + <message> + <source>Specified -walletdir "%s" does not exist</source> + <translation>Наведени -walletdir "%s" не постоји</translation> + </message> + <message> + <source>Specified -walletdir "%s" is a relative path</source> + <translation>Наведени -walletdir "%s" је релативна путања</translation> + </message> + <message> + <source>Specified -walletdir "%s" is not a directory</source> + <translation>Наведени -walletdir "%s" није директоријум</translation> + </message> + <message> + <source>The specified config file %s does not exist +</source> + <translation>Наведени конфигурациони документ %s не постоји +</translation> + </message> + <message> + <source>The transaction amount is too small to pay the fee</source> + <translation>Износ трансакције је сувише мали да се плати трансакција</translation> + </message> + <message> + <source>This is experimental software.</source> + <translation>Ово је експерименталн софтвер.</translation> + </message> + <message> + <source>Transaction amount too small</source> + <translation>Износ трансакције премали.</translation> + </message> + <message> + <source>Transaction too large</source> + <translation>Трансакција превелика.</translation> + </message> + <message> + <source>Unable to bind to %s on this computer (bind returned error %s)</source> + <translation>Није могуће повезати %s на овом рачунару (веза враћа грешку %s)</translation> + </message> + <message> + <source>Unable to create the PID file '%s': %s</source> + <translation>Стварање PID документа '%s': %s није могуће</translation> + </message> + <message> + <source>Unable to generate initial keys</source> + <translation>Генерисање кључева за иницијализацију није могуће</translation> + </message> + <message> + <source>Unknown -blockfilterindex value %s.</source> + <translation>Непозната вредност -blockfilterindex %s.</translation> + </message> + <message> + <source>Verifying wallet(s)...</source> + <translation>Потврђивање новчаника(а)...</translation> + </message> + <message> + <source>Warning: unknown new rules activated (versionbit %i)</source> + <translation>Упозорење: активирано је ново непознато правило (versionbit %i)</translation> + </message> + <message> + <source>Zapping all transactions from wallet...</source> + <translation>Затварање свих трансакција из новчаника...</translation> + </message> + <message> + <source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source> + <translation>-maxtxfee је постављен сувише високо! Овако велике провизије могу бити наплаћене на само једној трансакцији.</translation> + </message> + <message> + <source>This is the transaction fee you may pay when fee estimates are not available.</source> + <translation>Ово је провизија за трансакцију коју можете платити када процена провизије није доступна.</translation> + </message> + <message> + <source>Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments.</source> + <translation>Укупна дужина мрежне верзије низа (%i) је већа од максималне дужине (%i). Смањити број или величину корисничких коментара.</translation> + </message> + <message> + <source>Warning: Wallet file corrupt, data salvaged! Original %s saved as %s in %s; if your balance or transactions are incorrect you should restore from a backup.</source> + <translation>Упозорење: Датотека новчаника је оштећена, подаци су спасени! Оргинални %s је снимљен као %s у %s; уколико ваш салдо или трансакције нису исправни, потребно је вратити податке из резервне копије. </translation> + </message> + <message> + <source>%s is set very high!</source> + <translation>%s је постављен врло високо!</translation> + </message> + <message> + <source>Error loading wallet %s. Duplicate -wallet filename specified.</source> + <translation>Грешка приликом учитавања новчаника %s. Наведено је дуплирано име датотеке -wallet.</translation> + </message> + <message> + <source>Starting network threads...</source> + <translation>Покретање мрежних тема...</translation> + </message> + <message> + <source>The wallet will avoid paying less than the minimum relay fee.</source> + <translation>Новчаник ће избећи плаћање износа мањег него што је минимална повезана провизија.</translation> + </message> + <message> + <source>This is the minimum transaction fee you pay on every transaction.</source> + <translation>Ово је минимални износ провизије за трансакцију коју ћете платити на свакој трансакцији.</translation> + </message> + <message> + <source>This is the transaction fee you will pay if you send a transaction.</source> + <translation>Ово је износ провизије за трансакцију коју ћете платити уколико шаљете трансакцију.</translation> + </message> + <message> + <source>Transaction amounts must not be negative</source> + <translation>Износ трансакције не може бити негативан</translation> + </message> + <message> + <source>Transaction has too long of a mempool chain</source> + <translation>Трансакција има предугачак ланац у удруженој меморији</translation> + </message> + <message> + <source>Transaction must have at least one recipient</source> + <translation>Трансакција мора имати бар једног примаоца</translation> + </message> + <message> + <source>Unknown network specified in -onlynet: '%s'</source> + <translation>Непозната мрежа је наведена у -onlynet: '%s'</translation> + </message> + <message> <source>Insufficient funds</source> - <translation>Nedovoljno sredstava</translation> + <translation>Недовољно средстава</translation> + </message> + <message> + <source>Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use -upgradewallet=169900 or -upgradewallet with no version specified.</source> + <translation>HD подељени новчаник се не може надоградити без надоградње групе кључева пре дељења. Молим користите -upgradewallet=169900 или -upgradewallet без наведене верзије.</translation> + </message> + <message> + <source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source> + <translation>Процена провизије није успела. Промена провизије током трансакције је онемогућена. Сачекајте неколико блокова или омогућите -fallbackfee.</translation> + </message> + <message> + <source>Warning: Private keys detected in wallet {%s} with disabled private keys</source> + <translation>Упозорење: Приватни кључеви су пронађени у новчанику {%s} са онемогућеним приватним кључевима.</translation> + </message> + <message> + <source>Cannot write to data directory '%s'; check permissions.</source> + <translation>Није могуће извршити упис у директоријум података '%s'; проверите дозволе за упис.</translation> </message> <message> <source>Loading block index...</source> - <translation>Učitavam blok indeksa...</translation> + <translation>Учитавање индекса блокова</translation> </message> <message> <source>Loading wallet...</source> <translation>Новчаник се учитава...</translation> </message> <message> + <source>Cannot downgrade wallet</source> + <translation>Новчаник се не може уназадити</translation> + </message> + <message> <source>Rescanning...</source> <translation>Ponovo skeniram...</translation> </message> diff --git a/src/qt/locale/bitcoin_sr@latin.ts b/src/qt/locale/bitcoin_sr@latin.ts index a80c5a0891..02f0fb72b5 100644 --- a/src/qt/locale/bitcoin_sr@latin.ts +++ b/src/qt/locale/bitcoin_sr@latin.ts @@ -30,6 +30,10 @@ <translation>Briše trenutno izabranu adresu sa liste</translation> </message> <message> + <source>Enter address or label to search</source> + <translation>Unesite adresu ili oznaku za pretragu</translation> + </message> + <message> <source>Export the data in the current tab to a file</source> <translation>Izvoz podataka iz trenutne kartice u datoteku</translation> </message> @@ -66,6 +70,10 @@ <translation>Ovo su Vaše Bitcoin adrese na koju se vrše uplate. Uvek proverite iznos i prijemnu adresu pre slanja novčića.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>Ovo su vaše Bitcoin adrese za primanje isplete. Upotrebite dugme 'Kreiraj novu adresu prijema' na kartici za prijem da biste kreirali nove adrese.</translation> + </message> + <message> <source>&Copy Address</source> <translation>&Kopiraj Adresu</translation> </message> @@ -128,6 +136,10 @@ <translation>Ponovo unesite pristupnu frazu</translation> </message> <message> + <source>Show passphrase</source> + <translation>Prikaži lozinku</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>Šifrujte novčanik</translation> </message> @@ -168,6 +180,22 @@ <translation>Novčanik je šifrovan</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Unesite lozinku u novčanik. <br/>Molimo, koristite lozinku koja ima <b> deset ili više nasumičnih znakova</b>, ili <b>osam ili više reči</b>.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Unesite u novčanik staru lozinku i novu lozinku.</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Novčanik će vam biti šifriran.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Vaš novčanik je sada šifrovan.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>VAŽNO: Ranije rezervne kopije wallet datoteke trebate zameniti sa novo-kreiranom, enkriptovanom wallet datotekom. Iz sigurnosnih razloga, ranije ne-enkriptovane wallet datoteke će postati neupotrebljive čim počnete koristiti novi, enkriptovani novčanik.</translation> </message> @@ -290,6 +318,10 @@ <translation>Otvori &URI...</translation> </message> <message> + <source>Wallet:</source> + <translation>Novčanik:</translation> + </message> + <message> <source>Click to disable network activity.</source> <translation>Odaberite za prekid aktivnosti na mreži.</translation> </message> @@ -386,6 +418,10 @@ <translation>Informacije</translation> </message> <message> + <source>Open Wallet</source> + <translation>Otvori novčanik</translation> + </message> + <message> <source>%1 client</source> <translation>%1 klijent</translation> </message> @@ -456,6 +492,10 @@ </context> <context> <name>CreateWalletDialog</name> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Onemogućite privatne ključeve za ovaj novčanik. Novčanici sa isključenim privatnim ključevima neće imati privatne ključeve i ne mogu imati HD seme ili uvezene privatne ključeve. Ovo je idealno za novčanike samo za gledanje.</translation> + </message> </context> <context> <name>EditAddressDialog</name> diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/bitcoin_sv.ts index e626b1a930..28bb524ef0 100644 --- a/src/qt/locale/bitcoin_sv.ts +++ b/src/qt/locale/bitcoin_sv.ts @@ -483,6 +483,14 @@ Försök igen.</translation> <translation>Uppdaterad</translation> </message> <message> + <source>Node window</source> + <translation>Nod-fönster</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Öppna nodens konsol för felsökning och diagnostik</translation> + </message> + <message> <source>&Sending addresses</source> <translation>Av&sändaradresser</translation> </message> @@ -491,6 +499,10 @@ Försök igen.</translation> <translation>Mottaga&radresser</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Öppna en bitcoin:-URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Öppna plånbok</translation> </message> @@ -784,7 +796,11 @@ Försök igen.</translation> <source>Create wallet failed</source> <translation>Plånboken kunde inte skapas</translation> </message> - </context> + <message> + <source>Create wallet warning</source> + <translation>Skapa plånboksvarning</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> <message> @@ -804,6 +820,22 @@ Försök igen.</translation> <translation>Kryptera plånbok</translation> </message> <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Stäng av privata nycklar för denna plånbok. Plånböcker med privata nycklar avstängda kommer inte innehålla några privata nycklar alls, och kan inte innehålla vare sig en HD-seed eller importerade privata nycklar. Detta är idealt för plånböcker som endast ska granskas.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Stäng av privata nycklar</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Skapa en tom plånbok. Tomma plånböcker har från början inga privata nycklar eller skript. Privata nycklar och adresser kan importeras, eller en HD-seed kan väljas, vid ett senare tillfälle.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Skapa tom plånbok</translation> + </message> + <message> <source>Create</source> <translation>Skapa</translation> </message> @@ -920,6 +952,10 @@ Försök igen.</translation> <translation>När du trycker OK kommer %1 att börja ladda ner och bearbeta den fullständiga %4-blockkedjan (%2 GB), med början vid de första transaktionerna %3 när %4 först lanserades.</translation> </message> <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Att återställa detta alternativ påbörjar en omstart av nedladdningen av hela blockkedjan. Det går snabbare att ladda ner hela kedjan först, och gallra den senare. Detta alternativ stänger av vissa avancerade funktioner.</translation> + </message> + <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> <translation>Denna första synkronisering är väldigt krävande, och kan påvisa hårdvaruproblem hos din dator som tidigare inte visat sig. Varje gång du kör %1, kommer nerladdningen att fortsätta där den avslutades.</translation> </message> @@ -940,6 +976,10 @@ Försök igen.</translation> <translation>Bitcoin</translation> </message> <message> + <source>Discard blocks after verification, except most recent %1 GB (prune)</source> + <translation>Släng block efter verifiering, förutom de senaste %1 GB (gallra).</translation> + </message> + <message> <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> <translation>Minst %1 GB data kommer att sparas i den här katalogen, och de växer över tiden.</translation> </message> @@ -1023,6 +1063,10 @@ Försök igen.</translation> <translation>Dölj</translation> </message> <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Okänd. Synkar huvuden (%1, %2%)...</translation> </message> @@ -1030,6 +1074,10 @@ Försök igen.</translation> <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Öppna bitcoin-URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -1041,6 +1089,10 @@ Försök igen.</translation> <translation>Det gick inte att öppna plånboken</translation> </message> <message> + <source>Open wallet warning</source> + <translation>Öppna plånboksvarning.</translation> + </message> + <message> <source>default wallet</source> <translation>Standardplånbok</translation> </message> @@ -1360,7 +1412,7 @@ Försök igen.</translation> </message> <message> <source>Mined balance that has not yet matured</source> - <translation>Genererat saldo som ännu inte har mognat</translation> + <translation>Grävt saldo som ännu inte har mognat</translation> </message> <message> <source>Balances</source> @@ -1392,7 +1444,7 @@ Försök igen.</translation> </message> <message> <source>Mined balance in watch-only addresses that has not yet matured</source> - <translation>Genererat saldo i granska-bara adresser som ännu inte har mognat</translation> + <translation>Grävt saldo i granska-bara adresser som ännu inte har mognat</translation> </message> <message> <source>Current total balance in watch-only addresses</source> @@ -1418,6 +1470,14 @@ Försök igen.</translation> <translation>'bitcoin://' är inte en accepterad URI. Använd 'bitcoin:' istället.</translation> </message> <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>Som följd av utbredda säkerhetshål i BIP70, rekommenderas det starkt att en säljares instruktion för dig att byta plånbok ignoreras.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>Om du får detta fel borde du be säljaren förse dig med en BIP21-kompatibel URI.</translation> + </message> + <message> <source>Invalid payment address %1</source> <translation>Ogiltig betalningsadress %1</translation> </message> @@ -1579,6 +1639,10 @@ Försök igen.</translation> <translation>Fel vid skapande av QR-kod från URI.</translation> </message> <message> + <source>QR code support not available.</source> + <translation>Stöd för QR-kod är inte längre tillgängligt.</translation> + </message> + <message> <source>Save QR Code</source> <translation>Spara QR-kod</translation> </message> @@ -1722,6 +1786,10 @@ Försök igen.</translation> <translation>Användaragent</translation> </message> <message> + <source>Node window</source> + <translation>Nod-fönster</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Öppna felsökningsloggen %1 från aktuell datakatalog. Detta kan ta några sekunder för stora loggfiler.</translation> </message> @@ -1933,6 +2001,10 @@ Försök igen.</translation> <translation>Ett valfritt belopp att begära. Lämna tomt eller ange noll för att inte begära ett specifikt belopp.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</translation> + </message> + <message> <source>&Create new receiving address</source> <translation>S&kapa ny mottagaradress</translation> </message> @@ -2186,6 +2258,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Damm:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Dölj alternativ för transaktionsavgift</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>När transaktionsvolymen är mindre än utrymmet i blocken kan både brytardatorer och relänoder kräva en minimiavgift. Det är okej att bara betala denna minimiavgift, men du ska vara medveten om att det kan leda till att en transaktion aldrig bekräftas så fort efterfrågan på bitcointransaktioner är större än vad nätverket kan hantera.</translation> </message> @@ -2254,18 +2330,34 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>%1 (%2 block)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>Sk&apa Osignerad</translation> + </message> + <message> <source> from wallet '%1'</source> <translation>från plånbok: '%1'</translation> </message> <message> + <source>%1 to '%2'</source> + <translation>%1 till '%2'</translation> + </message> + <message> <source>%1 to %2</source> <translation>%1 till %2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Vill du skissa denna transaktion?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Är du säker på att du vill skicka?</translation> </message> <message> + <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Pleasetransaktion, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</translation> + </message> + <message> <source>or</source> <translation>eller</translation> </message> @@ -2290,10 +2382,30 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Totalt belopp</translation> </message> <message> + <source>To review recipient list click "Show Details..."</source> + <translation>För att gå igenom mottagarlistan, tryck "Visa Detaljer..."</translation> + </message> + <message> <source>Confirm send coins</source> <translation>Bekräfta att pengar ska skickas</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Bekräfta transaktionsförslag</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Kopiera PSBT till urklipp</translation> + </message> + <message> + <source>Send</source> + <translation>Skicka</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>PSBT kopierad</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Mottagarens adress är ogiltig. Kontrollera igen.</translation> </message> @@ -2389,6 +2501,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Ta bort denna post</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>Beloppett att skicka i vald enhet</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>Avgiften dras från beloppet som skickas. Mottagaren kommer att ta emot mindre bitcoin än du angivit i beloppsfältet. Om flera mottagare väljs kommer avgiften att fördelas jämt.</translation> </message> @@ -2515,6 +2631,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Bitcoin-adress som meddelandet signerades med</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Signerat meddelande som ska verifieras</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Verifiera meddelandet för att vara säker på att det signerades med angiven Bitcoin-adress</translation> </message> @@ -2547,6 +2667,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Upplåsningen av plånboken avbröts.</translation> </message> <message> + <source>No error</source> + <translation>Inget fel</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>Den privata nyckeln för den angivna adressen är inte tillgänglig.</translation> </message> @@ -2721,6 +2845,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Utmatningsindex</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(Certifikatet verifierades inte)</translation> + </message> + <message> <source>Merchant</source> <translation>Handlare</translation> </message> @@ -2832,7 +2960,7 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f </message> <message> <source>Mined</source> - <translation>Genererade</translation> + <translation>Grävda</translation> </message> <message> <source>watch-only</source> @@ -2915,7 +3043,7 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f </message> <message> <source>Mined</source> - <translation>Genererade</translation> + <translation>Grävda</translation> </message> <message> <source>Other</source> @@ -2959,7 +3087,7 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f </message> <message> <source>Copy full transaction details</source> - <translation>Kopiera alla transaktionsdetaljerna</translation> + <translation>Kopiera alla transaktionsdetaljer</translation> </message> <message> <source>Edit label</source> @@ -3044,8 +3172,12 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Stäng plånboken</translation> </message> <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Är du säker att du vill stänga plånboken <i>%1</i>?</translation> + </message> + <message> <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> - <translation>Om plånboken är stängd under för lång tid kan hela kedjan behöva synkroniseras om, om gallring är aktiverad.</translation> + <translation>Om plånboken är stängd under för lång tid och gallring är aktiverad kan hela kedjan behöva synkroniseras på nytt.</translation> </message> </context> <context> @@ -3074,6 +3206,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Vill du öka avgiften?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Vill du skapa en transaktion med en avgiftsökning?</translation> + </message> + <message> <source>Current fee:</source> <translation>Aktuell avgift:</translation> </message> @@ -3090,6 +3226,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Bekräfta avgiftshöjning</translation> </message> <message> + <source>PSBT copied</source> + <translation>PSBT kopierad</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>Kan ej signera transaktion.</translation> </message> @@ -3312,6 +3452,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Initieringschecken fallerade. %s stängs av.</translation> </message> <message> + <source>Invalid P2P permission: '%s'</source> + <translation>Ogiltigt P2P-tillstånd: '%s'</translation> + </message> + <message> <source>Invalid amount for -%s=<amount>: '%s'</source> <translation>Ogiltigt belopp för -%s=<amount>:'%s'</translation> </message> @@ -3328,6 +3472,14 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Den specificerade mappen för block "%s" existerar inte.</translation> </message> <message> + <source>Unknown address type '%s'</source> + <translation>Okänd adress-typ '%s'</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>Okänd växel-typ '%s'</translation> + </message> + <message> <source>Upgrading txindex database</source> <translation>Uppgraderar txindex-databasen</translation> </message> @@ -3377,7 +3529,7 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f </message> <message> <source>Unable to generate keys</source> - <translation>Lyckas inte generera nycklar</translation> + <translation>Det gick inte att skapa nycklar</translation> </message> <message> <source>Unsupported logging category %s=%s.</source> @@ -3510,6 +3662,10 @@ Notera: Då avgiften beräknas per byte kommer en avgift på 50 satoshi tas ut f <translation>Det gick inte att skapa ursprungliga nycklar</translation> </message> <message> + <source>Unknown -blockfilterindex value %s.</source> + <translation>Okänt värde för -blockfilterindex '%s'.</translation> + </message> + <message> <source>Verifying wallet(s)...</source> <translation>Verifierar plånbok(er)...</translation> </message> diff --git a/src/qt/locale/bitcoin_te.ts b/src/qt/locale/bitcoin_te.ts index 6080d2e4dc..1e057d15bc 100644 --- a/src/qt/locale/bitcoin_te.ts +++ b/src/qt/locale/bitcoin_te.ts @@ -70,6 +70,10 @@ <translation>ఇవి మీరు పంపే చెల్లింపుల బిట్కాయిన్ చిరునామాలు. నాణేలు పంపే ముందు ప్రతిసారి అందుకునే చిరునామా మరియు చెల్లింపు మొత్తం సరిచూసుకోండి.</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>చెల్లింపులు స్వీకరించడానికి ఇవి మీ బిట్కాయిన్ చిరునామాలు. క్రొత్త చిరునామాలను సృష్టించడానికి స్వీకరించు ట్యాబ్లోని 'క్రొత్త స్వీకరించే చిరునామాను సృష్టించండి' బటన్ను ఉపయోగించండి.</translation> + </message> + <message> <source>&Copy Address</source> <translation>చిరునామాను కాపీ చెయ్యండి</translation> </message> @@ -132,10 +136,38 @@ <translation>క్రొత్త సంకేతపదము మరలా ఇవ్వండి</translation> </message> <message> + <source>Show passphrase</source> + <translation>సంకేతపదమును చూపించు</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>వాలెట్ను గుప్తీకరించండి</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>ఈ ఆపరేషన్కు వాలెట్ను అన్లాక్ చేయడానికి మీ వాలెట్ పాస్ఫ్రేజ్ అవసరం.</translation> + </message> + <message> <source>Unlock wallet</source> <translation>వాలెట్ అన్లాక్</translation> </message> <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>ఈ ఆపరేషన్కు వాలెట్ను డీక్రిప్ట్ చేయడానికి మీ వాలెట్ పాస్ఫ్రేజ్ అవసరం.</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>డీక్రిప్ట్ వాలెట్</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>పాస్ఫ్రేజ్ని మార్చండి</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>వాలెట్ గుప్తీకరణను నిర్ధారించండి</translation> + </message> + <message> <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> <translation>హెచ్చరిక: మీ జోలెని సంకేతపరిచి మీ సంకేతపదము కోల్పోతే, <b>మీ బిట్కాయిన్లు అన్నీ కోల్పోతారు</b></translation> </message> @@ -148,6 +180,26 @@ <translation>జోలె సంకేతపరబడింది</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>వాలెట్ కోసం క్రొత్త పాస్ఫ్రేజ్ని నమోదు చేయండి.<br/> దయచేసి <b>పది లేదా అంతకంటే ఎక్కువ యాదృచ్ఛిక అక్షరాల</b> పాస్ఫ్రేజ్ని లేదా <b>ఎనిమిది లేదా అంతకంటే ఎక్కువ పదాలను ఉపయోగించండి.</b></translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Enter the old passphrase and new passphrase for the wallet.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>మీ వాలెట్ను గుప్తీకరించడం వల్ల మీ కంప్యూటర్కు హాని కలిగించే మాల్వేర్ దొంగిలించకుండా మీ బిట్కాయిన్లను పూర్తిగా రక్షించలేమని గుర్తుంచుకోండి.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>ఎన్క్రిప్ట్ చేయవలసిన వాలెట్</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>మీ వాలెట్ గుప్తీకరించబోతోంది.</translation> + </message> + <message> <source>Wallet encryption failed</source> <translation>జోలె సంకేతపరచడం విఫలమయ్యింది</translation> </message> diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/bitcoin_th.ts index e28c987893..4d82f7949b 100644 --- a/src/qt/locale/bitcoin_th.ts +++ b/src/qt/locale/bitcoin_th.ts @@ -70,6 +70,10 @@ <translation>ที่อยู่ Bitcoin ของคุณสำหรับการส่งการชำระเงิน โปรดตรวจสอบจำนวนเงินและที่อยู่รับก่อนที่จะส่งเหรียญ</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>นี่คือที่อยู่สำหรับการรับ Bitcoin ของคุณ กดปุ่ม ‘สร้างที่อยู่การรับใหม่’ ในแถบการรับ เพื่อสร้างที่อยู่การรับใหม่</translation> + </message> + <message> <source>&Copy Address</source> <translation>คัดลอกที่อยู่</translation> </message> diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/bitcoin_uk.ts index ca8839fee3..722daadafe 100644 --- a/src/qt/locale/bitcoin_uk.ts +++ b/src/qt/locale/bitcoin_uk.ts @@ -1006,7 +1006,11 @@ <source>(of %n GB needed)</source> <translation><numerusform>(в той час, як необхідно %n ГБ)</numerusform><numerusform>(в той час, як необхідно %n ГБ)</numerusform><numerusform>(в той час, як необхідно %n ГБ)</numerusform><numerusform>(в той час, як необхідно %n ГБ)</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(%n GB needed for full chain)</source> + <translation><numerusform>(%n ГБ, необхідний для повного ланцюга)</numerusform><numerusform>(%n ГБ, необхідних для повного ланцюга)</numerusform><numerusform>(%n ГБ, необхідних для повного ланцюга)</numerusform><numerusform>(%n ГБ, необхідних для повного ланцюга)</numerusform></translation> + </message> +</context> <context> <name>ModalOverlay</name> <message> @@ -1781,6 +1785,14 @@ <translation>Синхронізовані Блоки</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Картована автономна система, що використовується для диверсифікації вибору вузлів.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>Картована Автономна Система</translation> + </message> + <message> <source>User Agent</source> <translation>Клієнт користувача</translation> </message> diff --git a/src/qt/locale/bitcoin_ur.ts b/src/qt/locale/bitcoin_ur.ts index b76551fc6f..d16c65ede4 100644 --- a/src/qt/locale/bitcoin_ur.ts +++ b/src/qt/locale/bitcoin_ur.ts @@ -297,6 +297,10 @@ <context> <name>TransactionView</name> <message> + <source>Other</source> + <translation>Other</translation> + </message> + <message> <source>Comma separated file (*.csv)</source> <translation>کاما سے جدا فائلیں (*.csv)</translation> </message> diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/bitcoin_vi.ts index 1d5491137b..33a4da9561 100644 --- a/src/qt/locale/bitcoin_vi.ts +++ b/src/qt/locale/bitcoin_vi.ts @@ -3,7 +3,7 @@ <name>AddressBookPage</name> <message> <source>Right-click to edit address or label</source> - <translation>Phải chuột để sửa địa chỉ hoặc nhãn</translation> + <translation>Nhấn chuột phải để sửa địa chỉ hoặc nhãn</translation> </message> <message> <source>Create a new address</source> @@ -136,6 +136,10 @@ <translation>Lặp lại cụm mật khẩu mới</translation> </message> <message> + <source>Show passphrase</source> + <translation>Hiện cụm từ mật khẩu</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>Ví mã hóa</translation> </message> @@ -176,6 +180,30 @@ <translation>Ví đã được mã hóa</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>Nhập cụm từ mật khẩu mới cho ví điện tử. Hãy sử dụng cụm mật khẩu với mười hoặc nhiều hơn các ký tự ngẫu nhiên, hoặc nhiều hơn tám từ.</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>Nhập cụm mật khẩu cũ và mật khẩu mới cho ví.</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>Xin lưu ý rằng mật mã hóa ví của bạn không thể bảo vệ hoàn toàn bitcoin của bạn khỏi đánh cắp bởi các phẩn mềm gián điệp nhiễm vào máy tính của bạn.</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>Ví sẽ được mã hóa</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>Ví của bạn sẽ được mã hóa.</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>Ví của bạn đã được mã hóa.</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>QUAN TRỌNG: Bất cứ backup nào bạn từng làm trước đây từ ví của bạn nên được thay thế tạo mới, file mã hóa ví. Vì lý do bảo mật, các backup trước đây của các ví chưa mã hóa sẽ bị vô tác dụng ngay khi bạn bắt đầu sử dụng mới, ví đã được mã hóa.</translation> </message> @@ -298,6 +326,14 @@ <translation>Mở &URI...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>Tạo ví...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>Tạo một ví mới</translation> + </message> + <message> <source>Wallet:</source> <translation>Ví tiền</translation> </message> @@ -446,6 +482,14 @@ <translation>Đã cập nhật</translation> </message> <message> + <source>Node window</source> + <translation>Cửa sổ node</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>Mở dòng lệnh tìm và gỡ lỗi cho node</translation> + </message> + <message> <source>&Sending addresses</source> <translation>&Các địa chỉ đang gửi</translation> </message> @@ -454,6 +498,10 @@ <translation>&Các địa chỉ đang nhận</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>Mở một bitcoin: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>Mớ ví</translation> </message> @@ -739,10 +787,58 @@ </context> <context> <name>CreateWalletActivity</name> - </context> + <message> + <source>Creating Wallet <b>%1</b>...</source> + <translation>Đang tạo ví %1 ...</translation> + </message> + <message> + <source>Create wallet failed</source> + <translation>Tạo ví thất bại</translation> + </message> + <message> + <source>Create wallet warning</source> + <translation>Cảnh báo khi tạo ví</translation> + </message> +</context> <context> <name>CreateWalletDialog</name> - </context> + <message> + <source>Create Wallet</source> + <translation>Tạo Ví</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>Tên Ví</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>Mật mã hóa ví. Ví sẽ được mật mã hóa với cụm mật khẩu của bạn.</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>Mật mã hóa ví</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>Tắt các khóa cá nhân cho ví này. Các ví với khóa cá nhân tắt sẽ không có các khóa cá nhân và không thể có nhân HD hoặc nhập thêm khóa cá nhân. Việc này tốt cho các ví chỉ dùng để xem.</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>Vô hiệu hóa khóa cá nhân</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>Tạo một ví trống. Ví trống không có các khóa cá nhân hay script ban đầu. Khóa cá nhân và địa chỉ có thể được nhập, hoặc một nhân HD có thể được thiết lập sau đó.</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>Tạo ví trống</translation> + </message> + <message> + <source>Create</source> + <translation>Tạo</translation> + </message> +</context> <context> <name>EditAddressDialog</name> <message> @@ -855,6 +951,10 @@ <translation>Khi bạn click OK, %1 sẽ bắt đầu download và process the full %4 block chain (%2GB) starting with the earliest transactions in %3 when %4 initially launched.</translation> </message> <message> + <source>Reverting this setting requires re-downloading the entire blockchain. It is faster to download the full chain first and prune it later. Disables some advanced features.</source> + <translation>Đảo ngược lại thiết lập này yêu cầu download lại toàn bộ blockchain. Download toàn bộ blockchain trước và loại nó sau đó sẽ nhanh hơn. Vô hiệu hóa một số tính năng nâng cao.</translation> + </message> + <message> <source>This initial synchronisation is very demanding, and may expose hardware problems with your computer that had previously gone unnoticed. Each time you run %1, it will continue downloading where it left off.</source> <translation>Đồng bộ hóa ban đầu này rất đòi hỏi, và có thể phơi bày các sự cố về phần cứng với máy tính của bạn trước đó đã không được chú ý. Mỗi khi bạn chạy %1, nó sẽ tiếp tục tải về nơi nó dừng lại.</translation> </message> @@ -906,7 +1006,11 @@ <source>(of %n GB needed)</source> <translation><numerusform>(of %n GB cần thiết)</numerusform></translation> </message> - </context> + <message numerus="yes"> + <source>(%n GB needed for full chain)</source> + <translation><numerusform>(%n GB cần cho toàn blockchain)</numerusform></translation> + </message> +</context> <context> <name>ModalOverlay</name> <message> @@ -954,6 +1058,14 @@ <translation>Ẩn</translation> </message> <message> + <source>Esc</source> + <translation>Esc</translation> + </message> + <message> + <source>%1 is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain.</source> + <translation>%1 đang được đồng bộ. Header và block sẽ được download từ các nốt lân cận và thẩm định tới khi đạt đỉnh của blockchain.</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>Không biết. Đang đồng bộ Headers (%1, %2%)...</translation> </message> @@ -961,6 +1073,10 @@ <context> <name>OpenURIDialog</name> <message> + <source>Open bitcoin URI</source> + <translation>Mở bitcoin URI</translation> + </message> + <message> <source>URI:</source> <translation>URI:</translation> </message> @@ -968,6 +1084,14 @@ <context> <name>OpenWalletActivity</name> <message> + <source>Open wallet failed</source> + <translation>Mở ví thất bại</translation> + </message> + <message> + <source>Open wallet warning</source> + <translation>Mở ví cảnh báo</translation> + </message> + <message> <source>default wallet</source> <translation>ví mặc định</translation> </message> @@ -1345,6 +1469,18 @@ <translation>'bitcoin://' không khả dụng URI. Dùng thay vì 'bitcoin:' .</translation> </message> <message> + <source>Cannot process payment request because BIP70 is not supported.</source> + <translation>Không thể tiến hần yêu cầu giao dịch vì BIP70 không được hỗ trợ.</translation> + </message> + <message> + <source>Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored.</source> + <translation>Do lỗ hổng bảo mật lan rộng của BIP70, bạn được khuyến cáo mạnh mẽ rằng bất kỳ hướng dẫn thương mại để chuyển ví đều bị bỏ qua.</translation> + </message> + <message> + <source>If you are receiving this error you should request the merchant provide a BIP21 compatible URI.</source> + <translation>Nếu bạn nhận được lỗi này, bạn nên yêu cầu của hàng cung cấp một BIP21 tương thích URI.</translation> + </message> + <message> <source>Invalid payment address %1</source> <translation>Invalid payment address %1</translation> </message> @@ -1649,10 +1785,22 @@ <translation>Blocks đã được đồng bộ</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>Hệ thống tự động ánh xạ được sử dụng để đa dạng hóa lựa chọn ngang hàng.</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>AS đã được map</translation> + </message> + <message> <source>User Agent</source> <translation>User đặc vụ</translation> </message> <message> + <source>Node window</source> + <translation>Cửa sổ node</translation> + </message> + <message> <source>Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.</source> <translation>Mở cái %1 debug log file từ danh mục dữ liệu hiện tại. Điều này cần vài giây cho large log files.</translation> </message> @@ -1864,6 +2012,14 @@ <translation>Một optional giá trị để request. Để lại đây khoảng trống hoặc zero để không request một giá trị xác định.</translation> </message> <message> + <source>An optional label to associate with the new receiving address (used by you to identify an invoice). It is also attached to the payment request.</source> + <translation>Một nhãn tùy chọn để liên kết với địa chỉ nhận mới (được bạn sử dụng để xác định hóa đơn). Nó cũng được đính kèm với yêu cầu thanh toán.</translation> + </message> + <message> + <source>An optional message that is attached to the payment request and may be displayed to the sender.</source> + <translation>Một thông báo tùy chọn được đính kèm với yêu cầu thanh toán và có thể được hiển thị cho người gửi.</translation> + </message> + <message> <source>&Create new receiving address</source> <translation>&Tạo địa chỉ nhận mới</translation> </message> @@ -1876,6 +2032,14 @@ <translation>Xóa</translation> </message> <message> + <source>Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead.</source> + <translation>Các địa chỉ segwit gốc (còn gọi là Bech32 hoặc BIP-173) sẽ giảm phí giao dịch của bạn sau này và bảo vệ tốt hơn trước các lỗi chính tả, nhưng ví cũ không hỗ trợ chúng. Khi không được chọn, một địa chỉ tương thích với ví cũ sẽ được tạo thay thế.</translation> + </message> + <message> + <source>Generate native segwit (Bech32) address</source> + <translation>Tạo địa chỉ segwit (Bech32) riêng</translation> + </message> + <message> <source>Requested payments history</source> <translation>Yêu cầu lịch sử giao dịch</translation> </message> @@ -2109,6 +2273,10 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Rác:</translation> </message> <message> + <source>Hide transaction fee settings</source> + <translation>Ẩn cài đặt phí giao dịch</translation> + </message> + <message> <source>When there is less transaction volume than space in the blocks, miners as well as relaying nodes may enforce a minimum fee. Paying only this minimum fee is just fine, but be aware that this can result in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</source> <translation>Khi có khối lượng giao dịch ít hơn chổ trống trong các khối, các nhà đào mỏ cũng như các nút chuyển tiếp có thể thực thi chỉ với một khoản phí tối thiểu. Chỉ trả khoản phí tối thiểu này là tốt, nhưng lưu ý rằng điều này có thể dẫn đến một giao dịch không bao giờ xác nhận một khi có nhu cầu giao dịch bitcoin nhiều hơn khả năng mạng có thể xử lý.</translation> </message> @@ -2177,6 +2345,14 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>%1 (%2 blocks)</translation> </message> <message> + <source>Cr&eate Unsigned</source> + <translation>Cr&eate không được ký</translation> + </message> + <message> + <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> + <translation>Tạo Giao dịch Bitcoin được ký một phần (PSBT) để sử dụng với các dạng như: ví ngoại tuyến %1 hoặc ví phần cứng tương thích PSBT.</translation> + </message> + <message> <source> from wallet '%1'</source> <translation>từ ví '%1'</translation> </message> @@ -2189,6 +2365,10 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>%1 đến%2</translation> </message> <message> + <source>Do you want to draft this transaction?</source> + <translation>Bạn có muốn tạo tạm thời dao dịch này?</translation> + </message> + <message> <source>Are you sure you want to send?</source> <translation>Bạn chắc chắn muốn gửi chứ?</translation> </message> @@ -2225,6 +2405,26 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Confirm gửi coins</translation> </message> <message> + <source>Confirm transaction proposal</source> + <translation>Xác nhận đề xuất giao dịch</translation> + </message> + <message> + <source>Copy PSBT to clipboard</source> + <translation>Sao chép PSBT vào khay nhớ tạp clipboard</translation> + </message> + <message> + <source>Send</source> + <translation>Gửi</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>Đã sao chép PSBT</translation> + </message> + <message> + <source>Watch-only balance:</source> + <translation>Số dư chỉ xem:</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>Địa chỉ người nhận address thì không valid. Kiểm tra lại đi.</translation> </message> @@ -2320,6 +2520,10 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Xóa bỏ entry này</translation> </message> <message> + <source>The amount to send in the selected unit</source> + <translation>Lượng tiền để gửi trong mỗi đơn vị đã chọn</translation> + </message> + <message> <source>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</source> <translation>The fee sẽ được khấu trừ từ số tiền đang gửi. Người nhận sẽ receive ít bitcoins hơn bạn gõ vào khoảng trống. Nếu nhiều người gửi được chọn, fee sẽ được chia đều.</translation> </message> @@ -2446,6 +2650,14 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>The Bitcoin address tin nhắn đã ký với</translation> </message> <message> + <source>The signed message to verify</source> + <translation>Tin nhắn đã được ký để xác nhận</translation> + </message> + <message> + <source>The signature given when the message was signed</source> + <translation>Chữ ký được cung cấp khi tin nhắn đã được ký</translation> + </message> + <message> <source>Verify the message to ensure it was signed with the specified Bitcoin address</source> <translation>Verify tin nhắn để chắc rằng nó đã được ký với xác định Bitcoin address</translation> </message> @@ -2478,6 +2690,10 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Wallet unlock đã được hủy.</translation> </message> <message> + <source>No error</source> + <translation>Không lỗi</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>Private key cho address đã nhập thì không có sẵn.</translation> </message> @@ -2652,6 +2868,10 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Output index</translation> </message> <message> + <source> (Certificate was not verified)</source> + <translation>(Chứng chỉ chưa được thẩm định)</translation> + </message> + <message> <source>Merchant</source> <translation>Merchant</translation> </message> @@ -2975,6 +3195,10 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Đông ví</translation> </message> <message> + <source>Are you sure you wish to close the wallet <i>%1</i>?</source> + <translation>Bạn có chắc bạn muốn đóng ví %1 ?</translation> + </message> + <message> <source>Closing the wallet for too long can result in having to resync the entire chain if pruning is enabled.</source> <translation>Đóng ví thời gian dài sẽ dẫn đến phải đồng bộ hóa lại cả chuỗi nếu cắt tỉa pruning được kích hoạt</translation> </message> @@ -3005,6 +3229,10 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Do you want to increase the fee?</translation> </message> <message> + <source>Do you want to draft a transaction with fee increase?</source> + <translation>Bạn có muốn tạo tạm thời một giao dịch với phí tăng?</translation> + </message> + <message> <source>Current fee:</source> <translation>Current fee:</translation> </message> @@ -3021,6 +3249,14 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Confirm fee bump</translation> </message> <message> + <source>Can't draft transaction.</source> + <translation>Không thể tạo tạm giao dịch.</translation> + </message> + <message> + <source>PSBT copied</source> + <translation>Đã sao chép PSBT</translation> + </message> + <message> <source>Can't sign transaction.</source> <translation>Can't sign transaction.</translation> </message> @@ -3187,6 +3423,14 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Corrupted block database detected</translation> </message> <message> + <source>Could not find asmap file %s</source> + <translation>Không tìm thấy tệp asmap %s</translation> + </message> + <message> + <source>Could not parse asmap file %s</source> + <translation>Không đọc được tệp asmap %s</translation> + </message> + <message> <source>Do you want to rebuild the block database now?</source> <translation>Do you want to rebuild the block database now?</translation> </message> @@ -3263,6 +3507,14 @@ Lưu ý: Vì phí được tính trên cơ sở mỗi byte, nên phí "100 satos <translation>Thư mục chứa các khối được chỉ ra "%s" không tồn tại</translation> </message> <message> + <source>Unknown address type '%s'</source> + <translation>Không biết địa chỉ kiểu '%s'</translation> + </message> + <message> + <source>Unknown change type '%s'</source> + <translation>Không biết thay đổi kiểu '%s'</translation> + </message> + <message> <source>Upgrading txindex database</source> <translation>Đang nâng cấp dữ liệu txindex</translation> </message> diff --git a/src/qt/locale/bitcoin_zh.ts b/src/qt/locale/bitcoin_zh.ts index 409cb3a2bb..52b2f24927 100644 --- a/src/qt/locale/bitcoin_zh.ts +++ b/src/qt/locale/bitcoin_zh.ts @@ -70,6 +70,10 @@ <translation>这些是你的比特币支付地址。在发送之前,一定要核对金额和接收地址。</translation> </message> <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>这些是您的比特币接收地址。建议每个交易使用一个新的接收地址。</translation> + </message> + <message> <source>&Copy Address</source> <translation>&复制地址</translation> </message> @@ -132,6 +136,10 @@ <translation>重复新密码</translation> </message> <message> + <source>Show passphrase</source> + <translation>显示密码</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>加密钱包</translation> </message> @@ -172,6 +180,30 @@ <translation>加密钱包</translation> </message> <message> + <source>Enter the new passphrase for the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>.</source> + <translation>输入钱包的新密码。<br/>密码中请使用<b>10个或更多随机字符</b>,或<b>8个或更多的单词</b>。</translation> + </message> + <message> + <source>Enter the old passphrase and new passphrase for the wallet.</source> + <translation>输入钱包的旧密码和新密码。</translation> + </message> + <message> + <source>Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer.</source> + <translation>记住,加密您的钱包并不能完全保护您的比特币不被您电脑中的恶意软件窃取。</translation> + </message> + <message> + <source>Wallet to be encrypted</source> + <translation>钱包即将被加密编码。</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>你的钱包即将被加密编码。</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>你的钱包已被加密编码。</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>重要提示:您以前对钱包文件所做的任何备份都应该替换为新的加密钱包文件。出于安全原因,一旦您开始使用新的加密钱包,以前未加密钱包文件备份将变得无用。</translation> </message> @@ -290,6 +322,14 @@ <translation>打开 &URI...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>创建钱包</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>创建一个新的钱包</translation> + </message> + <message> <source>Wallet:</source> <translation>钱包:</translation> </message> @@ -393,6 +433,10 @@ <source>&Command-line options</source> <translation>&命令行选项</translation> </message> + <message numerus="yes"> + <source>%n active connection(s) to Bitcoin network</source> + <translation><numerusform>%n 活跃的链接到比特币网络</numerusform></translation> + </message> <message> <source>Indexing blocks on disk...</source> <translation>索引磁盘上的区块...</translation> @@ -401,6 +445,10 @@ <source>Processing blocks on disk...</source> <translation>处理磁盘上的区块...</translation> </message> + <message numerus="yes"> + <source>Processed %n block(s) of transaction history.</source> + <translation><numerusform>已处理 %n 的历史交易区块</numerusform></translation> + </message> <message> <source>%1 behind</source> <translation>%1 落后</translation> @@ -430,6 +478,14 @@ <translation>最新的</translation> </message> <message> + <source>Node window</source> + <translation>结点窗口</translation> + </message> + <message> + <source>Open node debugging and diagnostic console</source> + <translation>打开结点的调试和诊断控制台</translation> + </message> + <message> <source>&Sending addresses</source> <translation>&发送地址</translation> </message> @@ -438,6 +494,10 @@ <translation>&接受地址</translation> </message> <message> + <source>Open a bitcoin: URI</source> + <translation>打开比特币: URI</translation> + </message> + <message> <source>Open Wallet</source> <translation>打开钱包</translation> </message> @@ -490,6 +550,10 @@ <translation>连接到节点...</translation> </message> <message> + <source>Catching up...</source> + <translation>跟进中</translation> + </message> + <message> <source>Date: %1 </source> <translation>日期:%1 @@ -609,6 +673,14 @@ <translation>总计</translation> </message> <message> + <source>Received with label</source> + <translation>收到,夹带标签</translation> + </message> + <message> + <source>Received with address</source> + <translation>收到,夹带地址</translation> + </message> + <message> <source>Date</source> <translation>日期</translation> </message> @@ -694,6 +766,38 @@ </context> <context> <name>CreateWalletDialog</name> + <message> + <source>Create Wallet</source> + <translation>创建钱包</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>钱包名称</translation> + </message> + <message> + <source>Encrypt the wallet. The wallet will be encrypted with a passphrase of your choice.</source> + <translation>编码钱包。钱包将会根据你选择的密码进行加密编码。</translation> + </message> + <message> + <source>Encrypt Wallet</source> + <translation>加密钱包</translation> + </message> + <message> + <source>Disable private keys for this wallet. Wallets with private keys disabled will have no private keys and cannot have an HD seed or imported private keys. This is ideal for watch-only wallets.</source> + <translation>禁用这个钱包的私钥。禁用私钥的钱包将没有私钥,也不能使用HD种子或者导入的私钥。对于仅供查看的钱包这是理想的设置。</translation> + </message> + <message> + <source>Disable Private Keys</source> + <translation>禁用私钥</translation> + </message> + <message> + <source>Make a blank wallet. Blank wallets do not initially have private keys or scripts. Private keys and addresses can be imported, or an HD seed can be set, at a later time.</source> + <translation>创建一个空白钱包。空白钱包没有起始的私钥和脚本。稍后可以倒入私钥和地址、设置HD种子。</translation> + </message> + <message> + <source>Make Blank Wallet</source> + <translation>创建空白钱包</translation> + </message> </context> <context> <name>EditAddressDialog</name> @@ -961,6 +1065,10 @@ <context> <name>RPCConsole</name> <message> + <source>Node window</source> + <translation>结点窗口</translation> + </message> + <message> <source>Last block time</source> <translation>最后的区块时间</translation> </message> diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index 2c534d9162..8540c05b8d 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -1120,7 +1120,7 @@ </message> <message> <source>&Start %1 on system login</source> - <translation>系统登入时启动 %1 (%S)</translation> + <translation>系统登入时启动 %1 (&S)</translation> </message> <message> <source>Size of &database cache</source> @@ -1789,6 +1789,14 @@ <translation>已同步区块</translation> </message> <message> + <source>The mapped Autonomous System used for diversifying peer selection.</source> + <translation>映射到的自治系统,被用来多样化选择节点</translation> + </message> + <message> + <source>Mapped AS</source> + <translation>映射到的AS</translation> + </message> + <message> <source>User Agent</source> <translation>用户代理</translation> </message> @@ -2346,7 +2354,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Creates a Partially Signed Bitcoin Transaction (PSBT) for use with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> - <translation>创建一个“部分签名比特币交易”(PSBT),以用于像是离线%1钱包,或是兼容PSBT的硬件钱包这种用途。</translation> + <translation>创建一个“部分签名比特币交易”(PSBT),以用于诸如离线%1钱包,或是兼容PSBT的硬件钱包这类用途。</translation> </message> <message> <source> from wallet '%1'</source> diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/bitcoin_zh_TW.ts index 27c2b0c71f..da1f92a461 100644 --- a/src/qt/locale/bitcoin_zh_TW.ts +++ b/src/qt/locale/bitcoin_zh_TW.ts @@ -136,6 +136,10 @@ <translation>重複新密碼</translation> </message> <message> + <source>Show passphrase</source> + <translation>顯示密碼</translation> + </message> + <message> <source>Encrypt wallet</source> <translation>加密錢包</translation> </message> @@ -180,6 +184,18 @@ <translation>請記得, 即使將錢包加密, 也不能完全防止因惡意軟體入侵, 而導致位元幣被偷.</translation> </message> <message> + <source>Wallet to be encrypted</source> + <translation>加密錢包</translation> + </message> + <message> + <source>Your wallet is about to be encrypted. </source> + <translation>你的錢包將被加密</translation> + </message> + <message> + <source>Your wallet is now encrypted. </source> + <translation>你的錢包現已被加密</translation> + </message> + <message> <source>IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet.</source> <translation>重要須知: 請改用新造出來、有加密的錢包檔,來取代舊錢包檔的備份。為了安全起見,當你開始使用新的有加密的錢包後,舊錢包檔的備份就沒有用了。</translation> </message> @@ -302,6 +318,14 @@ <translation>開啓 &URI...</translation> </message> <message> + <source>Create Wallet...</source> + <translation>新增錢包...</translation> + </message> + <message> + <source>Create a new wallet</source> + <translation>創建一個新錢包</translation> + </message> + <message> <source>Wallet:</source> <translation>錢包:</translation> </message> @@ -363,7 +387,7 @@ </message> <message> <source>Encrypt the private keys that belong to your wallet</source> - <translation>把錢包中的密鑰加密</translation> + <translation>將錢包中之密鑰加密</translation> </message> <message> <source>Sign messages with your Bitcoin addresses to prove you own them</source> @@ -743,9 +767,21 @@ </context> <context> <name>CreateWalletActivity</name> + <message> + <source>Create wallet failed</source> + <translation>創建錢包失敗<br></translation> + </message> </context> <context> <name>CreateWalletDialog</name> + <message> + <source>Create Wallet</source> + <translation>新增錢包</translation> + </message> + <message> + <source>Wallet Name</source> + <translation>錢包名稱</translation> + </message> </context> <context> <name>EditAddressDialog</name> @@ -958,6 +994,10 @@ <translation>隱藏</translation> </message> <message> + <source>Esc</source> + <translation>離開鍵</translation> + </message> + <message> <source>Unknown. Syncing Headers (%1, %2%)...</source> <translation>不明。正在同步前導資料中(%1, %2%)...</translation> </message> @@ -2237,6 +2277,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>確認付款金額</translation> </message> <message> + <source>Send</source> + <translation>發</translation> + </message> + <message> <source>The recipient address is not valid. Please recheck.</source> <translation>收款位址無效。請再檢查看看。</translation> </message> @@ -2490,6 +2534,10 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p <translation>錢包解鎖已取消。</translation> </message> <message> + <source>No error</source> + <translation>沒有錯誤</translation> + </message> + <message> <source>Private key for the entered address is not available.</source> <translation>沒有對應輸入位址的密鑰。</translation> </message> @@ -3458,7 +3506,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Unable to create the PID file '%s': %s</source> - <translation>无法创建PID文件'%s': %s</translation> + <translation>無法創建PID文件'%s': %s</translation> </message> <message> <source>Unable to generate initial keys</source> @@ -3530,7 +3578,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee of "100 satoshis p </message> <message> <source>Transaction must have at least one recipient</source> - <translation>交易必須至少要有一個收款人</translation> + <translation>交易必須至少有一個收款人</translation> </message> <message> <source>Unknown network specified in -onlynet: '%s'</source> diff --git a/src/qt/locale/bitcoin_zu.ts b/src/qt/locale/bitcoin_zu.ts new file mode 100644 index 0000000000..30e7bec4b9 --- /dev/null +++ b/src/qt/locale/bitcoin_zu.ts @@ -0,0 +1,291 @@ +<TS language="zu" version="2.1"> +<context> + <name>AddressBookPage</name> + <message> + <source>Right-click to edit address or label</source> + <translation>Qhafaza kwesokudla ukuze uhlele ikheli noma ilebula</translation> + </message> + <message> + <source>Create a new address</source> + <translation>Dala ikheli elisha</translation> + </message> + <message> + <source>Copy the currently selected address to the system clipboard</source> + <translation>Kopisha ikheli elikhethwe njengamanje ebhodini lokunameka lesistimu</translation> + </message> + <message> + <source>Delete the currently selected address from the list</source> + <translation>Susa ikheli elikhethwe njengamanje ohlwini</translation> + </message> + <message> + <source>Enter address or label to search</source> + <translation>Faka ikheli noma ilebula ukusesha</translation> + </message> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Khiphela idatha kuthebhu yamanje kufayela</translation> + </message> + <message> + <source>Choose the address to send coins to</source> + <translation>Khetha ikheli ozothumela kulo izinhlamvu zemali</translation> + </message> + <message> + <source>Choose the address to receive coins with</source> + <translation>Khetha ikheli ukuthola izinhlamvu zemali nge</translation> + </message> + <message> + <source>Sending addresses</source> + <translation>Kuthunyelwa amakheli</translation> + </message> + <message> + <source>Receiving addresses</source> + <translation>Ukuthola amakheli</translation> + </message> + <message> + <source>These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins.</source> + <translation>Lawa amakheli akho e-Bitcoin okuthumela izinkokhelo. Njalo hlola inani nekheli elitholwayo ngaphambi kokuthumela izinhlamvu zemali.</translation> + </message> + <message> + <source>These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.</source> + <translation>Lawa amakheli akho e-Bitcoin athola izinkokhelo. Sebenzisa inkinobho ethi 'Dala ikheli elisha lokuthola' kuthebhu yokwamukela ukudala amakheli amasha.</translation> + </message> + <message> + <source>Export Address List</source> + <translation>Thumela Ikheli Langaphandle</translation> + </message> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Ifayela elihlukaniswe ngokhefana (* .csv)</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Ukuthekelisa kwehlulekile</translation> + </message> + </context> +<context> + <name>AddressTableModel</name> + <message> + <source>Label</source> + <translation>Ilebuli</translation> + </message> + <message> + <source>Address</source> + <translation>Ikheli</translation> + </message> + <message> + <source>(no label)</source> + <translation>(akukho ilebula)</translation> + </message> +</context> +<context> + <name>AskPassphraseDialog</name> + <message> + <source>Passphrase Dialog</source> + <translation>I-Passphrase Dialog</translation> + </message> + <message> + <source>Enter passphrase</source> + <translation>Faka umushwana wokungena</translation> + </message> + <message> + <source>New passphrase</source> + <translation>Umushwana omusha wokungena</translation> + </message> + <message> + <source>Repeat new passphrase</source> + <translation>Phinda umushwana omusha wokungena</translation> + </message> + <message> + <source>Show passphrase</source> + <translation>Khombisa umushwana wokungena</translation> + </message> + <message> + <source>Encrypt wallet</source> + <translation>Bethela isikhwama</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to unlock the wallet.</source> + <translation>Lokhu kusebenza kudinga umushwana wakho wokungena wesikhwama ukuvula isikhwama.</translation> + </message> + <message> + <source>Unlock wallet</source> + <translation>Vula isikhwama semali</translation> + </message> + <message> + <source>This operation needs your wallet passphrase to decrypt the wallet.</source> + <translation>Lo msebenzi udinga umushwana wakho wokungena wesikhwama ukukhipha isikhwama esikhwameni.</translation> + </message> + <message> + <source>Decrypt wallet</source> + <translation>Ukhiphe isikhwama semali</translation> + </message> + <message> + <source>Change passphrase</source> + <translation>Shintsha umushwana wokungena</translation> + </message> + <message> + <source>Confirm wallet encryption</source> + <translation>Qinisekisa ukubethelwa kwe-wallet</translation> + </message> + <message> + <source>Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!</source> + <translation>Isexwayiso: Uma ubhala ngemfihlo isikhwama sakho futhi ulahlekelwe umushwana wakho wokungena, uzokwazi +Lahla YONKE IBITCOIN YAKHO!</translation> + </message> + <message> + <source>Are you sure you wish to encrypt your wallet?</source> + <translation>Uqinisekile ukuthi ufisa ukubhala ngemfihlo isikhwama sakho?</translation> + </message> + <message> + <source>Wallet encrypted</source> + <translation>Kufakwe i-Wallet</translation> + </message> + </context> +<context> + <name>BanTableModel</name> + </context> +<context> + <name>BitcoinGUI</name> + </context> +<context> + <name>CoinControlDialog</name> + </context> +<context> + <name>CreateWalletActivity</name> + </context> +<context> + <name>CreateWalletDialog</name> + </context> +<context> + <name>EditAddressDialog</name> + </context> +<context> + <name>FreespaceChecker</name> + </context> +<context> + <name>HelpMessageDialog</name> + </context> +<context> + <name>Intro</name> + </context> +<context> + <name>ModalOverlay</name> + </context> +<context> + <name>OpenURIDialog</name> + </context> +<context> + <name>OpenWalletActivity</name> + </context> +<context> + <name>OptionsDialog</name> + </context> +<context> + <name>OverviewPage</name> + </context> +<context> + <name>PaymentServer</name> + </context> +<context> + <name>PeerTableModel</name> + </context> +<context> + <name>QObject</name> + </context> +<context> + <name>QRImageWidget</name> + </context> +<context> + <name>RPCConsole</name> + </context> +<context> + <name>ReceiveCoinsDialog</name> + </context> +<context> + <name>ReceiveRequestDialog</name> + <message> + <source>Address</source> + <translation>Ikheli</translation> + </message> + <message> + <source>Label</source> + <translation>Ilebuli</translation> + </message> + </context> +<context> + <name>RecentRequestsTableModel</name> + <message> + <source>Label</source> + <translation>Ilebuli</translation> + </message> + </context> +<context> + <name>SendCoinsDialog</name> + </context> +<context> + <name>SendCoinsEntry</name> + </context> +<context> + <name>ShutdownWindow</name> + </context> +<context> + <name>SignVerifyMessageDialog</name> + </context> +<context> + <name>TrafficGraphWidget</name> + </context> +<context> + <name>TransactionDesc</name> + </context> +<context> + <name>TransactionDescDialog</name> + </context> +<context> + <name>TransactionTableModel</name> + <message> + <source>Label</source> + <translation>Ilebuli</translation> + </message> + </context> +<context> + <name>TransactionView</name> + <message> + <source>Comma separated file (*.csv)</source> + <translation>Ifayela elihlukaniswe ngokhefana (* .csv)</translation> + </message> + <message> + <source>Label</source> + <translation>Ilebuli</translation> + </message> + <message> + <source>Address</source> + <translation>Ikheli</translation> + </message> + <message> + <source>Exporting Failed</source> + <translation>Ukuthekelisa kwehlulekile</translation> + </message> + </context> +<context> + <name>UnitDisplayStatusBarControl</name> + </context> +<context> + <name>WalletController</name> + </context> +<context> + <name>WalletFrame</name> + </context> +<context> + <name>WalletModel</name> + </context> +<context> + <name>WalletView</name> + <message> + <source>Export the data in the current tab to a file</source> + <translation>Khipha idatha kuthebhu yamanje kufayela</translation> + </message> + </context> +<context> + <name>bitcoin-core</name> + </context> +</TS>
\ No newline at end of file diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 8679ced685..6c2db52f63 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -94,12 +94,12 @@ void PaymentServer::ipcParseCommandLine(int argc, char* argv[]) SendCoinsRecipient r; if (GUIUtil::parseBitcoinURI(arg, &r) && !r.address.isEmpty()) { - auto tempChainParams = CreateChainParams(CBaseChainParams::MAIN); + auto tempChainParams = CreateChainParams(gArgs, CBaseChainParams::MAIN); if (IsValidDestinationString(r.address.toStdString(), *tempChainParams)) { SelectParams(CBaseChainParams::MAIN); } else { - tempChainParams = CreateChainParams(CBaseChainParams::TESTNET); + tempChainParams = CreateChainParams(gArgs, CBaseChainParams::TESTNET); if (IsValidDestinationString(r.address.toStdString(), *tempChainParams)) { SelectParams(CBaseChainParams::TESTNET); } diff --git a/src/rpc/client.cpp b/src/rpc/client.cpp index 3c432464f2..88c8ebe1f6 100644 --- a/src/rpc/client.cpp +++ b/src/rpc/client.cpp @@ -41,6 +41,7 @@ static const CRPCConvertParam vRPCConvertParams[] = { "sendtoaddress", 5 , "replaceable" }, { "sendtoaddress", 6 , "conf_target" }, { "sendtoaddress", 8, "avoid_reuse" }, + { "sendtoaddress", 9, "verbose"}, { "settxfee", 0, "amount" }, { "sethdseed", 0, "newkeypool" }, { "getreceivedbyaddress", 1, "minconf" }, @@ -72,6 +73,7 @@ static const CRPCConvertParam vRPCConvertParams[] = { "sendmany", 4, "subtractfeefrom" }, { "sendmany", 5 , "replaceable" }, { "sendmany", 6 , "conf_target" }, + { "sendmany", 8, "verbose" }, { "deriveaddresses", 1, "range" }, { "scantxoutset", 1, "scanobjects" }, { "addmultisigaddress", 0, "nrequired" }, diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp index 11a2d23d85..def21b119e 100644 --- a/src/rpc/net.cpp +++ b/src/rpc/net.cpp @@ -116,7 +116,9 @@ static RPCHelpMan getpeerinfo() {RPCResult::Type::NUM, "version", "The peer version, such as 70001"}, {RPCResult::Type::STR, "subver", "The string version"}, {RPCResult::Type::BOOL, "inbound", "Inbound (true) or Outbound (false)"}, - {RPCResult::Type::BOOL, "addnode", "Whether connection was due to addnode/-connect or if it was an automatic/inbound connection"}, + {RPCResult::Type::BOOL, "addnode", "Whether connection was due to addnode/-connect or if it was an automatic/inbound connection\n" + "(DEPRECATED, returned only if the config option -deprecatedrpc=getpeerinfo_addnode is passed)"}, + {RPCResult::Type::STR, "connection_type", "Type of connection: \n" + Join(CONNECTION_TYPE_DOC, ",\n") + "."}, {RPCResult::Type::NUM, "startingheight", "The starting height (block) of the peer"}, {RPCResult::Type::NUM, "banscore", "The ban score (DEPRECATED, returned only if config option -deprecatedrpc=banscore is passed)"}, {RPCResult::Type::NUM, "synced_headers", "The last header we have in common with this peer"}, @@ -196,7 +198,10 @@ static RPCHelpMan getpeerinfo() // their ver message. obj.pushKV("subver", stats.cleanSubVer); obj.pushKV("inbound", stats.fInbound); - obj.pushKV("addnode", stats.m_manual_connection); + if (IsDeprecatedRPCEnabled("getpeerinfo_addnode")) { + // addnode is deprecated in v0.21 for removal in v0.22 + obj.pushKV("addnode", stats.m_manual_connection); + } obj.pushKV("startingheight", stats.nStartingHeight); if (fStateStats) { if (IsDeprecatedRPCEnabled("banscore")) { @@ -232,6 +237,7 @@ static RPCHelpMan getpeerinfo() recvPerMsgCmd.pushKV(i.first, i.second); } obj.pushKV("bytesrecv_per_msg", recvPerMsgCmd); + obj.pushKV("connection_type", stats.m_conn_type_string); ret.push_back(obj); } diff --git a/src/rpc/rawtransaction_util.cpp b/src/rpc/rawtransaction_util.cpp index 66fd6dff88..f004ecc20c 100644 --- a/src/rpc/rawtransaction_util.cpp +++ b/src/rpc/rawtransaction_util.cpp @@ -21,14 +21,16 @@ CMutableTransaction ConstructTransaction(const UniValue& inputs_in, const UniValue& outputs_in, const UniValue& locktime, bool rbf) { - if (outputs_in.isNull()) + if (outputs_in.isNull()) { throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, output argument must be non-null"); + } UniValue inputs; - if (inputs_in.isNull()) + if (inputs_in.isNull()) { inputs = UniValue::VARR; - else + } else { inputs = inputs_in.get_array(); + } const bool outputs_is_obj = outputs_in.isObject(); UniValue outputs = outputs_is_obj ? outputs_in.get_obj() : outputs_in.get_array(); diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 7b2457a5e3..50a6192476 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -1375,7 +1375,7 @@ uint256 SignatureHash(const CScript& scriptCode, const T& txTo, unsigned int nIn if ((nHashType & 0x1f) == SIGHASH_SINGLE) { if (nIn >= txTo.vout.size()) { // nOut out of range - return UINT256_ONE(); + return uint256::ONE; } } diff --git a/src/script/script_error.cpp b/src/script/script_error.cpp index 69e14803f1..3b383393f9 100644 --- a/src/script/script_error.cpp +++ b/src/script/script_error.cpp @@ -76,7 +76,7 @@ std::string ScriptErrorString(const ScriptError serror) case SCRIPT_ERR_PUBKEYTYPE: return "Public key is neither compressed or uncompressed"; case SCRIPT_ERR_CLEANSTACK: - return "Extra items left on stack after execution"; + return "Stack size must be exactly one after execution"; case SCRIPT_ERR_WITNESS_PROGRAM_WRONG_LENGTH: return "Witness program has incorrect length"; case SCRIPT_ERR_WITNESS_PROGRAM_WITNESS_EMPTY: diff --git a/src/test/base32_tests.cpp b/src/test/base32_tests.cpp index eedab30576..d519eca859 100644 --- a/src/test/base32_tests.cpp +++ b/src/test/base32_tests.cpp @@ -13,10 +13,13 @@ BOOST_AUTO_TEST_CASE(base32_testvectors) { static const std::string vstrIn[] = {"","f","fo","foo","foob","fooba","foobar"}; static const std::string vstrOut[] = {"","my======","mzxq====","mzxw6===","mzxw6yq=","mzxw6ytb","mzxw6ytboi======"}; + static const std::string vstrOutNoPadding[] = {"","my","mzxq","mzxw6","mzxw6yq","mzxw6ytb","mzxw6ytboi"}; for (unsigned int i=0; i<sizeof(vstrIn)/sizeof(vstrIn[0]); i++) { std::string strEnc = EncodeBase32(vstrIn[i]); BOOST_CHECK_EQUAL(strEnc, vstrOut[i]); + strEnc = EncodeBase32(vstrIn[i], false); + BOOST_CHECK_EQUAL(strEnc, vstrOutNoPadding[i]); std::string strDec = DecodeBase32(vstrOut[i]); BOOST_CHECK_EQUAL(strDec, vstrIn[i]); } diff --git a/src/test/fuzz/deserialize.cpp b/src/test/fuzz/deserialize.cpp index 54793c890f..b799d3b43b 100644 --- a/src/test/fuzz/deserialize.cpp +++ b/src/test/fuzz/deserialize.cpp @@ -189,10 +189,9 @@ void test_one_input(const std::vector<uint8_t>& buffer) DeserializeFromFuzzingInput(buffer, s); AssertEqualAfterSerializeDeserialize(s); #elif MESSAGEHEADER_DESERIALIZE - const CMessageHeader::MessageStartChars pchMessageStart = {0x00, 0x00, 0x00, 0x00}; - CMessageHeader mh(pchMessageStart); + CMessageHeader mh; DeserializeFromFuzzingInput(buffer, mh); - (void)mh.IsValid(pchMessageStart); + (void)mh.IsCommandValid(); #elif ADDRESS_DESERIALIZE CAddress a; DeserializeFromFuzzingInput(buffer, a); diff --git a/src/test/fuzz/p2p_transport_deserializer.cpp b/src/test/fuzz/p2p_transport_deserializer.cpp index 6fba2bfaba..7e216e16fe 100644 --- a/src/test/fuzz/p2p_transport_deserializer.cpp +++ b/src/test/fuzz/p2p_transport_deserializer.cpp @@ -19,7 +19,8 @@ void initialize() void test_one_input(const std::vector<uint8_t>& buffer) { - V1TransportDeserializer deserializer{Params().MessageStart(), SER_NETWORK, INIT_PROTO_VERSION}; + // Construct deserializer, with a dummy NodeId + V1TransportDeserializer deserializer{Params(), (NodeId)0, SER_NETWORK, INIT_PROTO_VERSION}; const char* pch = (const char*)buffer.data(); size_t n_bytes = buffer.size(); while (n_bytes > 0) { @@ -31,16 +32,13 @@ void test_one_input(const std::vector<uint8_t>& buffer) n_bytes -= handled; if (deserializer.Complete()) { const std::chrono::microseconds m_time{std::numeric_limits<int64_t>::max()}; - const CNetMessage msg = deserializer.GetMessage(Params().MessageStart(), m_time); - assert(msg.m_command.size() <= CMessageHeader::COMMAND_SIZE); - assert(msg.m_raw_message_size <= buffer.size()); - assert(msg.m_raw_message_size == CMessageHeader::HEADER_SIZE + msg.m_message_size); - assert(msg.m_time == m_time); - if (msg.m_valid_header) { - assert(msg.m_valid_netmagic); - } - if (!msg.m_valid_netmagic) { - assert(!msg.m_valid_header); + uint32_t out_err_raw_size{0}; + Optional<CNetMessage> result{deserializer.GetMessage(m_time, out_err_raw_size)}; + if (result) { + assert(result->m_command.size() <= CMessageHeader::COMMAND_SIZE); + assert(result->m_raw_message_size <= buffer.size()); + assert(result->m_raw_message_size == CMessageHeader::HEADER_SIZE + result->m_message_size); + assert(result->m_time == m_time); } } } diff --git a/src/test/miner_tests.cpp b/src/test/miner_tests.cpp index 62a0dc4241..3de79a9f45 100644 --- a/src/test/miner_tests.cpp +++ b/src/test/miner_tests.cpp @@ -36,17 +36,6 @@ struct MinerTestingSetup : public TestingSetup { BOOST_FIXTURE_TEST_SUITE(miner_tests, MinerTestingSetup) -// BOOST_CHECK_EXCEPTION predicates to check the specific validation error -class HasReason { -public: - explicit HasReason(const std::string& reason) : m_reason(reason) {} - bool operator() (const std::runtime_error& e) const { - return std::string(e.what()).find(m_reason) != std::string::npos; - }; -private: - const std::string m_reason; -}; - static CFeeRate blockMinFeeRate = CFeeRate(DEFAULT_BLOCK_MIN_TX_FEE); BlockAssembler MinerTestingSetup::AssemblerForTest(const CChainParams& params) @@ -209,7 +198,7 @@ void MinerTestingSetup::TestPackageSelection(const CChainParams& chainparams, co BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) { // Note that by default, these tests run with size accounting enabled. - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); const CChainParams& chainparams = *chainParams; CScript scriptPubKey = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG; std::unique_ptr<CBlockTemplate> pblocktemplate; diff --git a/src/test/net_tests.cpp b/src/test/net_tests.cpp index 85ebc89673..92792569a7 100644 --- a/src/test/net_tests.cpp +++ b/src/test/net_tests.cpp @@ -10,6 +10,7 @@ #include <net.h> #include <netbase.h> #include <serialize.h> +#include <span.h> #include <streams.h> #include <test/util/setup_common.h> #include <util/memory.h> @@ -20,6 +21,7 @@ #include <boost/test/unit_test.hpp> +#include <ios> #include <memory> #include <string> @@ -244,14 +246,58 @@ BOOST_AUTO_TEST_CASE(cnetaddr_basic) BOOST_CHECK(!addr.IsBindAny()); BOOST_CHECK_EQUAL(addr.ToString(), "1122:3344:5566:7788:9900:aabb:ccdd:eeff"); + // IPv6, scoped/link-local. See https://tools.ietf.org/html/rfc4007 + // We support non-negative decimal integers (uint32_t) as zone id indices. + // Test with a fairly-high value, e.g. 32, to avoid locally reserved ids. + const std::string link_local{"fe80::1"}; + const std::string scoped_addr{link_local + "%32"}; + BOOST_REQUIRE(LookupHost(scoped_addr, addr, false)); + BOOST_REQUIRE(addr.IsValid()); + BOOST_REQUIRE(addr.IsIPv6()); + BOOST_CHECK(!addr.IsBindAny()); + const std::string addr_str{addr.ToString()}; + BOOST_CHECK(addr_str == scoped_addr || addr_str == "fe80:0:0:0:0:0:0:1"); + // The fallback case "fe80:0:0:0:0:0:0:1" is needed for macOS 10.14/10.15 and (probably) later. + // Test that the delimiter "%" and default zone id of 0 can be omitted for the default scope. + BOOST_REQUIRE(LookupHost(link_local + "%0", addr, false)); + BOOST_REQUIRE(addr.IsValid()); + BOOST_REQUIRE(addr.IsIPv6()); + BOOST_CHECK(!addr.IsBindAny()); + BOOST_CHECK_EQUAL(addr.ToString(), link_local); + // TORv2 - addr.SetSpecial("6hzph5hv6337r6p2.onion"); + BOOST_REQUIRE(addr.SetSpecial("6hzph5hv6337r6p2.onion")); BOOST_REQUIRE(addr.IsValid()); BOOST_REQUIRE(addr.IsTor()); BOOST_CHECK(!addr.IsBindAny()); BOOST_CHECK_EQUAL(addr.ToString(), "6hzph5hv6337r6p2.onion"); + // TORv3 + const char* torv3_addr = "pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion"; + BOOST_REQUIRE(addr.SetSpecial(torv3_addr)); + BOOST_REQUIRE(addr.IsValid()); + BOOST_REQUIRE(addr.IsTor()); + + BOOST_CHECK(!addr.IsBindAny()); + BOOST_CHECK_EQUAL(addr.ToString(), torv3_addr); + + // TORv3, broken, with wrong checksum + BOOST_CHECK(!addr.SetSpecial("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscsad.onion")); + + // TORv3, broken, with wrong version + BOOST_CHECK(!addr.SetSpecial("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscrye.onion")); + + // TORv3, malicious + BOOST_CHECK(!addr.SetSpecial(std::string{ + "pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd\0wtf.onion", 66})); + + // TOR, bogus length + BOOST_CHECK(!addr.SetSpecial(std::string{"mfrggzak.onion"})); + + // TOR, invalid base32 + BOOST_CHECK(!addr.SetSpecial(std::string{"mf*g zak.onion"})); + // Internal addr.SetInternal("esffpp"); BOOST_REQUIRE(!addr.IsValid()); // "internal" is considered invalid @@ -259,19 +305,286 @@ BOOST_AUTO_TEST_CASE(cnetaddr_basic) BOOST_CHECK(!addr.IsBindAny()); BOOST_CHECK_EQUAL(addr.ToString(), "esffpvrt3wpeaygy.internal"); + + // Totally bogus + BOOST_CHECK(!addr.SetSpecial("totally bogus")); } -BOOST_AUTO_TEST_CASE(cnetaddr_serialize) +BOOST_AUTO_TEST_CASE(cnetaddr_serialize_v1) { CNetAddr addr; CDataStream s(SER_NETWORK, PROTOCOL_VERSION); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "00000000000000000000000000000000"); + s.clear(); + + BOOST_REQUIRE(LookupHost("1.2.3.4", addr, false)); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "00000000000000000000ffff01020304"); + s.clear(); + + BOOST_REQUIRE(LookupHost("1a1b:2a2b:3a3b:4a4b:5a5b:6a6b:7a7b:8a8b", addr, false)); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "1a1b2a2b3a3b4a4b5a5b6a6b7a7b8a8b"); + s.clear(); + + BOOST_REQUIRE(addr.SetSpecial("6hzph5hv6337r6p2.onion")); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "fd87d87eeb43f1f2f3f4f5f6f7f8f9fa"); + s.clear(); + + BOOST_REQUIRE(addr.SetSpecial("pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion")); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "00000000000000000000000000000000"); + s.clear(); + addr.SetInternal("a"); s << addr; BOOST_CHECK_EQUAL(HexStr(s), "fd6b88c08724ca978112ca1bbdcafac2"); s.clear(); } +BOOST_AUTO_TEST_CASE(cnetaddr_serialize_v2) +{ + CNetAddr addr; + CDataStream s(SER_NETWORK, PROTOCOL_VERSION); + // Add ADDRV2_FORMAT to the version so that the CNetAddr + // serialize method produces an address in v2 format. + s.SetVersion(s.GetVersion() | ADDRV2_FORMAT); + + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "021000000000000000000000000000000000"); + s.clear(); + + BOOST_REQUIRE(LookupHost("1.2.3.4", addr, false)); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "010401020304"); + s.clear(); + + BOOST_REQUIRE(LookupHost("1a1b:2a2b:3a3b:4a4b:5a5b:6a6b:7a7b:8a8b", addr, false)); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "02101a1b2a2b3a3b4a4b5a5b6a6b7a7b8a8b"); + s.clear(); + + BOOST_REQUIRE(addr.SetSpecial("6hzph5hv6337r6p2.onion")); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "030af1f2f3f4f5f6f7f8f9fa"); + s.clear(); + + BOOST_REQUIRE(addr.SetSpecial("kpgvmscirrdqpekbqjsvw5teanhatztpp2gl6eee4zkowvwfxwenqaid.onion")); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "042053cd5648488c4707914182655b7664034e09e66f7e8cbf1084e654eb56c5bd88"); + s.clear(); + + BOOST_REQUIRE(addr.SetInternal("a")); + s << addr; + BOOST_CHECK_EQUAL(HexStr(s), "0210fd6b88c08724ca978112ca1bbdcafac2"); + s.clear(); +} + +BOOST_AUTO_TEST_CASE(cnetaddr_unserialize_v2) +{ + CNetAddr addr; + CDataStream s(SER_NETWORK, PROTOCOL_VERSION); + // Add ADDRV2_FORMAT to the version so that the CNetAddr + // unserialize method expects an address in v2 format. + s.SetVersion(s.GetVersion() | ADDRV2_FORMAT); + + // Valid IPv4. + s << MakeSpan(ParseHex("01" // network type (IPv4) + "04" // address length + "01020304")); // address + s >> addr; + BOOST_CHECK(addr.IsValid()); + BOOST_CHECK(addr.IsIPv4()); + BOOST_CHECK_EQUAL(addr.ToString(), "1.2.3.4"); + BOOST_REQUIRE(s.empty()); + + // Invalid IPv4, valid length but address itself is shorter. + s << MakeSpan(ParseHex("01" // network type (IPv4) + "04" // address length + "0102")); // address + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, HasReason("end of data")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Invalid IPv4, with bogus length. + s << MakeSpan(ParseHex("01" // network type (IPv4) + "05" // address length + "01020304")); // address + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, + HasReason("BIP155 IPv4 address with length 5 (should be 4)")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Invalid IPv4, with extreme length. + s << MakeSpan(ParseHex("01" // network type (IPv4) + "fd0102" // address length (513 as CompactSize) + "01020304")); // address + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, + HasReason("Address too long: 513 > 512")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Valid IPv6. + s << MakeSpan(ParseHex("02" // network type (IPv6) + "10" // address length + "0102030405060708090a0b0c0d0e0f10")); // address + s >> addr; + BOOST_CHECK(addr.IsValid()); + BOOST_CHECK(addr.IsIPv6()); + BOOST_CHECK_EQUAL(addr.ToString(), "102:304:506:708:90a:b0c:d0e:f10"); + BOOST_REQUIRE(s.empty()); + + // Valid IPv6, contains embedded "internal". + s << MakeSpan(ParseHex( + "02" // network type (IPv6) + "10" // address length + "fd6b88c08724ca978112ca1bbdcafac2")); // address: 0xfd + sha256("bitcoin")[0:5] + + // sha256(name)[0:10] + s >> addr; + BOOST_CHECK(addr.IsInternal()); + BOOST_CHECK_EQUAL(addr.ToString(), "zklycewkdo64v6wc.internal"); + BOOST_REQUIRE(s.empty()); + + // Invalid IPv6, with bogus length. + s << MakeSpan(ParseHex("02" // network type (IPv6) + "04" // address length + "00")); // address + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, + HasReason("BIP155 IPv6 address with length 4 (should be 16)")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Invalid IPv6, contains embedded IPv4. + s << MakeSpan(ParseHex("02" // network type (IPv6) + "10" // address length + "00000000000000000000ffff01020304")); // address + s >> addr; + BOOST_CHECK(!addr.IsValid()); + BOOST_REQUIRE(s.empty()); + + // Invalid IPv6, contains embedded TORv2. + s << MakeSpan(ParseHex("02" // network type (IPv6) + "10" // address length + "fd87d87eeb430102030405060708090a")); // address + s >> addr; + BOOST_CHECK(!addr.IsValid()); + BOOST_REQUIRE(s.empty()); + + // Valid TORv2. + s << MakeSpan(ParseHex("03" // network type (TORv2) + "0a" // address length + "f1f2f3f4f5f6f7f8f9fa")); // address + s >> addr; + BOOST_CHECK(addr.IsValid()); + BOOST_CHECK(addr.IsTor()); + BOOST_CHECK_EQUAL(addr.ToString(), "6hzph5hv6337r6p2.onion"); + BOOST_REQUIRE(s.empty()); + + // Invalid TORv2, with bogus length. + s << MakeSpan(ParseHex("03" // network type (TORv2) + "07" // address length + "00")); // address + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, + HasReason("BIP155 TORv2 address with length 7 (should be 10)")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Valid TORv3. + s << MakeSpan(ParseHex("04" // network type (TORv3) + "20" // address length + "79bcc625184b05194975c28b66b66b04" // address + "69f7f6556fb1ac3189a79b40dda32f1f" + )); + s >> addr; + BOOST_CHECK(addr.IsValid()); + BOOST_CHECK(addr.IsTor()); + BOOST_CHECK_EQUAL(addr.ToString(), + "pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion"); + BOOST_REQUIRE(s.empty()); + + // Invalid TORv3, with bogus length. + s << MakeSpan(ParseHex("04" // network type (TORv3) + "00" // address length + "00" // address + )); + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, + HasReason("BIP155 TORv3 address with length 0 (should be 32)")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Valid I2P. + s << MakeSpan(ParseHex("05" // network type (I2P) + "20" // address length + "a2894dabaec08c0051a481a6dac88b64" // address + "f98232ae42d4b6fd2fa81952dfe36a87")); + s >> addr; + BOOST_CHECK(addr.IsValid()); + BOOST_CHECK_EQUAL(addr.ToString(), + "ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p"); + BOOST_REQUIRE(s.empty()); + + // Invalid I2P, with bogus length. + s << MakeSpan(ParseHex("05" // network type (I2P) + "03" // address length + "00" // address + )); + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, + HasReason("BIP155 I2P address with length 3 (should be 32)")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Valid CJDNS. + s << MakeSpan(ParseHex("06" // network type (CJDNS) + "10" // address length + "fc000001000200030004000500060007" // address + )); + s >> addr; + BOOST_CHECK(addr.IsValid()); + BOOST_CHECK_EQUAL(addr.ToString(), "fc00:1:2:3:4:5:6:7"); + BOOST_REQUIRE(s.empty()); + + // Invalid CJDNS, with bogus length. + s << MakeSpan(ParseHex("06" // network type (CJDNS) + "01" // address length + "00" // address + )); + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, + HasReason("BIP155 CJDNS address with length 1 (should be 16)")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Unknown, with extreme length. + s << MakeSpan(ParseHex("aa" // network type (unknown) + "fe00000002" // address length (CompactSize's MAX_SIZE) + "01020304050607" // address + )); + BOOST_CHECK_EXCEPTION(s >> addr, std::ios_base::failure, + HasReason("Address too long: 33554432 > 512")); + BOOST_REQUIRE(!s.empty()); // The stream is not consumed on invalid input. + s.clear(); + + // Unknown, with reasonable length. + s << MakeSpan(ParseHex("aa" // network type (unknown) + "04" // address length + "01020304" // address + )); + s >> addr; + BOOST_CHECK(!addr.IsValid()); + BOOST_REQUIRE(s.empty()); + + // Unknown, with zero length. + s << MakeSpan(ParseHex("aa" // network type (unknown) + "00" // address length + "" // address + )); + s >> addr; + BOOST_CHECK(!addr.IsValid()); + BOOST_REQUIRE(s.empty()); +} + // prior to PR #14728, this test triggers an undefined behavior BOOST_AUTO_TEST_CASE(ipv4_peer_with_ipv6_addrMe_test) { diff --git a/src/test/pow_tests.cpp b/src/test/pow_tests.cpp index ca49b89ad8..1d7f4861fb 100644 --- a/src/test/pow_tests.cpp +++ b/src/test/pow_tests.cpp @@ -14,7 +14,7 @@ BOOST_FIXTURE_TEST_SUITE(pow_tests, BasicTestingSetup) /* Test calculation of next difficulty target with no constraints applying */ BOOST_AUTO_TEST_CASE(get_next_work) { - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); int64_t nLastRetargetTime = 1261130161; // Block #30240 CBlockIndex pindexLast; pindexLast.nHeight = 32255; @@ -26,7 +26,7 @@ BOOST_AUTO_TEST_CASE(get_next_work) /* Test the constraint on the upper bound for next work */ BOOST_AUTO_TEST_CASE(get_next_work_pow_limit) { - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); int64_t nLastRetargetTime = 1231006505; // Block #0 CBlockIndex pindexLast; pindexLast.nHeight = 2015; @@ -38,7 +38,7 @@ BOOST_AUTO_TEST_CASE(get_next_work_pow_limit) /* Test the constraint on the lower bound for actual time taken */ BOOST_AUTO_TEST_CASE(get_next_work_lower_limit_actual) { - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); int64_t nLastRetargetTime = 1279008237; // Block #66528 CBlockIndex pindexLast; pindexLast.nHeight = 68543; @@ -50,7 +50,7 @@ BOOST_AUTO_TEST_CASE(get_next_work_lower_limit_actual) /* Test the constraint on the upper bound for actual time taken */ BOOST_AUTO_TEST_CASE(get_next_work_upper_limit_actual) { - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); int64_t nLastRetargetTime = 1263163443; // NOTE: Not an actual block time CBlockIndex pindexLast; pindexLast.nHeight = 46367; @@ -61,7 +61,7 @@ BOOST_AUTO_TEST_CASE(get_next_work_upper_limit_actual) BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_negative_target) { - const auto consensus = CreateChainParams(CBaseChainParams::MAIN)->GetConsensus(); + const auto consensus = CreateChainParams(*m_node.args, CBaseChainParams::MAIN)->GetConsensus(); uint256 hash; unsigned int nBits; nBits = UintToArith256(consensus.powLimit).GetCompact(true); @@ -71,7 +71,7 @@ BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_negative_target) BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_overflow_target) { - const auto consensus = CreateChainParams(CBaseChainParams::MAIN)->GetConsensus(); + const auto consensus = CreateChainParams(*m_node.args, CBaseChainParams::MAIN)->GetConsensus(); uint256 hash; unsigned int nBits = ~0x00800000; hash.SetHex("0x1"); @@ -80,7 +80,7 @@ BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_overflow_target) BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_too_easy_target) { - const auto consensus = CreateChainParams(CBaseChainParams::MAIN)->GetConsensus(); + const auto consensus = CreateChainParams(*m_node.args, CBaseChainParams::MAIN)->GetConsensus(); uint256 hash; unsigned int nBits; arith_uint256 nBits_arith = UintToArith256(consensus.powLimit); @@ -92,7 +92,7 @@ BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_too_easy_target) BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_biger_hash_than_target) { - const auto consensus = CreateChainParams(CBaseChainParams::MAIN)->GetConsensus(); + const auto consensus = CreateChainParams(*m_node.args, CBaseChainParams::MAIN)->GetConsensus(); uint256 hash; unsigned int nBits; arith_uint256 hash_arith = UintToArith256(consensus.powLimit); @@ -104,7 +104,7 @@ BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_biger_hash_than_target) BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_zero_target) { - const auto consensus = CreateChainParams(CBaseChainParams::MAIN)->GetConsensus(); + const auto consensus = CreateChainParams(*m_node.args, CBaseChainParams::MAIN)->GetConsensus(); uint256 hash; unsigned int nBits; arith_uint256 hash_arith{0}; @@ -115,7 +115,7 @@ BOOST_AUTO_TEST_CASE(CheckProofOfWork_test_zero_target) BOOST_AUTO_TEST_CASE(GetBlockProofEquivalentTime_test) { - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); std::vector<CBlockIndex> blocks(10000); for (int i = 0; i < 10000; i++) { blocks[i].pprev = i ? &blocks[i - 1] : nullptr; @@ -135,9 +135,9 @@ BOOST_AUTO_TEST_CASE(GetBlockProofEquivalentTime_test) } } -void sanity_check_chainparams(std::string chainName) +void sanity_check_chainparams(const ArgsManager& args, std::string chainName) { - const auto chainParams = CreateChainParams(chainName); + const auto chainParams = CreateChainParams(args, chainName); const auto consensus = chainParams->GetConsensus(); // hash genesis is correct @@ -164,22 +164,22 @@ void sanity_check_chainparams(std::string chainName) BOOST_AUTO_TEST_CASE(ChainParams_MAIN_sanity) { - sanity_check_chainparams(CBaseChainParams::MAIN); + sanity_check_chainparams(*m_node.args, CBaseChainParams::MAIN); } BOOST_AUTO_TEST_CASE(ChainParams_REGTEST_sanity) { - sanity_check_chainparams(CBaseChainParams::REGTEST); + sanity_check_chainparams(*m_node.args, CBaseChainParams::REGTEST); } BOOST_AUTO_TEST_CASE(ChainParams_TESTNET_sanity) { - sanity_check_chainparams(CBaseChainParams::TESTNET); + sanity_check_chainparams(*m_node.args, CBaseChainParams::TESTNET); } BOOST_AUTO_TEST_CASE(ChainParams_SIGNET_sanity) { - sanity_check_chainparams(CBaseChainParams::SIGNET); + sanity_check_chainparams(*m_node.args, CBaseChainParams::SIGNET); } BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/sighash_tests.cpp b/src/test/sighash_tests.cpp index c0bb92258b..bc862de78a 100644 --- a/src/test/sighash_tests.cpp +++ b/src/test/sighash_tests.cpp @@ -28,7 +28,7 @@ uint256 static SignatureHashOld(CScript scriptCode, const CTransaction& txTo, un { if (nIn >= txTo.vin.size()) { - return UINT256_ONE(); + return uint256::ONE; } CMutableTransaction txTmp(txTo); @@ -58,7 +58,7 @@ uint256 static SignatureHashOld(CScript scriptCode, const CTransaction& txTo, un unsigned int nOut = nIn; if (nOut >= txTmp.vout.size()) { - return UINT256_ONE(); + return uint256::ONE; } txTmp.vout.resize(nOut+1); for (unsigned int i = 0; i < nOut; i++) diff --git a/src/test/uint256_tests.cpp b/src/test/uint256_tests.cpp index c0ae2f8cf2..ae626d4613 100644 --- a/src/test/uint256_tests.cpp +++ b/src/test/uint256_tests.cpp @@ -278,4 +278,10 @@ BOOST_AUTO_TEST_CASE( operator_with_self ) BOOST_CHECK(v == UintToArith256(uint256S("0"))); } +BOOST_AUTO_TEST_CASE( check_ONE ) +{ + uint256 one = uint256S("0000000000000000000000000000000000000000000000000000000000000001"); + BOOST_CHECK_EQUAL(one, uint256::ONE); +} + BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/util/setup_common.h b/src/test/util/setup_common.h index 22f5d6d936..a09c8c122d 100644 --- a/src/test/util/setup_common.h +++ b/src/test/util/setup_common.h @@ -153,4 +153,20 @@ CBlock getBlock13b8a(); // define an implicit conversion here so that uint256 may be used directly in BOOST_CHECK_* std::ostream& operator<<(std::ostream& os, const uint256& num); +/** + * BOOST_CHECK_EXCEPTION predicates to check the specific validation error. + * Use as + * BOOST_CHECK_EXCEPTION(code that throws, exception type, HasReason("foo")); + */ +class HasReason { +public: + explicit HasReason(const std::string& reason) : m_reason(reason) {} + template <typename E> + bool operator() (const E& e) const { + return std::string(e.what()).find(m_reason) != std::string::npos; + }; +private: + const std::string m_reason; +}; + #endif diff --git a/src/test/validation_tests.cpp b/src/test/validation_tests.cpp index 3b961db52d..7fea31938a 100644 --- a/src/test/validation_tests.cpp +++ b/src/test/validation_tests.cpp @@ -4,6 +4,7 @@ #include <chainparams.h> #include <net.h> +#include <signet.h> #include <validation.h> #include <test/util/setup_common.h> @@ -39,7 +40,7 @@ static void TestBlockSubsidyHalvings(int nSubsidyHalvingInterval) BOOST_AUTO_TEST_CASE(block_subsidy_test) { - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); TestBlockSubsidyHalvings(chainParams->GetConsensus()); // As in main TestBlockSubsidyHalvings(150); // As in regtest TestBlockSubsidyHalvings(1000); // Just another interval @@ -47,7 +48,7 @@ BOOST_AUTO_TEST_CASE(block_subsidy_test) BOOST_AUTO_TEST_CASE(subsidy_limit_test) { - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); CAmount nSum = 0; for (int nHeight = 0; nHeight < 14000000; nHeight += 1000) { CAmount nSubsidy = GetBlockSubsidy(nHeight, chainParams->GetConsensus()); @@ -58,6 +59,67 @@ BOOST_AUTO_TEST_CASE(subsidy_limit_test) BOOST_CHECK_EQUAL(nSum, CAmount{2099999997690000}); } +BOOST_AUTO_TEST_CASE(signet_parse_tests) +{ + ArgsManager signet_argsman; + signet_argsman.ForceSetArg("-signetchallenge", "51"); // set challenge to OP_TRUE + const auto signet_params = CreateChainParams(signet_argsman, CBaseChainParams::SIGNET); + CBlock block; + BOOST_CHECK(signet_params->GetConsensus().signet_challenge == std::vector<uint8_t>{OP_TRUE}); + CScript challenge{OP_TRUE}; + + // empty block is invalid + BOOST_CHECK(!SignetTxs::Create(block, challenge)); + BOOST_CHECK(!CheckSignetBlockSolution(block, signet_params->GetConsensus())); + + // no witness commitment + CMutableTransaction cb; + cb.vout.emplace_back(0, CScript{}); + block.vtx.push_back(MakeTransactionRef(cb)); + block.vtx.push_back(MakeTransactionRef(cb)); // Add dummy tx to excercise merkle root code + BOOST_CHECK(!SignetTxs::Create(block, challenge)); + BOOST_CHECK(!CheckSignetBlockSolution(block, signet_params->GetConsensus())); + + // no header is treated valid + std::vector<uint8_t> witness_commitment_section_141{0xaa, 0x21, 0xa9, 0xed}; + for (int i = 0; i < 32; ++i) { + witness_commitment_section_141.push_back(0xff); + } + cb.vout.at(0).scriptPubKey = CScript{} << OP_RETURN << witness_commitment_section_141; + block.vtx.at(0) = MakeTransactionRef(cb); + BOOST_CHECK(SignetTxs::Create(block, challenge)); + BOOST_CHECK(CheckSignetBlockSolution(block, signet_params->GetConsensus())); + + // no data after header, valid + std::vector<uint8_t> witness_commitment_section_325{0xec, 0xc7, 0xda, 0xa2}; + cb.vout.at(0).scriptPubKey = CScript{} << OP_RETURN << witness_commitment_section_141 << witness_commitment_section_325; + block.vtx.at(0) = MakeTransactionRef(cb); + BOOST_CHECK(SignetTxs::Create(block, challenge)); + BOOST_CHECK(CheckSignetBlockSolution(block, signet_params->GetConsensus())); + + // Premature end of data, invalid + witness_commitment_section_325.push_back(0x01); + witness_commitment_section_325.push_back(0x51); + cb.vout.at(0).scriptPubKey = CScript{} << OP_RETURN << witness_commitment_section_141 << witness_commitment_section_325; + block.vtx.at(0) = MakeTransactionRef(cb); + BOOST_CHECK(!SignetTxs::Create(block, challenge)); + BOOST_CHECK(!CheckSignetBlockSolution(block, signet_params->GetConsensus())); + + // has data, valid + witness_commitment_section_325.push_back(0x00); + cb.vout.at(0).scriptPubKey = CScript{} << OP_RETURN << witness_commitment_section_141 << witness_commitment_section_325; + block.vtx.at(0) = MakeTransactionRef(cb); + BOOST_CHECK(SignetTxs::Create(block, challenge)); + BOOST_CHECK(CheckSignetBlockSolution(block, signet_params->GetConsensus())); + + // Extraneous data, invalid + witness_commitment_section_325.push_back(0x00); + cb.vout.at(0).scriptPubKey = CScript{} << OP_RETURN << witness_commitment_section_141 << witness_commitment_section_325; + block.vtx.at(0) = MakeTransactionRef(cb); + BOOST_CHECK(!SignetTxs::Create(block, challenge)); + BOOST_CHECK(!CheckSignetBlockSolution(block, signet_params->GetConsensus())); +} + static bool ReturnFalse() { return false; } static bool ReturnTrue() { return true; } diff --git a/src/test/versionbits_tests.cpp b/src/test/versionbits_tests.cpp index 11c6bdad91..50444f7bbe 100644 --- a/src/test/versionbits_tests.cpp +++ b/src/test/versionbits_tests.cpp @@ -223,7 +223,7 @@ BOOST_AUTO_TEST_CASE(versionbits_test) } // Sanity checks of version bit deployments - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); const Consensus::Params &mainnetParams = chainParams->GetConsensus(); for (int i=0; i<(int) Consensus::MAX_VERSION_BITS_DEPLOYMENTS; i++) { uint32_t bitmask = VersionBitsMask(mainnetParams, static_cast<Consensus::DeploymentPos>(i)); @@ -250,7 +250,7 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion) { // Check that ComputeBlockVersion will set the appropriate bit correctly // on mainnet. - const auto chainParams = CreateChainParams(CBaseChainParams::MAIN); + const auto chainParams = CreateChainParams(*m_node.args, CBaseChainParams::MAIN); const Consensus::Params &mainnetParams = chainParams->GetConsensus(); // Use the TESTDUMMY deployment for testing purposes. diff --git a/src/torcontrol.cpp b/src/torcontrol.cpp index 5d56d1ff89..666e7a37a5 100644 --- a/src/torcontrol.cpp +++ b/src/torcontrol.cpp @@ -3,13 +3,16 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include <chainparams.h> #include <torcontrol.h> -#include <util/strencodings.h> -#include <netbase.h> + +#include <chainparams.h> +#include <chainparamsbase.h> +#include <crypto/hmac_sha256.h> #include <net.h> +#include <netaddress.h> +#include <netbase.h> +#include <util/strencodings.h> #include <util/system.h> -#include <crypto/hmac_sha256.h> #include <vector> #include <deque> @@ -81,12 +84,12 @@ public: /** * Connect to a Tor control port. - * target is address of the form host:port. + * tor_control_center is address of the form host:port. * connected is the handler that is called when connection is successfully established. * disconnected is a handler that is called when the connection is broken. * Return true on success. */ - bool Connect(const std::string &target, const ConnectionCB& connected, const ConnectionCB& disconnected); + bool Connect(const std::string& tor_control_center, const ConnectionCB& connected, const ConnectionCB& disconnected); /** * Disconnect from Tor control port. @@ -193,16 +196,16 @@ void TorControlConnection::eventcb(struct bufferevent *bev, short what, void *ct } } -bool TorControlConnection::Connect(const std::string &target, const ConnectionCB& _connected, const ConnectionCB& _disconnected) +bool TorControlConnection::Connect(const std::string& tor_control_center, const ConnectionCB& _connected, const ConnectionCB& _disconnected) { if (b_conn) Disconnect(); - // Parse target address:port + // Parse tor_control_center address:port struct sockaddr_storage connect_to_addr; int connect_to_addrlen = sizeof(connect_to_addr); - if (evutil_parse_sockaddr_port(target.c_str(), + if (evutil_parse_sockaddr_port(tor_control_center.c_str(), (struct sockaddr*)&connect_to_addr, &connect_to_addrlen)<0) { - LogPrintf("tor: Error parsing socket address %s\n", target); + LogPrintf("tor: Error parsing socket address %s\n", tor_control_center); return false; } @@ -215,9 +218,9 @@ bool TorControlConnection::Connect(const std::string &target, const ConnectionCB this->connected = _connected; this->disconnected = _disconnected; - // Finally, connect to target + // Finally, connect to tor_control_center if (bufferevent_socket_connect(b_conn, (struct sockaddr*)&connect_to_addr, connect_to_addrlen) < 0) { - LogPrintf("tor: Error connecting to address %s\n", target); + LogPrintf("tor: Error connecting to address %s\n", tor_control_center); return false; } return true; @@ -410,7 +413,7 @@ static bool WriteBinaryFile(const fs::path &filename, const std::string &data) class TorController { public: - TorController(struct event_base* base, const std::string& target); + TorController(struct event_base* base, const std::string& tor_control_center, const CService& target); ~TorController(); /** Get name of file to store private key in */ @@ -420,7 +423,7 @@ public: void Reconnect(); private: struct event_base* base; - std::string target; + const std::string m_tor_control_center; TorControlConnection conn; std::string private_key; std::string service_id; @@ -428,6 +431,7 @@ private: struct event *reconnect_ev; float reconnect_timeout; CService service; + const CService m_target; /** Cookie for SAFECOOKIE auth */ std::vector<uint8_t> cookie; /** ClientNonce for SAFECOOKIE auth */ @@ -450,18 +454,19 @@ private: static void reconnect_cb(evutil_socket_t fd, short what, void *arg); }; -TorController::TorController(struct event_base* _base, const std::string& _target): +TorController::TorController(struct event_base* _base, const std::string& tor_control_center, const CService& target): base(_base), - target(_target), conn(base), reconnect(true), reconnect_ev(0), - reconnect_timeout(RECONNECT_TIMEOUT_START) + m_tor_control_center(tor_control_center), conn(base), reconnect(true), reconnect_ev(0), + reconnect_timeout(RECONNECT_TIMEOUT_START), + m_target(target) { reconnect_ev = event_new(base, -1, 0, reconnect_cb, this); if (!reconnect_ev) LogPrintf("tor: Failed to create event for reconnection: out of memory?\n"); // Start connection attempts immediately - if (!conn.Connect(_target, std::bind(&TorController::connected_cb, this, std::placeholders::_1), + if (!conn.Connect(m_tor_control_center, std::bind(&TorController::connected_cb, this, std::placeholders::_1), std::bind(&TorController::disconnected_cb, this, std::placeholders::_1) )) { - LogPrintf("tor: Initiating connection to Tor control port %s failed\n", _target); + LogPrintf("tor: Initiating connection to Tor control port %s failed\n", m_tor_control_center); } // Read service private key if cached std::pair<bool,std::string> pkf = ReadBinaryFile(GetPrivateKeyFile()); @@ -536,7 +541,7 @@ void TorController::auth_cb(TorControlConnection& _conn, const TorControlReply& private_key = "NEW:RSA1024"; // Explicitly request RSA1024 - see issue #9214 // Request onion service, redirect port. // Note that the 'virtual' port is always the default port to avoid decloaking nodes using other ports. - _conn.Command(strprintf("ADD_ONION %s Port=%i,127.0.0.1:%i", private_key, Params().GetDefaultPort(), GetListenPort()), + _conn.Command(strprintf("ADD_ONION %s Port=%i,%s", private_key, Params().GetDefaultPort(), m_target.ToStringIPPort()), std::bind(&TorController::add_onion_cb, this, std::placeholders::_1, std::placeholders::_2)); } else { LogPrintf("tor: Authentication failed\n"); @@ -696,7 +701,7 @@ void TorController::disconnected_cb(TorControlConnection& _conn) if (!reconnect) return; - LogPrint(BCLog::TOR, "tor: Not connected to Tor control port %s, trying to reconnect\n", target); + LogPrint(BCLog::TOR, "tor: Not connected to Tor control port %s, trying to reconnect\n", m_tor_control_center); // Single-shot timer for reconnect. Use exponential backoff. struct timeval time = MillisToTimeval(int64_t(reconnect_timeout * 1000.0)); @@ -710,9 +715,9 @@ void TorController::Reconnect() /* Try to reconnect and reestablish if we get booted - for example, Tor * may be restarting. */ - if (!conn.Connect(target, std::bind(&TorController::connected_cb, this, std::placeholders::_1), + if (!conn.Connect(m_tor_control_center, std::bind(&TorController::connected_cb, this, std::placeholders::_1), std::bind(&TorController::disconnected_cb, this, std::placeholders::_1) )) { - LogPrintf("tor: Re-initiating connection to Tor control port %s failed\n", target); + LogPrintf("tor: Re-initiating connection to Tor control port %s failed\n", m_tor_control_center); } } @@ -731,14 +736,14 @@ void TorController::reconnect_cb(evutil_socket_t fd, short what, void *arg) static struct event_base *gBase; static std::thread torControlThread; -static void TorControlThread() +static void TorControlThread(CService onion_service_target) { - TorController ctrl(gBase, gArgs.GetArg("-torcontrol", DEFAULT_TOR_CONTROL)); + TorController ctrl(gBase, gArgs.GetArg("-torcontrol", DEFAULT_TOR_CONTROL), onion_service_target); event_base_dispatch(gBase); } -void StartTorControl() +void StartTorControl(CService onion_service_target) { assert(!gBase); #ifdef WIN32 @@ -752,7 +757,9 @@ void StartTorControl() return; } - torControlThread = std::thread(std::bind(&TraceThread<void (*)()>, "torcontrol", &TorControlThread)); + torControlThread = std::thread(&TraceThread<std::function<void()>>, "torcontrol", [onion_service_target] { + TorControlThread(onion_service_target); + }); } void InterruptTorControl() @@ -773,3 +780,10 @@ void StopTorControl() gBase = nullptr; } } + +CService DefaultOnionServiceTarget() +{ + struct in_addr onion_service_target; + onion_service_target.s_addr = htonl(INADDR_LOOPBACK); + return {onion_service_target, BaseParams().OnionServiceTargetPort()}; +} diff --git a/src/torcontrol.h b/src/torcontrol.h index 474a4d87d9..71a6960e54 100644 --- a/src/torcontrol.h +++ b/src/torcontrol.h @@ -8,12 +8,17 @@ #ifndef BITCOIN_TORCONTROL_H #define BITCOIN_TORCONTROL_H +#include <string> + +class CService; extern const std::string DEFAULT_TOR_CONTROL; static const bool DEFAULT_LISTEN_ONION = true; -void StartTorControl(); +void StartTorControl(CService onion_service_target); void InterruptTorControl(); void StopTorControl(); +CService DefaultOnionServiceTarget(); + #endif /* BITCOIN_TORCONTROL_H */ diff --git a/src/uint256.cpp b/src/uint256.cpp index ee1b34eadd..d074df2f20 100644 --- a/src/uint256.cpp +++ b/src/uint256.cpp @@ -80,7 +80,4 @@ template std::string base_blob<256>::ToString() const; template void base_blob<256>::SetHex(const char*); template void base_blob<256>::SetHex(const std::string&); -uint256& UINT256_ONE() { - static uint256* one = new uint256(uint256S("0000000000000000000000000000000000000000000000000000000000000001")); - return *one; -} +const uint256 uint256::ONE(1); diff --git a/src/uint256.h b/src/uint256.h index 8ab747ef49..c55cb31456 100644 --- a/src/uint256.h +++ b/src/uint256.h @@ -20,10 +20,11 @@ protected: static constexpr int WIDTH = BITS / 8; uint8_t m_data[WIDTH]; public: - base_blob() - { - memset(m_data, 0, sizeof(m_data)); - } + /* construct 0 value by default */ + constexpr base_blob() : m_data() {} + + /* constructor for constants between 1 and 255 */ + constexpr explicit base_blob(uint8_t v) : m_data{v} {} explicit base_blob(const std::vector<unsigned char>& vch); @@ -111,7 +112,7 @@ public: */ class uint160 : public base_blob<160> { public: - uint160() {} + constexpr uint160() {} explicit uint160(const std::vector<unsigned char>& vch) : base_blob<160>(vch) {} }; @@ -122,8 +123,10 @@ public: */ class uint256 : public base_blob<256> { public: - uint256() {} + constexpr uint256() {} + constexpr explicit uint256(uint8_t v) : base_blob<256>(v) {} explicit uint256(const std::vector<unsigned char>& vch) : base_blob<256>(vch) {} + static const uint256 ONE; }; /* uint256 from const char *. @@ -147,6 +150,4 @@ inline uint256 uint256S(const std::string& str) return rv; } -uint256& UINT256_ONE(); - #endif // BITCOIN_UINT256_H diff --git a/src/util/strencodings.cpp b/src/util/strencodings.cpp index 079a4529a3..3236184b0b 100644 --- a/src/util/strencodings.cpp +++ b/src/util/strencodings.cpp @@ -201,20 +201,24 @@ std::string DecodeBase64(const std::string& str, bool* pf_invalid) return std::string((const char*)vchRet.data(), vchRet.size()); } -std::string EncodeBase32(Span<const unsigned char> input) +std::string EncodeBase32(Span<const unsigned char> input, bool pad) { static const char *pbase32 = "abcdefghijklmnopqrstuvwxyz234567"; std::string str; str.reserve(((input.size() + 4) / 5) * 8); ConvertBits<8, 5, true>([&](int v) { str += pbase32[v]; }, input.begin(), input.end()); - while (str.size() % 8) str += '='; + if (pad) { + while (str.size() % 8) { + str += '='; + } + } return str; } -std::string EncodeBase32(const std::string& str) +std::string EncodeBase32(const std::string& str, bool pad) { - return EncodeBase32(MakeUCharSpan(str)); + return EncodeBase32(MakeUCharSpan(str), pad); } std::vector<unsigned char> DecodeBase32(const char* p, bool* pf_invalid) diff --git a/src/util/strencodings.h b/src/util/strencodings.h index 1519214140..1a217dd12d 100644 --- a/src/util/strencodings.h +++ b/src/util/strencodings.h @@ -52,8 +52,20 @@ std::string EncodeBase64(Span<const unsigned char> input); std::string EncodeBase64(const std::string& str); std::vector<unsigned char> DecodeBase32(const char* p, bool* pf_invalid = nullptr); std::string DecodeBase32(const std::string& str, bool* pf_invalid = nullptr); -std::string EncodeBase32(Span<const unsigned char> input); -std::string EncodeBase32(const std::string& str); + +/** + * Base32 encode. + * If `pad` is true, then the output will be padded with '=' so that its length + * is a multiple of 8. + */ +std::string EncodeBase32(Span<const unsigned char> input, bool pad = true); + +/** + * Base32 encode. + * If `pad` is true, then the output will be padded with '=' so that its length + * is a multiple of 8. + */ +std::string EncodeBase32(const std::string& str, bool pad = true); void SplitHostPort(std::string in, int& portOut, std::string& hostOut); int64_t atoi64(const std::string& str); diff --git a/src/util/string.h b/src/util/string.h index cdb41630c6..a0c87bd00c 100644 --- a/src/util/string.h +++ b/src/util/string.h @@ -7,6 +7,8 @@ #include <attributes.h> +#include <algorithm> +#include <array> #include <cstring> #include <locale> #include <sstream> @@ -74,4 +76,15 @@ std::string ToString(const T& t) return oss.str(); } +/** + * Check whether a container begins with the given prefix. + */ +template <typename T1, size_t PREFIX_LEN> +NODISCARD inline bool HasPrefix(const T1& obj, + const std::array<uint8_t, PREFIX_LEN>& prefix) +{ + return obj.size() >= PREFIX_LEN && + std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); +} + #endif // BITCOIN_UTIL_STRENCODINGS_H diff --git a/src/validation.cpp b/src/validation.cpp index d4463bf17b..e9c0607ced 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -2449,9 +2449,9 @@ static void UpdateTip(CTxMemPool& mempool, const CBlockIndex* pindexNew, const C } bilingual_str warning_messages; + int num_unexpected_version = 0; if (!::ChainstateActive().IsInitialBlockDownload()) { - int nUpgraded = 0; const CBlockIndex* pindex = pindexNew; for (int bit = 0; bit < VERSIONBITS_NUM_BITS; bit++) { WarningBitsConditionChecker checker(bit); @@ -2470,11 +2470,9 @@ static void UpdateTip(CTxMemPool& mempool, const CBlockIndex* pindexNew, const C { int32_t nExpectedVersion = ComputeBlockVersion(pindex->pprev, chainParams.GetConsensus()); if (pindex->nVersion > VERSIONBITS_LAST_OLD_BLOCK_VERSION && (pindex->nVersion & ~nExpectedVersion) != 0) - ++nUpgraded; + ++num_unexpected_version; pindex = pindex->pprev; } - if (nUpgraded > 0) - AppendWarning(warning_messages, strprintf(_("%d of last 100 blocks have unexpected version"), nUpgraded)); } LogPrintf("%s: new best=%s height=%d version=0x%08x log2_work=%f tx=%lu date='%s' progress=%f cache=%.1fMiB(%utxo)%s\n", __func__, pindexNew->GetBlockHash().ToString(), pindexNew->nHeight, pindexNew->nVersion, @@ -2482,6 +2480,10 @@ static void UpdateTip(CTxMemPool& mempool, const CBlockIndex* pindexNew, const C FormatISO8601DateTime(pindexNew->GetBlockTime()), GuessVerificationProgress(chainParams.TxData(), pindexNew), ::ChainstateActive().CoinsTip().DynamicMemoryUsage() * (1.0 / (1<<20)), ::ChainstateActive().CoinsTip().GetCacheSize(), !warning_messages.empty() ? strprintf(" warning='%s'", warning_messages.original) : ""); + + if (num_unexpected_version > 0) { + LogPrint(BCLog::VALIDATION, "%d of last 100 blocks have unexpected version\n", num_unexpected_version); + } } /** Disconnect m_chain's tip. diff --git a/src/version.h b/src/version.h index b5f379e1b8..019c3a3ae7 100644 --- a/src/version.h +++ b/src/version.h @@ -38,4 +38,7 @@ static const int INVALID_CB_NO_BAN_VERSION = 70015; //! "wtxidrelay" command for wtxid-based relay starts with this version static const int WTXID_RELAY_VERSION = 70016; +// Make sure that none of the values above collide with +// `SERIALIZE_TRANSACTION_NO_WITNESS` or `ADDRV2_FORMAT`. + #endif // BITCOIN_VERSION_H diff --git a/src/wallet/feebumper.cpp b/src/wallet/feebumper.cpp index cacf306891..6cbad14de8 100644 --- a/src/wallet/feebumper.cpp +++ b/src/wallet/feebumper.cpp @@ -219,7 +219,8 @@ Result CreateRateBumpTransaction(CWallet& wallet, const uint256& txid, const CCo CAmount fee_ret; int change_pos_in_out = -1; // No requested location for change bilingual_str fail_reason; - if (!wallet.CreateTransaction(recipients, tx_new, fee_ret, change_pos_in_out, fail_reason, new_coin_control, false)) { + FeeCalculation fee_calc_out; + if (!wallet.CreateTransaction(recipients, tx_new, fee_ret, change_pos_in_out, fail_reason, new_coin_control, fee_calc_out, false)) { errors.push_back(Untranslated("Unable to create transaction.") + Untranslated(" ") + fail_reason); return Result::WALLET_ERROR; } diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 6ffe852905..4a11eb1669 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -397,7 +397,7 @@ void ParseRecipients(const UniValue& address_amounts, const UniValue& subtract_f } } -UniValue SendMoney(CWallet* const pwallet, const CCoinControl &coin_control, std::vector<CRecipient> &recipients, mapValue_t map_value) +UniValue SendMoney(CWallet* const pwallet, const CCoinControl &coin_control, std::vector<CRecipient> &recipients, mapValue_t map_value, bool verbose) { EnsureWalletIsUnlocked(pwallet); @@ -409,11 +409,18 @@ UniValue SendMoney(CWallet* const pwallet, const CCoinControl &coin_control, std int nChangePosRet = -1; bilingual_str error; CTransactionRef tx; - bool fCreated = pwallet->CreateTransaction(recipients, tx, nFeeRequired, nChangePosRet, error, coin_control, !pwallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS)); + FeeCalculation fee_calc_out; + bool fCreated = pwallet->CreateTransaction(recipients, tx, nFeeRequired, nChangePosRet, error, coin_control, fee_calc_out, !pwallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS)); if (!fCreated) { throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, error.original); } pwallet->CommitTransaction(tx, std::move(map_value), {} /* orderForm */); + if (verbose) { + UniValue entry(UniValue::VOBJ); + entry.pushKV("txid", tx->GetHash().GetHex()); + entry.pushKV("fee_reason", StringForFeeReason(fee_calc_out.reason)); + return entry; + } return tx->GetHash().GetHex(); } @@ -426,21 +433,31 @@ static RPCHelpMan sendtoaddress() {"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address to send to."}, {"amount", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "The amount in " + CURRENCY_UNIT + " to send. eg 0.1"}, {"comment", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "A comment used to store what the transaction is for.\n" - " This is not part of the transaction, just kept in your wallet."}, + "This is not part of the transaction, just kept in your wallet."}, {"comment_to", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "A comment to store the name of the person or organization\n" - " to which you're sending the transaction. This is not part of the \n" - " transaction, just kept in your wallet."}, + "to which you're sending the transaction. This is not part of the \n" + "transaction, just kept in your wallet."}, {"subtractfeefromamount", RPCArg::Type::BOOL, /* default */ "false", "The fee will be deducted from the amount being sent.\n" - " The recipient will receive less bitcoins than you enter in the amount field."}, + "The recipient will receive less bitcoins than you enter in the amount field."}, {"replaceable", RPCArg::Type::BOOL, /* default */ "wallet default", "Allow this transaction to be replaced by a transaction with higher fees via BIP 125"}, {"conf_target", RPCArg::Type::NUM, /* default */ "wallet default", "Confirmation target (in blocks), or fee rate (for " + CURRENCY_UNIT + "/kB or " + CURRENCY_ATOM + "/B estimate modes)"}, {"estimate_mode", RPCArg::Type::STR, /* default */ "unset", std::string() + "The fee estimate mode, must be one of (case insensitive):\n" " \"" + FeeModes("\"\n\"") + "\""}, {"avoid_reuse", RPCArg::Type::BOOL, /* default */ "true", "(only available if avoid_reuse wallet flag is set) Avoid spending from dirty addresses; addresses are considered\n" - " dirty if they have previously been used in a transaction."}, + "dirty if they have previously been used in a transaction."}, + {"verbose", RPCArg::Type::BOOL, /* default */ "false", "If true, return extra information about the transaction."}, }, - RPCResult{ - RPCResult::Type::STR_HEX, "txid", "The transaction id." + { + RPCResult{"if verbose is not set or set to false", + RPCResult::Type::STR_HEX, "txid", "The transaction id." + }, + RPCResult{"if verbose is set to true", + RPCResult::Type::OBJ, "", "", + { + {RPCResult::Type::STR_HEX, "txid", "The transaction id."}, + {RPCResult::Type::STR, "fee reason", "The transaction fee reason."} + }, + }, }, RPCExamples{ HelpExampleCli("sendtoaddress", "\"" + EXAMPLE_ADDRESS[0] + "\" 0.1") @@ -497,8 +514,9 @@ static RPCHelpMan sendtoaddress() std::vector<CRecipient> recipients; ParseRecipients(address_amounts, subtractFeeFromAmount, recipients); + bool verbose = request.params[9].isNull() ? false: request.params[9].get_bool(); - return SendMoney(pwallet, coin_control, recipients, mapValue); + return SendMoney(pwallet, coin_control, recipients, mapValue, verbose); }, }; } @@ -842,9 +860,9 @@ static RPCHelpMan sendmany() {"minconf", RPCArg::Type::NUM, RPCArg::Optional::OMITTED_NAMED_ARG, "Ignored dummy value"}, {"comment", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "A comment"}, {"subtractfeefrom", RPCArg::Type::ARR, RPCArg::Optional::OMITTED_NAMED_ARG, "The addresses.\n" - " The fee will be equally deducted from the amount of each selected address.\n" - " Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" - " If no addresses are specified here, the sender pays the fee.", + "The fee will be equally deducted from the amount of each selected address.\n" + "Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" + "If no addresses are specified here, the sender pays the fee.", { {"address", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "Subtract fee from this address"}, }, @@ -853,11 +871,22 @@ static RPCHelpMan sendmany() {"conf_target", RPCArg::Type::NUM, /* default */ "wallet default", "Confirmation target (in blocks), or fee rate (for " + CURRENCY_UNIT + "/kB or " + CURRENCY_ATOM + "/B estimate modes)"}, {"estimate_mode", RPCArg::Type::STR, /* default */ "unset", std::string() + "The fee estimate mode, must be one of (case insensitive):\n" " \"" + FeeModes("\"\n\"") + "\""}, + {"verbose", RPCArg::Type::BOOL, /* default */ "false", "If true, return extra infomration about the transaction."}, + }, + { + RPCResult{"if verbose is not set or set to false", + RPCResult::Type::STR_HEX, "txid", "The transaction id for the send. Only 1 transaction is created regardless of\n" + "the number of addresses." + }, + RPCResult{"if verbose is set to true", + RPCResult::Type::OBJ, "", "", + { + {RPCResult::Type::STR_HEX, "txid", "The transaction id for the send. Only 1 transaction is created regardless of\n" + "the number of addresses."}, + {RPCResult::Type::STR, "fee reason", "The transaction fee reason."} + }, + }, }, - RPCResult{ - RPCResult::Type::STR_HEX, "txid", "The transaction id for the send. Only 1 transaction is created regardless of\n" - "the number of addresses." - }, RPCExamples{ "\nSend two amounts to two different addresses:\n" + HelpExampleCli("sendmany", "\"\" \"{\\\"" + EXAMPLE_ADDRESS[0] + "\\\":0.01,\\\"" + EXAMPLE_ADDRESS[1] + "\\\":0.02}\"") + @@ -902,12 +931,14 @@ static RPCHelpMan sendmany() std::vector<CRecipient> recipients; ParseRecipients(sendTo, subtractFeeFromAmount, recipients); + bool verbose = request.params[8].isNull() ? false : request.params[8].get_bool(); - return SendMoney(pwallet, coin_control, recipients, std::move(mapValue)); + return SendMoney(pwallet, coin_control, recipients, std::move(mapValue), verbose); }, }; } + static RPCHelpMan addmultisigaddress() { return RPCHelpMan{"addmultisigaddress", @@ -1482,7 +1513,7 @@ static RPCHelpMan listsinceblock() {"target_confirmations", RPCArg::Type::NUM, /* default */ "1", "Return the nth block hash from the main chain. e.g. 1 would mean the best block hash. Note: this is not used as a filter, but only affects [lastblock] in the return value"}, {"include_watchonly", RPCArg::Type::BOOL, /* default */ "true for watch-only wallets, otherwise false", "Include transactions to watch-only addresses (see 'importaddress')"}, {"include_removed", RPCArg::Type::BOOL, /* default */ "true", "Show transactions that were removed due to a reorg in the \"removed\" array\n" - " (not guaranteed to work on pruned nodes)"}, + "(not guaranteed to work on pruned nodes)"}, }, RPCResult{ RPCResult::Type::OBJ, "", "", @@ -2801,7 +2832,7 @@ static RPCHelpMan listunspent() }, }, {"include_unsafe", RPCArg::Type::BOOL, /* default */ "true", "Include outputs that are not safe to spend\n" - " See description of \"safe\" attribute below."}, + "See description of \"safe\" attribute below."}, {"query_options", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED_NAMED_ARG, "JSON with query options", { {"minimumAmount", RPCArg::Type::AMOUNT, /* default */ "0", "Minimum value of each UTXO in " + CURRENCY_UNIT + ""}, @@ -3041,7 +3072,7 @@ void FundTransaction(CWallet* const pwallet, CMutableTransaction& tx, CAmount& f {"lockUnspents", UniValueType(UniValue::VBOOL)}, {"lock_unspents", UniValueType(UniValue::VBOOL)}, {"locktime", UniValueType(UniValue::VNUM)}, - {"feeRate", UniValueType()}, // will be checked below, + {"feeRate", UniValueType()}, // will be checked below {"psbt", UniValueType(UniValue::VBOOL)}, {"subtractFeeFromOutputs", UniValueType(UniValue::VARR)}, {"subtract_fee_from_outputs", UniValueType(UniValue::VARR)}, @@ -3165,15 +3196,15 @@ static RPCHelpMan fundrawtransaction() {"lockUnspents", RPCArg::Type::BOOL, /* default */ "false", "Lock selected unspent outputs"}, {"feeRate", RPCArg::Type::AMOUNT, /* default */ "not set: makes wallet determine the fee", "Set a specific fee rate in " + CURRENCY_UNIT + "/kB"}, {"subtractFeeFromOutputs", RPCArg::Type::ARR, /* default */ "empty array", "The integers.\n" - " The fee will be equally deducted from the amount of each specified output.\n" - " Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" - " If no outputs are specified here, the sender pays the fee.", + "The fee will be equally deducted from the amount of each specified output.\n" + "Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" + "If no outputs are specified here, the sender pays the fee.", { {"vout_index", RPCArg::Type::NUM, RPCArg::Optional::OMITTED, "The zero-based output index, before a change output is added."}, }, }, {"replaceable", RPCArg::Type::BOOL, /* default */ "wallet default", "Marks this transaction as BIP125 replaceable.\n" - " Allows this transaction to be replaced by a transaction with higher fees"}, + "Allows this transaction to be replaced by a transaction with higher fees"}, {"conf_target", RPCArg::Type::NUM, /* default */ "wallet default", "Confirmation target (in blocks), or fee rate (for " + CURRENCY_UNIT + "/kB or " + CURRENCY_ATOM + "/B estimate modes)"}, {"estimate_mode", RPCArg::Type::STR, /* default */ "unset", std::string() + "The fee estimate mode, must be one of (case insensitive):\n" " \"" + FeeModes("\"\n\"") + "\""}, @@ -3353,15 +3384,15 @@ static RPCHelpMan bumpfee_helper(std::string method_name) { {"conf_target", RPCArg::Type::NUM, /* default */ "wallet default", "Confirmation target (in blocks)"}, {"fee_rate", RPCArg::Type::NUM, /* default */ "fall back to 'conf_target'", "fee rate (NOT total fee) to pay, in " + CURRENCY_UNIT + " per kB\n" - " Specify a fee rate instead of relying on the built-in fee estimator.\n" + "Specify a fee rate instead of relying on the built-in fee estimator.\n" "Must be at least 0.0001 " + CURRENCY_UNIT + " per kB higher than the current transaction fee rate.\n"}, {"replaceable", RPCArg::Type::BOOL, /* default */ "true", "Whether the new transaction should still be\n" - " marked bip-125 replaceable. If true, the sequence numbers in the transaction will\n" - " be left unchanged from the original. If false, any input sequence numbers in the\n" - " original transaction that were less than 0xfffffffe will be increased to 0xfffffffe\n" - " so the new transaction will not be explicitly bip-125 replaceable (though it may\n" - " still be replaceable in practice, for example if it has unconfirmed ancestors which\n" - " are replaceable)."}, + "marked bip-125 replaceable. If true, the sequence numbers in the transaction will\n" + "be left unchanged from the original. If false, any input sequence numbers in the\n" + "original transaction that were less than 0xfffffffe will be increased to 0xfffffffe\n" + "so the new transaction will not be explicitly bip-125 replaceable (though it may\n" + "still be replaceable in practice, for example if it has unconfirmed ancestors which\n" + "are replaceable)."}, {"estimate_mode", RPCArg::Type::STR, /* default */ "unset", std::string() + "The fee estimate mode, must be one of (case insensitive):\n" " \"" + FeeModes("\"\n\"") + "\""}, }, @@ -3743,7 +3774,7 @@ RPCHelpMan getaddressinfo() {RPCResult::Type::NUM, "witness_version", /* optional */ true, "The version number of the witness program."}, {RPCResult::Type::STR_HEX, "witness_program", /* optional */ true, "The hex value of the witness program."}, {RPCResult::Type::STR, "script", /* optional */ true, "The output script type. Only if isscript is true and the redeemscript is known. Possible\n" - " types: nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_keyhash,\n" + "types: nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_keyhash,\n" "witness_v0_scripthash, witness_unknown."}, {RPCResult::Type::STR_HEX, "hex", /* optional */ true, "The redeemscript for the p2sh address."}, {RPCResult::Type::ARR, "pubkeys", /* optional */ true, "Array of pubkeys associated with the known redeemscript (only if script is multisig).", @@ -3959,9 +3990,10 @@ static RPCHelpMan listlabels() static RPCHelpMan send() { return RPCHelpMan{"send", + "\nEXPERIMENTAL warning: this call may be changed in future releases.\n" "\nSend a transaction.\n", { - {"outputs", RPCArg::Type::ARR, RPCArg::Optional::NO, "a json array with outputs (key-value pairs), where none of the keys are duplicated.\n" + {"outputs", RPCArg::Type::ARR, RPCArg::Optional::NO, "The outputs (key-value pairs), where none of the keys are duplicated.\n" "That is, each address can only appear once and there can only be one 'data' object.\n" "For convenience, a dictionary, which holds the key-value pairs directly, is also accepted.", { @@ -3993,7 +4025,7 @@ static RPCHelpMan send() {"include_watching", RPCArg::Type::BOOL, /* default */ "true for watch-only wallets, otherwise false", "Also select inputs which are watch only.\n" "Only solvable inputs can be used. Watch-only destinations are solvable if the public key and/or output script was imported,\n" "e.g. with 'importpubkey' or 'importmulti' with the 'pubkeys' or 'desc' field."}, - {"inputs", RPCArg::Type::ARR, /* default */ "empty array", "Specify inputs instead of adding them automatically. A json array of json objects", + {"inputs", RPCArg::Type::ARR, /* default */ "empty array", "Specify inputs instead of adding them automatically. A JSON array of JSON objects", { {"txid", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "The transaction id"}, {"vout", RPCArg::Type::NUM, RPCArg::Optional::NO, "The output number"}, @@ -4003,7 +4035,7 @@ static RPCHelpMan send() {"locktime", RPCArg::Type::NUM, /* default */ "0", "Raw locktime. Non-0 value also locktime-activates inputs"}, {"lock_unspents", RPCArg::Type::BOOL, /* default */ "false", "Lock selected unspent outputs"}, {"psbt", RPCArg::Type::BOOL, /* default */ "automatic", "Always return a PSBT, implies add_to_wallet=false."}, - {"subtract_fee_from_outputs", RPCArg::Type::ARR, /* default */ "empty array", "A json array of integers.\n" + {"subtract_fee_from_outputs", RPCArg::Type::ARR, /* default */ "empty array", "A JSON array of integers.\n" "The fee will be equally deducted from the amount of each specified output.\n" "Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" "If no outputs are specified here, the sender pays the fee.", @@ -4012,7 +4044,7 @@ static RPCHelpMan send() }, }, {"replaceable", RPCArg::Type::BOOL, /* default */ "wallet default", "Marks this transaction as BIP125 replaceable.\n" - " Allows this transaction to be replaced by a transaction with higher fees"}, + "Allows this transaction to be replaced by a transaction with higher fees"}, }, "options"}, }, @@ -4027,8 +4059,8 @@ static RPCHelpMan send() }, RPCExamples{"" "\nSend with a fee rate of 1 satoshi per byte\n" - + HelpExampleCli("send", "'{\"" + EXAMPLE_ADDRESS[0] + "\": 0.1}' 1 sat/b\n" + - "\nCreate a transaction that should confirm the next block, with a specific input, and return result without adding to wallet or broadcasting to the network\n") + + HelpExampleCli("send", "'{\"" + EXAMPLE_ADDRESS[0] + "\": 0.1}' 1 sat/b\n") + + "\nCreate a transaction that should confirm the next block, with a specific input, and return result without adding to wallet or broadcasting to the network\n" + HelpExampleCli("send", "'{\"" + EXAMPLE_ADDRESS[0] + "\": 0.1}' 1 economical '{\"add_to_wallet\": false, \"inputs\": [{\"txid\":\"a08e6907dbbd3d809776dbfc5d82e371b764ed838b5655e72f463568df1aadf0\", \"vout\":1}]}'") }, [&](const RPCHelpMan& self, const JSONRPCRequest& request) -> UniValue @@ -4079,7 +4111,7 @@ static RPCHelpMan send() int change_position; bool rbf = pwallet->m_signal_rbf; if (options.exists("replaceable")) { - rbf = options["add_to_wallet"].get_bool(); + rbf = options["replaceable"].get_bool(); } CMutableTransaction rawTx = ConstructTransaction(options["inputs"], request.params[0], options["locktime"], rbf); CCoinControl coin_control; @@ -4096,7 +4128,7 @@ static RPCHelpMan send() // Make a blank psbt PartiallySignedTransaction psbtx(rawTx); - // Fill transaction with out data and sign + // Fill transaction with our data and sign bool complete = true; const TransactionError err = pwallet->FillPSBT(psbtx, complete, SIGHASH_ALL, true, false); if (err != TransactionError::OK) { @@ -4108,13 +4140,11 @@ static RPCHelpMan send() UniValue result(UniValue::VOBJ); - // Serialize the PSBT - CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION); - ssTx << psbtx; - const std::string result_str = EncodeBase64(ssTx.str()); - if (psbt_opt_in || !complete || !add_to_wallet) { - result.pushKV("psbt", result_str); + // Serialize the PSBT + CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION); + ssTx << psbtx; + result.pushKV("psbt", EncodeBase64(ssTx.str())); } if (complete) { @@ -4144,11 +4174,11 @@ static RPCHelpMan sethdseed() HELP_REQUIRING_PASSPHRASE, { {"newkeypool", RPCArg::Type::BOOL, /* default */ "true", "Whether to flush old unused addresses, including change addresses, from the keypool and regenerate it.\n" - " If true, the next address from getnewaddress and change address from getrawchangeaddress will be from this new seed.\n" - " If false, addresses (including change addresses if the wallet already had HD Chain Split enabled) from the existing\n" - " keypool will be used until it has been depleted."}, + "If true, the next address from getnewaddress and change address from getrawchangeaddress will be from this new seed.\n" + "If false, addresses (including change addresses if the wallet already had HD Chain Split enabled) from the existing\n" + "keypool will be used until it has been depleted."}, {"seed", RPCArg::Type::STR, /* default */ "random seed", "The WIF private key to use as the new HD seed.\n" - " The seed value can be retrieved using the dumpwallet command. It is the private key marked hdseed=1"}, + "The seed value can be retrieved using the dumpwallet command. It is the private key marked hdseed=1"}, }, RPCResult{RPCResult::Type::NONE, "", ""}, RPCExamples{ @@ -4293,7 +4323,7 @@ static RPCHelpMan walletcreatefundedpsbt() {"outputs", RPCArg::Type::ARR, RPCArg::Optional::NO, "The outputs (key-value pairs), where none of the keys are duplicated.\n" "That is, each address can only appear once and there can only be one 'data' object.\n" "For compatibility reasons, a dictionary, which holds the key-value pairs directly, is also\n" - " accepted as second parameter.", + "accepted as second parameter.", { {"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "", { @@ -4318,15 +4348,15 @@ static RPCHelpMan walletcreatefundedpsbt() {"lockUnspents", RPCArg::Type::BOOL, /* default */ "false", "Lock selected unspent outputs"}, {"feeRate", RPCArg::Type::AMOUNT, /* default */ "not set: makes wallet determine the fee", "Set a specific fee rate in " + CURRENCY_UNIT + "/kB"}, {"subtractFeeFromOutputs", RPCArg::Type::ARR, /* default */ "empty array", "The outputs to subtract the fee from.\n" - " The fee will be equally deducted from the amount of each specified output.\n" - " Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" - " If no outputs are specified here, the sender pays the fee.", + "The fee will be equally deducted from the amount of each specified output.\n" + "Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n" + "If no outputs are specified here, the sender pays the fee.", { {"vout_index", RPCArg::Type::NUM, RPCArg::Optional::OMITTED, "The zero-based output index, before a change output is added."}, }, }, {"replaceable", RPCArg::Type::BOOL, /* default */ "wallet default", "Marks this transaction as BIP125 replaceable.\n" - " Allows this transaction to be replaced by a transaction with higher fees"}, + "Allows this transaction to be replaced by a transaction with higher fees"}, {"conf_target", RPCArg::Type::NUM, /* default */ "fall back to wallet's confirmation target (txconfirmtarget)", "Confirmation target (in blocks)"}, {"estimate_mode", RPCArg::Type::STR, /* default */ "unset", std::string() + "The fee estimate mode, must be one of (case insensitive):\n" " \"" + FeeModes("\"\n\"") + "\""}, @@ -4501,8 +4531,8 @@ static const CRPCCommand commands[] = { "wallet", "removeprunedfunds", &removeprunedfunds, {"txid"} }, { "wallet", "rescanblockchain", &rescanblockchain, {"start_height", "stop_height"} }, { "wallet", "send", &send, {"outputs","conf_target","estimate_mode","options"} }, - { "wallet", "sendmany", &sendmany, {"dummy","amounts","minconf","comment","subtractfeefrom","replaceable","conf_target","estimate_mode"} }, - { "wallet", "sendtoaddress", &sendtoaddress, {"address","amount","comment","comment_to","subtractfeefromamount","replaceable","conf_target","estimate_mode","avoid_reuse"} }, + { "wallet", "sendmany", &sendmany, {"dummy","amounts","minconf","comment","subtractfeefrom","replaceable","conf_target","estimate_mode","verbose"} }, + { "wallet", "sendtoaddress", &sendtoaddress, {"address","amount","comment","comment_to","subtractfeefromamount","replaceable","conf_target","estimate_mode","avoid_reuse","verbose"} }, { "wallet", "sethdseed", &sethdseed, {"newkeypool","seed"} }, { "wallet", "setlabel", &setlabel, {"address","label"} }, { "wallet", "settxfee", &settxfee, {"amount"} }, diff --git a/src/wallet/scriptpubkeyman.cpp b/src/wallet/scriptpubkeyman.cpp index 51715462c5..435716e56a 100644 --- a/src/wallet/scriptpubkeyman.cpp +++ b/src/wallet/scriptpubkeyman.cpp @@ -655,7 +655,7 @@ std::unique_ptr<CKeyMetadata> LegacyScriptPubKeyMan::GetMetadata(const CTxDestin uint256 LegacyScriptPubKeyMan::GetID() const { - return UINT256_ONE(); + return uint256::ONE; } /** diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp index 4393bb7701..c42114c394 100644 --- a/src/wallet/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -524,8 +524,9 @@ public: int changePos = -1; bilingual_str error; CCoinControl dummy; + FeeCalculation fee_calc_out; { - BOOST_CHECK(wallet->CreateTransaction({recipient}, tx, fee, changePos, error, dummy)); + BOOST_CHECK(wallet->CreateTransaction({recipient}, tx, fee, changePos, error, dummy, fee_calc_out)); } wallet->CommitTransaction(tx, {}, {}); CMutableTransaction blocktx; diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 66857dbb39..4d8c0b175b 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -324,8 +324,6 @@ std::shared_ptr<CWallet> CreateWallet(interfaces::Chain& chain, const std::strin return wallet; } -const uint256 CWalletTx::ABANDON_HASH(UINT256_ONE()); - /** @defgroup mapWallet * * @{ @@ -2631,7 +2629,8 @@ bool CWallet::FundTransaction(CMutableTransaction& tx, CAmount& nFeeRet, int& nC LOCK(cs_wallet); CTransactionRef tx_new; - if (!CreateTransaction(vecSend, tx_new, nFeeRet, nChangePosInOut, error, coinControl, false)) { + FeeCalculation fee_calc_out; + if (!CreateTransaction(vecSend, tx_new, nFeeRet, nChangePosInOut, error, coinControl, fee_calc_out, false)) { return false; } @@ -2755,6 +2754,7 @@ bool CWallet::CreateTransactionInternal( int& nChangePosInOut, bilingual_str& error, const CCoinControl& coin_control, + FeeCalculation& fee_calc_out, bool sign) { CAmount nValue = 0; @@ -3098,6 +3098,7 @@ bool CWallet::CreateTransactionInternal( // Before we return success, we assume any change key will be used to prevent // accidental re-use. reservedest.KeepDestination(); + fee_calc_out = feeCalc; WalletLogPrintf("Fee Calculation: Fee:%d Bytes:%u Needed:%d Tgt:%d (requested %d) Reason:\"%s\" Decay %.5f: Estimation: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n", nFeeRet, nBytes, nFeeNeeded, feeCalc.returnedTarget, feeCalc.desiredTarget, StringForFeeReason(feeCalc.reason), feeCalc.est.decay, @@ -3117,11 +3118,12 @@ bool CWallet::CreateTransaction( int& nChangePosInOut, bilingual_str& error, const CCoinControl& coin_control, + FeeCalculation& fee_calc_out, bool sign) { int nChangePosIn = nChangePosInOut; CTransactionRef tx2 = tx; - bool res = CreateTransactionInternal(vecSend, tx, nFeeRet, nChangePosInOut, error, coin_control, sign); + bool res = CreateTransactionInternal(vecSend, tx, nFeeRet, nChangePosInOut, error, coin_control, fee_calc_out, sign); // try with avoidpartialspends unless it's enabled already if (res && nFeeRet > 0 /* 0 means non-functional fee rate estimation */ && m_max_aps_fee > -1 && !coin_control.m_avoid_partial_spends) { CCoinControl tmp_cc = coin_control; @@ -3129,7 +3131,7 @@ bool CWallet::CreateTransaction( CAmount nFeeRet2; int nChangePosInOut2 = nChangePosIn; bilingual_str error2; // fired and forgotten; if an error occurs, we discard the results - if (CreateTransactionInternal(vecSend, tx2, nFeeRet2, nChangePosInOut2, error2, tmp_cc, sign)) { + if (CreateTransactionInternal(vecSend, tx2, nFeeRet2, nChangePosInOut2, error2, tmp_cc, fee_calc_out, sign)) { // if fee of this alternative one is within the range of the max fee, we use this one const bool use_aps = nFeeRet2 <= nFeeRet + m_max_aps_fee; WalletLogPrintf("Fee non-grouped = %lld, grouped = %lld, using %s\n", nFeeRet, nFeeRet2, use_aps ? "grouped" : "non-grouped"); diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index f15712dd0e..fb08cb4085 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -275,7 +275,7 @@ private: /** Constant used in hashBlock to indicate tx has been abandoned, only used at * serialization/deserialization to avoid ambiguity with conflicted. */ - static const uint256 ABANDON_HASH; + static constexpr const uint256& ABANDON_HASH = uint256::ONE; public: /** @@ -723,7 +723,7 @@ private: // ScriptPubKeyMan::GetID. In many cases it will be the hash of an internal structure std::map<uint256, std::unique_ptr<ScriptPubKeyMan>> m_spk_managers; - bool CreateTransactionInternal(const std::vector<CRecipient>& vecSend, CTransactionRef& tx, CAmount& nFeeRet, int& nChangePosInOut, bilingual_str& error, const CCoinControl& coin_control, bool sign); + bool CreateTransactionInternal(const std::vector<CRecipient>& vecSend, CTransactionRef& tx, CAmount& nFeeRet, int& nChangePosInOut, bilingual_str& error, const CCoinControl& coin_control, FeeCalculation& fee_calc_out, bool sign); public: /* @@ -974,7 +974,7 @@ public: * selected by SelectCoins(); Also create the change output, when needed * @note passing nChangePosInOut as -1 will result in setting a random position */ - bool CreateTransaction(const std::vector<CRecipient>& vecSend, CTransactionRef& tx, CAmount& nFeeRet, int& nChangePosInOut, bilingual_str& error, const CCoinControl& coin_control, bool sign = true); + bool CreateTransaction(const std::vector<CRecipient>& vecSend, CTransactionRef& tx, CAmount& nFeeRet, int& nChangePosInOut, bilingual_str& error, const CCoinControl& coin_control, FeeCalculation& fee_calc_out, bool sign = true); /** * Submit the transaction to the node's mempool and then relay to peers. * Should be called after CreateTransaction unless you want to abort diff --git a/src/zmq/zmqnotificationinterface.cpp b/src/zmq/zmqnotificationinterface.cpp index a7e9a34269..a2f994d7df 100644 --- a/src/zmq/zmqnotificationinterface.cpp +++ b/src/zmq/zmqnotificationinterface.cpp @@ -42,10 +42,8 @@ CZMQNotificationInterface* CZMQNotificationInterface::Create() for (const auto& entry : factories) { std::string arg("-zmq" + entry.first); - if (gArgs.IsArgSet(arg)) - { - const auto& factory = entry.second; - const std::string address = gArgs.GetArg(arg, ""); + const auto& factory = entry.second; + for (const std::string& address : gArgs.GetArgs(arg)) { std::unique_ptr<CZMQAbstractNotifier> notifier = factory(); notifier->SetType(entry.first); notifier->SetAddress(address); diff --git a/src/zmq/zmqpublishnotifier.cpp b/src/zmq/zmqpublishnotifier.cpp index a0e7a0a600..c0207f9dd6 100644 --- a/src/zmq/zmqpublishnotifier.cpp +++ b/src/zmq/zmqpublishnotifier.cpp @@ -180,7 +180,7 @@ bool CZMQAbstractPublishNotifier::SendZmqMessage(const char *command, const void bool CZMQPublishHashBlockNotifier::NotifyBlock(const CBlockIndex *pindex) { uint256 hash = pindex->GetBlockHash(); - LogPrint(BCLog::ZMQ, "zmq: Publish hashblock %s\n", hash.GetHex()); + LogPrint(BCLog::ZMQ, "zmq: Publish hashblock %s to %s\n", hash.GetHex(), this->address); char data[32]; for (unsigned int i = 0; i < 32; i++) data[31 - i] = hash.begin()[i]; @@ -190,7 +190,7 @@ bool CZMQPublishHashBlockNotifier::NotifyBlock(const CBlockIndex *pindex) bool CZMQPublishHashTransactionNotifier::NotifyTransaction(const CTransaction &transaction) { uint256 hash = transaction.GetHash(); - LogPrint(BCLog::ZMQ, "zmq: Publish hashtx %s\n", hash.GetHex()); + LogPrint(BCLog::ZMQ, "zmq: Publish hashtx %s to %s\n", hash.GetHex(), this->address); char data[32]; for (unsigned int i = 0; i < 32; i++) data[31 - i] = hash.begin()[i]; @@ -199,7 +199,7 @@ bool CZMQPublishHashTransactionNotifier::NotifyTransaction(const CTransaction &t bool CZMQPublishRawBlockNotifier::NotifyBlock(const CBlockIndex *pindex) { - LogPrint(BCLog::ZMQ, "zmq: Publish rawblock %s\n", pindex->GetBlockHash().GetHex()); + LogPrint(BCLog::ZMQ, "zmq: Publish rawblock %s to %s\n", pindex->GetBlockHash().GetHex(), this->address); const Consensus::Params& consensusParams = Params().GetConsensus(); CDataStream ss(SER_NETWORK, PROTOCOL_VERSION | RPCSerializationFlags()); @@ -221,7 +221,7 @@ bool CZMQPublishRawBlockNotifier::NotifyBlock(const CBlockIndex *pindex) bool CZMQPublishRawTransactionNotifier::NotifyTransaction(const CTransaction &transaction) { uint256 hash = transaction.GetHash(); - LogPrint(BCLog::ZMQ, "zmq: Publish rawtx %s\n", hash.GetHex()); + LogPrint(BCLog::ZMQ, "zmq: Publish rawtx %s to %s\n", hash.GetHex(), this->address); CDataStream ss(SER_NETWORK, PROTOCOL_VERSION | RPCSerializationFlags()); ss << transaction; return SendZmqMessage(MSG_RAWTX, &(*ss.begin()), ss.size()); @@ -232,7 +232,7 @@ bool CZMQPublishRawTransactionNotifier::NotifyTransaction(const CTransaction &tr bool CZMQPublishSequenceNotifier::NotifyBlockConnect(const CBlockIndex *pindex) { uint256 hash = pindex->GetBlockHash(); - LogPrint(BCLog::ZMQ, "zmq: Publish sequence block connect %s\n", hash.GetHex()); + LogPrint(BCLog::ZMQ, "zmq: Publish sequence block connect %s to %s\n", hash.GetHex(), this->address); char data[sizeof(uint256)+1]; for (unsigned int i = 0; i < sizeof(uint256); i++) data[sizeof(uint256) - 1 - i] = hash.begin()[i]; @@ -243,7 +243,7 @@ bool CZMQPublishSequenceNotifier::NotifyBlockConnect(const CBlockIndex *pindex) bool CZMQPublishSequenceNotifier::NotifyBlockDisconnect(const CBlockIndex *pindex) { uint256 hash = pindex->GetBlockHash(); - LogPrint(BCLog::ZMQ, "zmq: Publish sequence block disconnect %s\n", hash.GetHex()); + LogPrint(BCLog::ZMQ, "zmq: Publish sequence block disconnect %s to %s\n", hash.GetHex(), this->address); char data[sizeof(uint256)+1]; for (unsigned int i = 0; i < sizeof(uint256); i++) data[sizeof(uint256) - 1 - i] = hash.begin()[i]; @@ -254,7 +254,7 @@ bool CZMQPublishSequenceNotifier::NotifyBlockDisconnect(const CBlockIndex *pinde bool CZMQPublishSequenceNotifier::NotifyTransactionAcceptance(const CTransaction &transaction, uint64_t mempool_sequence) { uint256 hash = transaction.GetHash(); - LogPrint(BCLog::ZMQ, "zmq: Publish hashtx mempool acceptance %s\n", hash.GetHex()); + LogPrint(BCLog::ZMQ, "zmq: Publish hashtx mempool acceptance %s to %s\n", hash.GetHex(), this->address); unsigned char data[sizeof(uint256)+sizeof(mempool_sequence)+1]; for (unsigned int i = 0; i < sizeof(uint256); i++) data[sizeof(uint256) - 1 - i] = hash.begin()[i]; @@ -266,7 +266,7 @@ bool CZMQPublishSequenceNotifier::NotifyTransactionAcceptance(const CTransaction bool CZMQPublishSequenceNotifier::NotifyTransactionRemoval(const CTransaction &transaction, uint64_t mempool_sequence) { uint256 hash = transaction.GetHash(); - LogPrint(BCLog::ZMQ, "zmq: Publish hashtx mempool removal %s\n", hash.GetHex()); + LogPrint(BCLog::ZMQ, "zmq: Publish hashtx mempool removal %s to %s\n", hash.GetHex(), this->address); unsigned char data[sizeof(uint256)+sizeof(mempool_sequence)+1]; for (unsigned int i = 0; i < sizeof(uint256); i++) data[sizeof(uint256) - 1 - i] = hash.begin()[i]; |