From 81f0c184b52f9871c77ea14ccb028f0ce452f0d5 Mon Sep 17 00:00:00 2001 From: Reuben Yap Date: Sun, 30 Aug 2026 13:42:47 +0800 Subject: [PATCH 1/4] Qt: Fix translation source generation --- share/qt/extract_strings_qt.py | 8 ++++---- src/qt/CMakeLists.txt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/share/qt/extract_strings_qt.py b/share/qt/extract_strings_qt.py index 5492fdb8c5..37bc0aad42 100644 --- a/share/qt/extract_strings_qt.py +++ b/share/qt/extract_strings_qt.py @@ -77,13 +77,13 @@ def parse_po(text): #endif """) f.write('static const char UNUSED *bitcoin_strings[] = {\n') -f.write('QT_TRANSLATE_NOOP("bitcoin-core", "%s"),\n' % (os.getenv('PACKAGE_NAME'),)) -f.write('QT_TRANSLATE_NOOP("bitcoin-core", "%s"),\n' % (os.getenv('COPYRIGHT_HOLDERS'),)) +f.write('QT_TRANSLATE_NOOP("firo-core", "%s"),\n' % (os.getenv('PACKAGE_NAME'),)) +f.write('QT_TRANSLATE_NOOP("firo-core", "%s"),\n' % (os.getenv('COPYRIGHT_HOLDERS'),)) if os.getenv('COPYRIGHT_HOLDERS_SUBSTITUTION') != os.getenv('PACKAGE_NAME'): - f.write('QT_TRANSLATE_NOOP("bitcoin-core", "%s"),\n' % (os.getenv('COPYRIGHT_HOLDERS_SUBSTITUTION'),)) + f.write('QT_TRANSLATE_NOOP("firo-core", "%s"),\n' % (os.getenv('COPYRIGHT_HOLDERS_SUBSTITUTION'),)) messages.sort(key=operator.itemgetter(0)) for (msgid, msgstr) in messages: if msgid != EMPTY: - f.write('QT_TRANSLATE_NOOP("bitcoin-core", %s),\n' % ('\n'.join(msgid))) + f.write('QT_TRANSLATE_NOOP("firo-core", %s),\n' % ('\n'.join(msgid))) f.write('};\n') f.close() diff --git a/src/qt/CMakeLists.txt b/src/qt/CMakeLists.txt index 2f53b2e91b..6cd5d4671d 100644 --- a/src/qt/CMakeLists.txt +++ b/src/qt/CMakeLists.txt @@ -448,7 +448,7 @@ else() get_translatable_sources(qt_translatable_sources src/qt) file(GLOB ui_files ${CMAKE_CURRENT_SOURCE_DIR}/forms/*.ui) add_custom_target(translate - COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS} $ ${PROJECT_SOURCE_DIR}/share/qt/extract_strings_qt.py ${translatable_sources} + COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} "PACKAGE_NAME=${CLIENT_NAME}" "COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS}" "COPYRIGHT_HOLDERS_SUBSTITUTION=${CLIENT_NAME}" $ ${PROJECT_SOURCE_DIR}/share/qt/extract_strings_qt.py ${translatable_sources} COMMAND Qt6::lupdate -no-obsolete -I ${PROJECT_SOURCE_DIR}/src -locations relative ${CMAKE_CURRENT_SOURCE_DIR}/bitcoinstrings.cpp ${ui_files} ${qt_translatable_sources} -ts ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts COMMAND Qt6::lconvert -drop-translations -o ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf -i ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts COMMAND ${SED_EXECUTABLE} -i.old -e "s|source-language=\"en\" target-language=\"en\"|source-language=\"en\"|" -e "/<\\/target>/d" ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf From 8ecce232fac2c1cd1e916987aac4aa5482bb59f3 Mon Sep 17 00:00:00 2001 From: Reuben Yap Date: Sun, 30 Aug 2026 13:44:08 +0800 Subject: [PATCH 2/4] Qt: Refresh translation source catalog --- src/qt/bitcoinstrings.cpp | 268 +- src/qt/locale/bitcoin_en.ts | 6937 +++++++++++++++++++++++++---------- 2 files changed, 5075 insertions(+), 2130 deletions(-) diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index 6b4d5aff98..c53757b9d1 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -28,6 +28,9 @@ QT_TRANSLATE_NOOP("firo-core", "" "single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or " "a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times"), QT_TRANSLATE_NOOP("firo-core", "" +"Amount for private recipient %1% is too small to send after the fee has been " +"deducted"), +QT_TRANSLATE_NOOP("firo-core", "" "Amount for recipient %1% is too small to send after the fee has been deducted"), QT_TRANSLATE_NOOP("firo-core", "" "Bind to given address and always listen on it. Use [host]:port notation for " @@ -63,6 +66,9 @@ QT_TRANSLATE_NOOP("firo-core", "" "Distributed under the MIT software license, see the accompanying file %s or " "%s"), QT_TRANSLATE_NOOP("firo-core", "" +"Do not check for masternode payout when handling listtransactions, " +"listsinceblock and gettransaction calls (improves performance)"), +QT_TRANSLATE_NOOP("firo-core", "" "Do not keep transactions in the mempool longer than hours (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "" "Equivalent bytes per sigop in transactions for relay and mining (default: %u)"), @@ -74,18 +80,18 @@ QT_TRANSLATE_NOOP("firo-core", "" QT_TRANSLATE_NOOP("firo-core", "" "Error: Listening for incoming connections failed (listen returned error %s)"), QT_TRANSLATE_NOOP("firo-core", "" +"Error: The transaction was rejected after %u of %u mint transactions were " +"already sent. Do not retry the whole mint."), +QT_TRANSLATE_NOOP("firo-core", "" "Error: The transaction was rejected! This might happen if some of the coins " "in your wallet were already spent, such as if you used a copy of wallet.dat " "and coins were spent in the copy but not marked as spent here."), QT_TRANSLATE_NOOP("firo-core", "" -"Error: This transaction requires a transaction fee of at least %s because of " -"its amount, complexity, or use of recently received funds!"), -QT_TRANSLATE_NOOP("firo-core", "" "Execute command when a relevant alert is received or we see a really long " "fork (%s in cmd is replaced by message)"), QT_TRANSLATE_NOOP("firo-core", "" "Execute command when a wallet transaction changes (%s in cmd is replaced by " -"TxID)"), +"TxID, %t is replaced by transaction type: 'spark' or 'regular')"), QT_TRANSLATE_NOOP("firo-core", "" "Execute command when the best block changes (%s in cmd is replaced by block " "hash)"), @@ -106,16 +112,14 @@ QT_TRANSLATE_NOOP("firo-core", "" "Force relay of transactions from whitelisted peers even if they violate " "local relay policy (default: %d)"), QT_TRANSLATE_NOOP("firo-core", "" -"Found unconfirmed denominated outputs, will wait till they confirm to " -"continue."), -QT_TRANSLATE_NOOP("firo-core", "" "Has to have at least two mint coins with at least 1 confirmation in order to " "spend a coin"), QT_TRANSLATE_NOOP("firo-core", "" "How thorough the block verification of -checkblocks is (0-4, default: %u)"), QT_TRANSLATE_NOOP("firo-core", "" -"If is not supplied or if = 1, output all debugging " -"information."), +"If is not supplied or is 1 or all, output all debugging " +"information. The value none resets categories specified before it. The value " +"0 retains Firo's historical behavior and disables all logging except errors."), QT_TRANSLATE_NOOP("firo-core", "" "If paytxfee is not set, include enough fee so transactions begin " "confirmation on average within n blocks (default: %u)"), @@ -124,12 +128,21 @@ QT_TRANSLATE_NOOP("firo-core", "" "potentially skip their script verification (0 to verify all, default: %s, " "testnet: %s)"), QT_TRANSLATE_NOOP("firo-core", "" +"In case of sync/reindex verifies privacy (Spark) proofs with batch " +"verification, default: true"), +QT_TRANSLATE_NOOP("firo-core", "" +"Interval in seconds for rebroadcasting InstantSend-locked mempool " +"transactions to peers (0 = disabled, default: %u)"), +QT_TRANSLATE_NOOP("firo-core", "" "Invalid amount for -maxtxfee=: '%s' (must be at least the minrelay " "fee of %s to prevent stuck transactions)"), QT_TRANSLATE_NOOP("firo-core", "" "Maintain a full transaction index, used by the getrawtransaction rpc call " "(default: %u)"), QT_TRANSLATE_NOOP("firo-core", "" +"Make automatic outbound connections only to network (ipv4, ipv6 or " +"onion). Can be specified multiple times to allow multiple networks."), +QT_TRANSLATE_NOOP("firo-core", "" "Maximum allowed median peer time offset adjustment. Local perspective of " "time may be influenced by peers forward or backward by this amount. " "(default: %u seconds)"), @@ -148,23 +161,23 @@ QT_TRANSLATE_NOOP("firo-core", "" QT_TRANSLATE_NOOP("firo-core", "" "Optionally add the \"W\" flag to produce a pay-to-witness-script-hash output"), QT_TRANSLATE_NOOP("firo-core", "" +"Outbound connections restricted to Tor (-onlynet=onion) but the proxy for " +"reaching the Tor network is explicitly forbidden: -onion=0"), +QT_TRANSLATE_NOOP("firo-core", "" +"Outbound connections restricted to Tor (-onlynet=onion) but the proxy for " +"reaching the Tor network is not provided: none of -proxy, -onion, -torsetup " +"or -listenonion (with a usable -torcontrol) is given."), +QT_TRANSLATE_NOOP("firo-core", "" "Output debugging information (default: %u, supplying is optional)"), QT_TRANSLATE_NOOP("firo-core", "" "Output only the hex-encoded transaction id of the resultant transaction."), QT_TRANSLATE_NOOP("firo-core", "" -"Please add txindex=1 to your configuration file manually.\n" -"\n" -"Omni Core will now shutdown."), -QT_TRANSLATE_NOOP("firo-core", "" "Please check that your computer's date and time are correct! If your clock " "is wrong, %s will not work properly."), QT_TRANSLATE_NOOP("firo-core", "" "Please contribute if you find %s useful. Visit %s for further information " "about the software."), QT_TRANSLATE_NOOP("firo-core", "" -"PrivateSend uses exact denominated amounts to send funds, you might simply " -"need to anonymize some more coins."), -QT_TRANSLATE_NOOP("firo-core", "" "Prune configured below the minimum of %d MiB. Please use a higher number."), QT_TRANSLATE_NOOP("firo-core", "" "Prune: last wallet synchronisation goes beyond pruned data. You need to -" @@ -202,22 +215,40 @@ QT_TRANSLATE_NOOP("firo-core", "" "Sets the serialization of raw transaction or block hex returned in non-" "verbose mode, non-segwit(0) or segwit(1) (default: %d)"), QT_TRANSLATE_NOOP("firo-core", "" +"Spark Coin Control temporarily supports selecting at most one coin. Clear " +"the selection to let the wallet split the payment automatically."), +QT_TRANSLATE_NOOP("firo-core", "" +"Spark batch verification failed. The invalid spend transactions are listed " +"in debug.log. Restart the node: batching is disabled and a reindex is " +"started automatically so chainstate is rebuilt and Spark proofs are checked " +"block by block."), +QT_TRANSLATE_NOOP("firo-core", "" +"Spark multi-input spends are temporarily disabled. No single available Spark " +"coin can fund this transaction."), +QT_TRANSLATE_NOOP("firo-core", "" +"Spark spend batch failed after committing %u of %u transactions: %s. Do not " +"retry the whole payment. Already sent: %s"), +QT_TRANSLATE_NOOP("firo-core", "" +"Subtracting the fee from the amount is temporarily unavailable when a Spark " +"spend must be split across multiple transactions."), +QT_TRANSLATE_NOOP("firo-core", "" "Support filtering of blocks and transaction with bloom filters (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "" +"The available Spark coins cannot cover the amount and the required " +"transaction fees."), +QT_TRANSLATE_NOOP("firo-core", "" "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"), QT_TRANSLATE_NOOP("firo-core", "" -"The file may be write protected or you may not have the required permissions " -"to edit it.\n"), -QT_TRANSLATE_NOOP("firo-core", "" "The transaction amount is too small to send after the fee has been deducted"), QT_TRANSLATE_NOOP("firo-core", "" "This is a pre-release test build - use at your own risk - do not use for " "mining or merchant applications"), QT_TRANSLATE_NOOP("firo-core", "" -"This is the transaction fee you may pay when fee estimates are not available."), +"This product includes Masternodes software developed by the Dash Core " +"developers %s."), QT_TRANSLATE_NOOP("firo-core", "" "This product includes software developed by the OpenSSL Project for use in " "the OpenSSL Toolkit %s and cryptographic software written by Eric Young and " @@ -226,17 +257,12 @@ QT_TRANSLATE_NOOP("firo-core", "" "Total length of network version string (%i) exceeds maximum length (%i). " "Reduce the number or size of uacomments."), QT_TRANSLATE_NOOP("firo-core", "" +"Transaction is too large (size limit: 250Kb). Select less inputs or " +"consolidate your UTXOs"), +QT_TRANSLATE_NOOP("firo-core", "" "Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = " "no limit (default: %d)"), QT_TRANSLATE_NOOP("firo-core", "" -"Unable to locate enough PrivateSend denominated funds for this transaction."), -QT_TRANSLATE_NOOP("firo-core", "" -"Unable to locate enough PrivateSend non-denominated funds for this " -"transaction that are not equal 1000 FIRO."), -QT_TRANSLATE_NOOP("firo-core", "" -"Unable to locate enough funds for this transaction that are not equal 1000 " -"FIRO."), -QT_TRANSLATE_NOOP("firo-core", "" "Unable to rewind the database to a pre-fork state. You will need to " "redownload the blockchain"), QT_TRANSLATE_NOOP("firo-core", "" @@ -246,6 +272,12 @@ QT_TRANSLATE_NOOP("firo-core", "" "Unsupported argument -whitelistalwaysrelay ignored, use -whitelistrelay and/" "or -whitelistforcerelay."), QT_TRANSLATE_NOOP("firo-core", "" +"Unsupported logging level or category %s. Valid levels are: %s. Valid " +"categories are: %s."), +QT_TRANSLATE_NOOP("firo-core", "" +"Use Mnemonic code for generating deterministic keys. Only has effect during " +"wallet creation/first start"), +QT_TRANSLATE_NOOP("firo-core", "" "Use UPnP to map the listening port (default: 1 when listening and no -proxy)"), QT_TRANSLATE_NOOP("firo-core", "" "Use hierarchical deterministic key generation (HD) after BIP32. Only has " @@ -254,21 +286,28 @@ QT_TRANSLATE_NOOP("firo-core", "" "Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: " "%s)"), QT_TRANSLATE_NOOP("firo-core", "" +"Use this argument when you want to keep additional data in block index for " +"mobile api, default: false"), +QT_TRANSLATE_NOOP("firo-core", "" +"User defined mnemonic for HD wallet (bip39). Only has effect during wallet " +"creation/first start (default: randomly generated)"), +QT_TRANSLATE_NOOP("firo-core", "" +"User defined mnemonic passphrase for HD wallet (BIP39). Only has effect " +"during wallet creation/first start (default: empty string)"), +QT_TRANSLATE_NOOP("firo-core", "" +"User defined seed for HD wallet (should be in hex). Only has effect during " +"wallet creation/first start (default: randomly generated)"), +QT_TRANSLATE_NOOP("firo-core", "" "Username and hashed password for JSON-RPC connections. The field " "comes in the format: :$. A canonical python script is " "included in share/rpcuser. The client then connects normally using the " "rpcuser=/rpcpassword= pair of arguments. This option can " "be specified multiple times"), QT_TRANSLATE_NOOP("firo-core", "" -"WARNING! Failed to replenish keypool, please unlock your wallet to do so."), -QT_TRANSLATE_NOOP("firo-core", "" "Wallet is locked, can't replenish keypool! Automatic backups and mixing are " "disabled, please unlock your wallet to replenish keypool."), QT_TRANSLATE_NOOP("firo-core", "" "Wallet will not create transactions that violate mempool chain limits " -"(default: %u"), -QT_TRANSLATE_NOOP("firo-core", "" -"Wallet will not create transactions that violate mempool chain limits " "(default: %u)"), QT_TRANSLATE_NOOP("firo-core", "" "Warning: The network does not appear to fully agree! Some miners appear to " @@ -284,40 +323,31 @@ QT_TRANSLATE_NOOP("firo-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("firo-core", "" -"Warning: incorrect parameter -walletbackupsdir, path must exist! Using " -"default path."), -QT_TRANSLATE_NOOP("firo-core", "" "Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or CIDR " "notated network (e.g. 1.2.3.0/24). Can be specified multiple times."), QT_TRANSLATE_NOOP("firo-core", "" "Whitelisted peers cannot be DoS banned and their transactions are always " "relayed, even if they are already in the mempool, useful e.g. for a gateway"), QT_TRANSLATE_NOOP("firo-core", "" -"You must specify a znodeprivkey in the configuration. Please see " +"You are starting in lite mode, all Dash-specific functionality is disabled."), +QT_TRANSLATE_NOOP("firo-core", "" +"You must specify a znodeblsprivkey in the configuration. Please see " "documentation for help."), QT_TRANSLATE_NOOP("firo-core", "" "You need to rebuild the database using -reindex to go back to unpruned " "mode. This will redownload the entire blockchain"), QT_TRANSLATE_NOOP("firo-core", "" "You need to rebuild the database using -reindex-chainstate to change -txindex"), -QT_TRANSLATE_NOOP("firo-core", "" -"it has to have at least two mint coins with at least 2 confirmation in order " -"to spend a coin"), -QT_TRANSLATE_NOOP("firo-core", "" -"znodeaddr option is deprecated. Please use znode.conf to manage your remote " -"znodes."), -QT_TRANSLATE_NOOP("firo-core", "%s - %d confirmations"), QT_TRANSLATE_NOOP("firo-core", "%s Daemon"), QT_TRANSLATE_NOOP("firo-core", "%s RPC client version"), QT_TRANSLATE_NOOP("firo-core", "%s corrupt, salvage failed"), -QT_TRANSLATE_NOOP("firo-core", "%s is set very high!"), QT_TRANSLATE_NOOP("firo-core", "%s firo-tx utility version"), -QT_TRANSLATE_NOOP("firo-core", "(%d could be used only on mainnet)"), QT_TRANSLATE_NOOP("firo-core", "(default: %s)"), QT_TRANSLATE_NOOP("firo-core", "(default: %u)"), -QT_TRANSLATE_NOOP("firo-core", "(must be %d for mainnet)"), QT_TRANSLATE_NOOP("firo-core", "-maxmempool must be at least %d MB"), +QT_TRANSLATE_NOOP("firo-core", "-wallet parameter must only specify a filename (not a path)"), QT_TRANSLATE_NOOP("firo-core", " can be:"), +QT_TRANSLATE_NOOP("firo-core", "A Spark payment may use at most %u transactions."), QT_TRANSLATE_NOOP("firo-core", "Accept command line and JSON-RPC commands"), QT_TRANSLATE_NOOP("firo-core", "Accept public REST requests (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Add Pay To n-of-m Multi-sig output to TX. n = REQUIRED, m = PUBKEYS"), @@ -329,29 +359,27 @@ QT_TRANSLATE_NOOP("firo-core", "Add pay-to-pubkey output to TX"), QT_TRANSLATE_NOOP("firo-core", "Add raw script output to TX"), QT_TRANSLATE_NOOP("firo-core", "Add zero or more signatures to transaction"), QT_TRANSLATE_NOOP("firo-core", "Allow DNS lookups for -addnode, -seednode and -connect"), -QT_TRANSLATE_NOOP("firo-core", "Already have that input."), QT_TRANSLATE_NOOP("firo-core", "Always query for peer addresses via DNS lookup (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Amount for recipient %1% is too small to pay the fee"), QT_TRANSLATE_NOOP("firo-core", "Amount for recipient %1% is too small"), -QT_TRANSLATE_NOOP("firo-core", "Amount limit is exceed max money"), QT_TRANSLATE_NOOP("firo-core", "Anonymous communication with TOR - Quickstart (default: %d)"), QT_TRANSLATE_NOOP("firo-core", "Append comment to the user agent string"), QT_TRANSLATE_NOOP("firo-core", "Attempt to recover private keys from a corrupt wallet on startup"), -QT_TRANSLATE_NOOP("firo-core", "Automatic backups disabled"), QT_TRANSLATE_NOOP("firo-core", "Automatically create Tor hidden service (default: %d)"), QT_TRANSLATE_NOOP("firo-core", "Bad change address"), QT_TRANSLATE_NOOP("firo-core", "Block creation options:"), QT_TRANSLATE_NOOP("firo-core", "Block index is outdated, reindex required\n"), -QT_TRANSLATE_NOOP("firo-core", "Can not choose coins within limit."), -QT_TRANSLATE_NOOP("firo-core", "Can't find random Znode."), -QT_TRANSLATE_NOOP("firo-core", "Can't mix while sync in progress."), -QT_TRANSLATE_NOOP("firo-core", "Can't mix: no compatible inputs found!"), QT_TRANSLATE_NOOP("firo-core", "Cannot downgrade wallet"), QT_TRANSLATE_NOOP("firo-core", "Cannot resolve -%s address: '%s'"), QT_TRANSLATE_NOOP("firo-core", "Cannot write default address"), +QT_TRANSLATE_NOOP("firo-core", "Cannot write default spark address"), +QT_TRANSLATE_NOOP("firo-core", "Chain height changed during Spark name construction; retry"), +QT_TRANSLATE_NOOP("firo-core", "Chain height changed during Spark transaction construction; retry"), QT_TRANSLATE_NOOP("firo-core", "Chain selection options:"), +QT_TRANSLATE_NOOP("firo-core", "Chain tip changed during Spark name construction; retry"), +QT_TRANSLATE_NOOP("firo-core", "Chain tip changed during Spark transaction construction; retry"), +QT_TRANSLATE_NOOP("firo-core", "Chain tip is unavailable during Spark name construction"), QT_TRANSLATE_NOOP("firo-core", "Change index out of range"), -QT_TRANSLATE_NOOP("firo-core", "Collateral not valid."), QT_TRANSLATE_NOOP("firo-core", "Commands:"), QT_TRANSLATE_NOOP("firo-core", "Connect through SOCKS5 proxy"), QT_TRANSLATE_NOOP("firo-core", "Connect to JSON-RPC on (default: %u or testnet: %u)"), @@ -359,7 +387,7 @@ QT_TRANSLATE_NOOP("firo-core", "Connect to a node to retrieve peer addresses, an QT_TRANSLATE_NOOP("firo-core", "Connection options:"), QT_TRANSLATE_NOOP("firo-core", "Copyright (C) %i-%i"), QT_TRANSLATE_NOOP("firo-core", "Corrupted block database detected"), -QT_TRANSLATE_NOOP("firo-core", "Could not parse znode.conf"), +QT_TRANSLATE_NOOP("firo-core", "Could not open debug log file %s"), QT_TRANSLATE_NOOP("firo-core", "Create hex-encoded Firo transaction"), QT_TRANSLATE_NOOP("firo-core", "Create new, empty TX."), QT_TRANSLATE_NOOP("firo-core", "Debugging/Testing options:"), @@ -368,14 +396,12 @@ QT_TRANSLATE_NOOP("firo-core", "Delete output N from TX"), QT_TRANSLATE_NOOP("firo-core", "Do not load the wallet and disable wallet RPC calls"), QT_TRANSLATE_NOOP("firo-core", "Do you want to rebuild the block database now?"), QT_TRANSLATE_NOOP("firo-core", "Done loading"), -QT_TRANSLATE_NOOP("firo-core", "ERROR! Failed to create automatic backup"), +QT_TRANSLATE_NOOP("firo-core", "Either recipients or newMints has to be nonempty."), QT_TRANSLATE_NOOP("firo-core", "Enable publish hash block in
"), QT_TRANSLATE_NOOP("firo-core", "Enable publish hash transaction in
"), QT_TRANSLATE_NOOP("firo-core", "Enable publish raw block in
"), QT_TRANSLATE_NOOP("firo-core", "Enable publish raw transaction in
"), QT_TRANSLATE_NOOP("firo-core", "Enable transaction replacement in the memory pool (default: %u)"), -QT_TRANSLATE_NOOP("firo-core", "Entries are full."), -QT_TRANSLATE_NOOP("firo-core", "Error connecting to Znode."), QT_TRANSLATE_NOOP("firo-core", "Error initializing block database"), QT_TRANSLATE_NOOP("firo-core", "Error initializing wallet database environment %s!"), QT_TRANSLATE_NOOP("firo-core", "Error loading %s"), @@ -385,95 +411,67 @@ QT_TRANSLATE_NOOP("firo-core", "Error loading %s: You can't disable HD on a alre QT_TRANSLATE_NOOP("firo-core", "Error loading block database"), QT_TRANSLATE_NOOP("firo-core", "Error opening block database"), QT_TRANSLATE_NOOP("firo-core", "Error reading from database, shutting down."), +QT_TRANSLATE_NOOP("firo-core", "Error upgrading chainstate database"), QT_TRANSLATE_NOOP("firo-core", "Error"), QT_TRANSLATE_NOOP("firo-core", "Error: A fatal internal error occurred, see debug.log for details"), QT_TRANSLATE_NOOP("firo-core", "Error: Disk space is low!"), -QT_TRANSLATE_NOOP("firo-core", "Error: It cannot delete coin serial number in wallet"), QT_TRANSLATE_NOOP("firo-core", "Error: Wallet locked, unable to create transaction!"), +QT_TRANSLATE_NOOP("firo-core", "Fail to generate mints, "), QT_TRANSLATE_NOOP("firo-core", "Failed to create backup, error: %s"), QT_TRANSLATE_NOOP("firo-core", "Failed to delete backup, error: %s"), QT_TRANSLATE_NOOP("firo-core", "Failed to listen on any port. Use -listen=0 if you want this."), -QT_TRANSLATE_NOOP("firo-core", "Failed to parse host:port string"), -QT_TRANSLATE_NOOP("firo-core", "Failed to write coin serial number into wallet"), QT_TRANSLATE_NOOP("firo-core", "Fee (in %s/kB) to add to transactions you send (default: %s)"), -QT_TRANSLATE_NOOP("firo-core", "Found enough users, signing ( waiting %s )"), -QT_TRANSLATE_NOOP("firo-core", "Found enough users, signing ..."), +QT_TRANSLATE_NOOP("firo-core", "Firo Core"), QT_TRANSLATE_NOOP("firo-core", "Get help for a command"), QT_TRANSLATE_NOOP("firo-core", "How many blocks to check at startup (default: %u, 0 = all)"), QT_TRANSLATE_NOOP("firo-core", "Importing..."), QT_TRANSLATE_NOOP("firo-core", "Imports blocks from external blk000??.dat file on startup"), QT_TRANSLATE_NOOP("firo-core", "Include IP addresses in debug output (default: %u)"), -QT_TRANSLATE_NOOP("firo-core", "Incompatible mode."), -QT_TRANSLATE_NOOP("firo-core", "Incompatible version."), QT_TRANSLATE_NOOP("firo-core", "Incorrect or no genesis block found. Wrong datadir for network?"), QT_TRANSLATE_NOOP("firo-core", "Information"), QT_TRANSLATE_NOOP("firo-core", "Initialization sanity check failed. %s is shutting down."), -QT_TRANSLATE_NOOP("firo-core", "Input is not valid."), QT_TRANSLATE_NOOP("firo-core", "Insufficient funds"), -QT_TRANSLATE_NOOP("firo-core", "Insufficient funds."), QT_TRANSLATE_NOOP("firo-core", "Invalid -onion address: '%s'"), QT_TRANSLATE_NOOP("firo-core", "Invalid -proxy address: '%s'"), -QT_TRANSLATE_NOOP("firo-core", "Invalid Firo address"), -QT_TRANSLATE_NOOP("firo-core", "Invalid amount for -%s=: '%s'"), +QT_TRANSLATE_NOOP("firo-core", "Invalid Spark spend amount."), QT_TRANSLATE_NOOP("firo-core", "Invalid amount for -fallbackfee=: '%s'"), QT_TRANSLATE_NOOP("firo-core", "Invalid amount for -mininput=: '%s'"), QT_TRANSLATE_NOOP("firo-core", "Invalid amount for -paytxfee=: '%s' (must be at least %s)"), -QT_TRANSLATE_NOOP("firo-core", "Invalid amount"), +QT_TRANSLATE_NOOP("firo-core", "Invalid characters in -wallet filename"), QT_TRANSLATE_NOOP("firo-core", "Invalid netmask specified in -whitelist: '%s'"), -QT_TRANSLATE_NOOP("firo-core", "Invalid port detected in znode.conf"), -QT_TRANSLATE_NOOP("firo-core", "Invalid script detected."), +QT_TRANSLATE_NOOP("firo-core", "Invalid spark address"), +QT_TRANSLATE_NOOP("firo-core", "Invalid znodeblsprivkey. Please see documentation."), QT_TRANSLATE_NOOP("firo-core", "Keep at most unconnectable transactions in memory (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Keep the transaction memory pool below megabytes (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Keypool ran out, please call keypoolrefill first"), -QT_TRANSLATE_NOOP("firo-core", "Last PrivateSend was too recent."), -QT_TRANSLATE_NOOP("firo-core", "Last successful PrivateSend action was too recent."), -QT_TRANSLATE_NOOP("firo-core", "Line: %d"), QT_TRANSLATE_NOOP("firo-core", "List commands"), QT_TRANSLATE_NOOP("firo-core", "Listen for JSON-RPC connections on (default: %u or testnet: %u)"), QT_TRANSLATE_NOOP("firo-core", "Listen for connections on (default: %u or testnet: %u)"), QT_TRANSLATE_NOOP("firo-core", "Load JSON file FILENAME into register NAME"), -QT_TRANSLATE_NOOP("firo-core", "Loading Znode payment cache..."), +QT_TRANSLATE_NOOP("firo-core", "Loading Spark wallet..."), QT_TRANSLATE_NOOP("firo-core", "Loading addresses..."), QT_TRANSLATE_NOOP("firo-core", "Loading banlist..."), QT_TRANSLATE_NOOP("firo-core", "Loading block index..."), -QT_TRANSLATE_NOOP("firo-core", "Loading fulfilled requests cache..."), +QT_TRANSLATE_NOOP("firo-core", "Loading wallet... (%d transactions)"), QT_TRANSLATE_NOOP("firo-core", "Loading wallet..."), -QT_TRANSLATE_NOOP("firo-core", "Loading znode cache..."), QT_TRANSLATE_NOOP("firo-core", "Location of the auth cookie (default: data dir)"), -QT_TRANSLATE_NOOP("firo-core", "Lock is already in place."), QT_TRANSLATE_NOOP("firo-core", "Maintain at most connections to peers (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Make the wallet broadcast transactions"), QT_TRANSLATE_NOOP("firo-core", "Maximum per-connection receive buffer, *1000 bytes (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Maximum per-connection send buffer, *1000 bytes (default: %u)"), -QT_TRANSLATE_NOOP("firo-core", "Missing input transaction information."), -QT_TRANSLATE_NOOP("firo-core", "Mixing in progress..."), QT_TRANSLATE_NOOP("firo-core", "Need to specify a port with -whitebind: '%s'"), -QT_TRANSLATE_NOOP("firo-core", "No Znodes detected."), -QT_TRANSLATE_NOOP("firo-core", "No compatible Znode found."), -QT_TRANSLATE_NOOP("firo-core", "No errors detected."), -QT_TRANSLATE_NOOP("firo-core", "No matching denominations found for mixing."), -QT_TRANSLATE_NOOP("firo-core", "No recipients"), +QT_TRANSLATE_NOOP("firo-core", "No Spark spend recipients were provided."), +QT_TRANSLATE_NOOP("firo-core", "No such coin in set"), QT_TRANSLATE_NOOP("firo-core", "Node relay options:"), -QT_TRANSLATE_NOOP("firo-core", "Non-standard public key detected."), -QT_TRANSLATE_NOOP("firo-core", "Not compatible with existing transactions."), +QT_TRANSLATE_NOOP("firo-core", "Not enough fee estimated"), QT_TRANSLATE_NOOP("firo-core", "Not enough file descriptors available."), -QT_TRANSLATE_NOOP("firo-core", "Not enough funds to anonymize."), -QT_TRANSLATE_NOOP("firo-core", "Not in the Znode list."), -QT_TRANSLATE_NOOP("firo-core", "One of minted coin does not found in the chain"), -QT_TRANSLATE_NOOP("firo-core", "One of the minted coin is invalid"), -QT_TRANSLATE_NOOP("firo-core", "Only connect to nodes in network (ipv4, ipv6 or onion)"), QT_TRANSLATE_NOOP("firo-core", "Options:"), QT_TRANSLATE_NOOP("firo-core", "Pass named instead of positional arguments (default: %s)"), QT_TRANSLATE_NOOP("firo-core", "Password for JSON-RPC connections"), -QT_TRANSLATE_NOOP("firo-core", "Port: %d"), QT_TRANSLATE_NOOP("firo-core", "Prepend debug output with timestamp (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Print this help message and exit"), QT_TRANSLATE_NOOP("firo-core", "Print version and exit"), -QT_TRANSLATE_NOOP("firo-core", "PrivateSend is idle."), -QT_TRANSLATE_NOOP("firo-core", "PrivateSend request complete:"), -QT_TRANSLATE_NOOP("firo-core", "PrivateSend request incomplete:"), -QT_TRANSLATE_NOOP("firo-core", "Problem with coin selection for re-mint while spending."), -QT_TRANSLATE_NOOP("firo-core", "Problem with coin selection for spend."), +QT_TRANSLATE_NOOP("firo-core", "Private recipient has invalid amount"), QT_TRANSLATE_NOOP("firo-core", "Prune cannot be configured with a negative value."), QT_TRANSLATE_NOOP("firo-core", "Prune mode is incompatible with -txindex."), QT_TRANSLATE_NOOP("firo-core", "Pruning blockstore..."), @@ -485,22 +483,19 @@ QT_TRANSLATE_NOOP("firo-core", "Reducing -maxconnections from %d to %d, because QT_TRANSLATE_NOOP("firo-core", "Register Commands:"), QT_TRANSLATE_NOOP("firo-core", "Relay and mine data carrier transactions (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Relay non-P2SH multisig (default: %u)"), -QT_TRANSLATE_NOOP("firo-core", "Required amount exceed value spend limit"), -QT_TRANSLATE_NOOP("firo-core", "The required amount exceeds spend limit"), QT_TRANSLATE_NOOP("firo-core", "Rescan the block chain for missing wallet transactions on startup"), QT_TRANSLATE_NOOP("firo-core", "Rescanning..."), QT_TRANSLATE_NOOP("firo-core", "Rewinding blocks..."), QT_TRANSLATE_NOOP("firo-core", "Run in the background as a daemon and accept commands"), QT_TRANSLATE_NOOP("firo-core", "See signrawtransaction docs for format of sighash flags, JSON objects."), QT_TRANSLATE_NOOP("firo-core", "Select JSON output"), +QT_TRANSLATE_NOOP("firo-core", "Selected Spark cover set is not yet bound to a canonical state hash"), QT_TRANSLATE_NOOP("firo-core", "Send command to %s (with named arguments)"), QT_TRANSLATE_NOOP("firo-core", "Send command to %s"), QT_TRANSLATE_NOOP("firo-core", "Send commands to node running on (default: %s)"), QT_TRANSLATE_NOOP("firo-core", "Send trace/debug info to console instead of debug.log file"), QT_TRANSLATE_NOOP("firo-core", "Send transactions as zero-fee transactions if possible (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Send transactions with full-RBF opt-in enabled (default: %u)"), -QT_TRANSLATE_NOOP("firo-core", "Session not complete!"), -QT_TRANSLATE_NOOP("firo-core", "Session timed out."), QT_TRANSLATE_NOOP("firo-core", "Set TX lock time to N"), QT_TRANSLATE_NOOP("firo-core", "Set TX version to N"), QT_TRANSLATE_NOOP("firo-core", "Set database cache size in megabytes (%d to %d, default: %d)"), @@ -512,57 +507,66 @@ QT_TRANSLATE_NOOP("firo-core", "Set the number of threads to service RPC calls ( QT_TRANSLATE_NOOP("firo-core", "Show all debugging options (usage: --help -help-debug)"), QT_TRANSLATE_NOOP("firo-core", "Shrink debug.log file on client startup (default: 1 when no -debug)"), QT_TRANSLATE_NOOP("firo-core", "Signing transaction failed"), +QT_TRANSLATE_NOOP("firo-core", "Spark V2 spends are limited to %1% inputs"), +QT_TRANSLATE_NOOP("firo-core", "Spark address doesn't belong to the wallet"), +QT_TRANSLATE_NOOP("firo-core", "Spark coin selection changed during transaction construction; retry"), +QT_TRANSLATE_NOOP("firo-core", "Spark fee estimate did not match the wallet (planned %s, wallet %s)."), +QT_TRANSLATE_NOOP("firo-core", "Spark name transaction size is out of range"), +QT_TRANSLATE_NOOP("firo-core", "Spark shielded output limit exceeded."), +QT_TRANSLATE_NOOP("firo-core", "Spark spend amount is out of range"), +QT_TRANSLATE_NOOP("firo-core", "Spark spend amount plus fee is out of range"), +QT_TRANSLATE_NOOP("firo-core", "Spark spend fee is out of range"), +QT_TRANSLATE_NOOP("firo-core", "Spark spend output amount is out of range"), +QT_TRANSLATE_NOOP("firo-core", "Spark spend size estimate is out of range"), +QT_TRANSLATE_NOOP("firo-core", "Spark transaction fee is too high."), +QT_TRANSLATE_NOOP("firo-core", "Spark transactions are disabled at the moment"), QT_TRANSLATE_NOOP("firo-core", "Specify configuration file (default: %s)"), QT_TRANSLATE_NOOP("firo-core", "Specify connection timeout in milliseconds (minimum: 1, default: %d)"), QT_TRANSLATE_NOOP("firo-core", "Specify data directory"), QT_TRANSLATE_NOOP("firo-core", "Specify pid file (default: %s)"), QT_TRANSLATE_NOOP("firo-core", "Specify wallet file (within data directory)"), QT_TRANSLATE_NOOP("firo-core", "Specify your own public address"), +QT_TRANSLATE_NOOP("firo-core", "Spend to transparent address limit exceeded."), QT_TRANSLATE_NOOP("firo-core", "Spend unconfirmed change when sending transactions (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Start %s Daemon"), QT_TRANSLATE_NOOP("firo-core", "Starting network threads..."), -QT_TRANSLATE_NOOP("firo-core", "Submitted following entries to znode: %u / %d"), -QT_TRANSLATE_NOOP("firo-core", "Submitted to znode, waiting for more entries ( %u / %d ) %s"), -QT_TRANSLATE_NOOP("firo-core", "Submitted to znode, waiting in queue %s"), QT_TRANSLATE_NOOP("firo-core", "Synchronization failed"), QT_TRANSLATE_NOOP("firo-core", "Synchronization finished"), QT_TRANSLATE_NOOP("firo-core", "Synchronization pending..."), -QT_TRANSLATE_NOOP("firo-core", "Synchronizing znode payments..."), -QT_TRANSLATE_NOOP("firo-core", "Synchronizing znodes..."), +QT_TRANSLATE_NOOP("firo-core", "Synchronizing blockchain..."), +QT_TRANSLATE_NOOP("firo-core", "Synchronizing governance objects..."), QT_TRANSLATE_NOOP("firo-core", "The source code is available from %s."), -QT_TRANSLATE_NOOP("firo-core", "The spend coin transaction failed to verify"), QT_TRANSLATE_NOOP("firo-core", "The transaction amount is too small to pay the fee"), QT_TRANSLATE_NOOP("firo-core", "The wallet will avoid paying less than the minimum relay fee."), QT_TRANSLATE_NOOP("firo-core", "This command requires JSON registers:"), QT_TRANSLATE_NOOP("firo-core", "This help message"), QT_TRANSLATE_NOOP("firo-core", "This is experimental software."), -QT_TRANSLATE_NOOP("firo-core", "This is not a Znode."), QT_TRANSLATE_NOOP("firo-core", "This is the minimum transaction fee you pay on every transaction."), -QT_TRANSLATE_NOOP("firo-core", "This is the transaction fee you will pay if you send a transaction."), QT_TRANSLATE_NOOP("firo-core", "Threshold for disconnecting misbehaving peers (default: %u)"), QT_TRANSLATE_NOOP("firo-core", "Timeout during HTTP requests (default: %d)"), -QT_TRANSLATE_NOOP("firo-core", "Too many %f denominations, removing."), QT_TRANSLATE_NOOP("firo-core", "Tor control port password (default: empty)"), QT_TRANSLATE_NOOP("firo-core", "Tor control port to use if onion listening enabled (default: %s)"), QT_TRANSLATE_NOOP("firo-core", "Transaction amount too small"), -QT_TRANSLATE_NOOP("firo-core", "Transaction amounts must be positive"), QT_TRANSLATE_NOOP("firo-core", "Transaction amounts must not be negative"), -QT_TRANSLATE_NOOP("firo-core", "Transaction created successfully."), -QT_TRANSLATE_NOOP("firo-core", "Transaction fees are too high."), +QT_TRANSLATE_NOOP("firo-core", "Transaction commit failed."), QT_TRANSLATE_NOOP("firo-core", "Transaction has too long of a mempool chain"), QT_TRANSLATE_NOOP("firo-core", "Transaction must have at least one recipient"), -QT_TRANSLATE_NOOP("firo-core", "Transaction not valid."), +QT_TRANSLATE_NOOP("firo-core", "Transaction not allowed in mempool"), QT_TRANSLATE_NOOP("firo-core", "Transaction too large for fee policy"), -QT_TRANSLATE_NOOP("firo-core", "Transaction is too large (size limit: 100Kb). Select less inputs or consolidate your UTXOs"), -QT_TRANSLATE_NOOP("firo-core", "Trying to spend an already spent serial #, try again."), QT_TRANSLATE_NOOP("firo-core", "Unable to bind to %s on this computer (bind returned error %s)"), QT_TRANSLATE_NOOP("firo-core", "Unable to bind to %s on this computer. %s is probably already running."), -QT_TRANSLATE_NOOP("firo-core", "Unable to convert denomination to integer."), +QT_TRANSLATE_NOOP("firo-core", "Unable to create a single-input Spark transaction."), +QT_TRANSLATE_NOOP("firo-core", "Unable to create a valid Spark name transaction"), +QT_TRANSLATE_NOOP("firo-core", "Unable to create spend transaction."), +QT_TRANSLATE_NOOP("firo-core", "Unable to estimate the final Spark name transaction fee"), +QT_TRANSLATE_NOOP("firo-core", "Unable to generate spend key, wallet is locked."), +QT_TRANSLATE_NOOP("firo-core", "Unable to generate spend key."), +QT_TRANSLATE_NOOP("firo-core", "Unable to mint full amount; only partial minting was possible"), +QT_TRANSLATE_NOOP("firo-core", "Unable to select Spark coins for spend."), +QT_TRANSLATE_NOOP("firo-core", "Unable to select coins for minting"), +QT_TRANSLATE_NOOP("firo-core", "Unable to select cons for spend"), QT_TRANSLATE_NOOP("firo-core", "Unable to start HTTP server. See debug log for details."), -QT_TRANSLATE_NOOP("firo-core", "Unable to update configuration file at"), QT_TRANSLATE_NOOP("firo-core", "Unknown network specified in -onlynet: '%s'"), -QT_TRANSLATE_NOOP("firo-core", "Unknown response."), -QT_TRANSLATE_NOOP("firo-core", "Unknown state: id = %u"), QT_TRANSLATE_NOOP("firo-core", "Unsupported argument -benchmark ignored, use -debug=bench."), QT_TRANSLATE_NOOP("firo-core", "Unsupported argument -debugnet ignored, use -debug=net."), QT_TRANSLATE_NOOP("firo-core", "Unsupported argument -tor found, use -onion."), @@ -570,17 +574,15 @@ QT_TRANSLATE_NOOP("firo-core", "Update hex-encoded Firo transaction"), QT_TRANSLATE_NOOP("firo-core", "Upgrade wallet to latest format on startup"), QT_TRANSLATE_NOOP("firo-core", "Usage:"), QT_TRANSLATE_NOOP("firo-core", "Use UPnP to map the listening port (default: %u)"), +QT_TRANSLATE_NOOP("firo-core", "Use the dev chain"), QT_TRANSLATE_NOOP("firo-core", "Use the test chain"), QT_TRANSLATE_NOOP("firo-core", "User Agent comment (%s) contains unsafe characters."), QT_TRANSLATE_NOOP("firo-core", "Username for JSON-RPC connections"), -QT_TRANSLATE_NOOP("firo-core", "Value more than PrivateSend pool maximum allows."), QT_TRANSLATE_NOOP("firo-core", "Verifying blocks..."), QT_TRANSLATE_NOOP("firo-core", "Verifying wallet..."), -QT_TRANSLATE_NOOP("firo-core", "Very low number of keys left: %d"), QT_TRANSLATE_NOOP("firo-core", "Wait for RPC server to start"), QT_TRANSLATE_NOOP("firo-core", "Wallet %s resides outside data directory %s"), QT_TRANSLATE_NOOP("firo-core", "Wallet debugging/testing options:"), -QT_TRANSLATE_NOOP("firo-core", "Wallet is locked."), QT_TRANSLATE_NOOP("firo-core", "Wallet locked"), QT_TRANSLATE_NOOP("firo-core", "Wallet locked, unable to create transaction!"), QT_TRANSLATE_NOOP("firo-core", "Wallet needed to be rewritten: restart %s to complete"), @@ -589,22 +591,12 @@ QT_TRANSLATE_NOOP("firo-core", "Warning"), QT_TRANSLATE_NOOP("firo-core", "Warning: unknown new rules activated (versionbit %i)"), QT_TRANSLATE_NOOP("firo-core", "Wasn't able to create wallet backup folder %s!"), QT_TRANSLATE_NOOP("firo-core", "Whether to operate in a blocks only mode (default: %u)"), -QT_TRANSLATE_NOOP("firo-core", "Will retry..."), -QT_TRANSLATE_NOOP("firo-core", "Your entries added successfully."), -QT_TRANSLATE_NOOP("firo-core", "Your transaction was accepted into the pool!"), +QT_TRANSLATE_NOOP("firo-core", "You can not start a masternode in lite mode."), +QT_TRANSLATE_NOOP("firo-core", "You can not start a znode in lite mode."), QT_TRANSLATE_NOOP("firo-core", "Zapping all Sigma mints from wallet..."), QT_TRANSLATE_NOOP("firo-core", "Zapping all transactions from wallet..."), QT_TRANSLATE_NOOP("firo-core", "ZeroMQ notification options:"), -QT_TRANSLATE_NOOP("firo-core", "Znode cache is empty, skipping payments cache..."), -QT_TRANSLATE_NOOP("firo-core", "Znode queue is full."), -QT_TRANSLATE_NOOP("firo-core", "Znode:"), -QT_TRANSLATE_NOOP("firo-core", "it cannot write coin serial number into wallet"), -QT_TRANSLATE_NOOP("firo-core", "no mixing available."), QT_TRANSLATE_NOOP("firo-core", "prevtxs=JSON object"), QT_TRANSLATE_NOOP("firo-core", "privatekeys=JSON object"), -QT_TRANSLATE_NOOP("firo-core", "see debug.log for details."), -QT_TRANSLATE_NOOP("firo-core", "the coin spend has been used"), -QT_TRANSLATE_NOOP("firo-core", "the selected mint coin is an invalid coin"), -QT_TRANSLATE_NOOP("firo-core", "the spend coin transaction did not verify"), QT_TRANSLATE_NOOP("firo-core", "version"), }; diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 75ca9ccf05..7f551c5abc 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -4,7 +4,7 @@ AddressBookPage - + Right-click to edit address or label @@ -19,7 +19,18 @@ - + + Extend address expiration date + + + + + + &Extend + + + + Copy the currently selected address to the system clipboard Copy the currently selected address to the system clipboard @@ -29,17 +40,17 @@ - + C&lose - + Delete the currently selected address from the list Delete the currently selected address from the list - + Export the data in the current tab to a file Export the data in the current tab to a file @@ -49,12 +60,17 @@ &Export - + &Delete &Delete - + + (no label) + + + + Choose the address to send coins to @@ -85,11 +101,12 @@ + These are your Firo addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - + &Copy Address @@ -104,7 +121,30 @@ - + + + Spark + + + + + + Transparent + + + + + Spark names + + + + + + My own spark names + + + + Export Address List @@ -114,7 +154,7 @@ - + Exporting Failed @@ -123,11 +163,26 @@ There was an error trying to save the address list to %1. Please try again. + + + &Copy Spark Address + + + + + &Copy Transparent Address + + + + + Spark addresses can safely receive multiple payments, although reusing one can link those requests. + + AddressTableModel - + Label @@ -136,6 +191,11 @@ Address + + + Address Type + + (no label) @@ -150,12 +210,17 @@ Passphrase Dialog - + + passphraseWarning + + + + Enter passphrase Enter passphrase - + New passphrase New passphrase @@ -165,7 +230,7 @@ Repeat new passphrase - + Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. @@ -205,7 +270,7 @@ - + Confirm wallet encryption @@ -278,11 +343,126 @@ - + Warning: The Caps Lock key is on! + + AutoMintDialog + + + Make Funds Private + + + + + Unlock your wallet to make all transparent funds private with Spark. + + + + + Enter passphrase + Enter passphrase + + + + Lock wallet immediately after making funds private + + + + + AutoMintSparkDialog + + + Make Private + + + + + Cancel + + + + + Wallet unlock failed + + + + + The passphrase was incorrect. + + + + + Unable to generate mint + + + + + Make all available transparent funds private with Spark? + + + + + Unlocking wallet... + + + + + Making funds private... + + + + + AutoMintSparkModel + + + Successfully made %1 private with Spark + + + + + Fail to mint, %1 + + + + + Fail to unlock wallet + + + + + Automatic Spark Privacy + + + + + AutomintNotification + + + Make Funds Private + + + + + Make all available transparent funds private with Spark? + + + + + AutomintSparkNotification + + + Make Private + + + + + Dismiss + + + BanTableModel @@ -296,30 +476,48 @@ + + BitcoinApplication + + + You need to unlock to allow Spark wallet be created. + + + BitcoinGUI - + Sign &message... Sign &message... - + Synchronizing with network... Synchronizing with network... - + &Overview &Overview - + Node - + + Tor + + + + + Tor quickstart is enabled for this session. This confirms configuration, not Tor bootstrap or routing health. Manual proxy settings may override affected routes. + + + + Show general overview of wallet Show general overview of wallet @@ -334,7 +532,27 @@ Browse transaction history - + + &Spark Names + + + + + Manage your registered Spark Names + + + + + &Masternodes + + + + + Browse masternodes + + + + E&xit E&xit @@ -379,17 +597,37 @@ &Encrypt Wallet... - + &Backup Wallet... &Backup Wallet... + &Export View Key... + + + + + Export Spark view key + + + + &Change Passphrase... &Change Passphrase... + &Console + &Console + + + + Open the console in the debug window + + + + &Sending addresses... @@ -404,72 +642,142 @@ - - Click to disable network activity. + + Open a firo: URI - - Network activity disabled. + + Toggle light / dark theme - - Click to enable network activity again. + + Light or dark theme - - Syncing Headers (%1%)... + + Wallet navigation - - Reindexing blocks on disk... - Reindexing blocks on disk... + + Console + - - Send coins to a Firo address - Send coins to a Firo address + + Options + Options - - Backup wallet to another location - Backup wallet to another location + + Light + - Change the passphrase used for wallet encryption - Change the passphrase used for wallet encryption + Dark + - - &Debug window - &Debug window + + + Show synchronization details + - - Open debugging and diagnostic console - Open debugging and diagnostic console + + + Syncing... + - - &Verify message... - &Verify message... + + + + Hide navigation + - - Firo - Firo + + + Network activity disabled + - - Wallet - Wallet + + Synced + - + + Show navigation + + + + + Click to disable network activity. + + + + + Network activity disabled. + + + + + Click to enable network activity again. + + + + + Reindexing blocks on disk... + Reindexing blocks on disk... + + + + Send coins to a Firo address + Send coins to a Firo address + + + + Backup wallet to another location + Backup wallet to another location + + + + Change the passphrase used for wallet encryption + Change the passphrase used for wallet encryption + + + + &Debug window + &Debug window + + + + Open debugging and diagnostic console + Open debugging and diagnostic console + + + + &Verify message... + &Verify message... + + + + Firo + Firo + + + + Wallet + Wallet + + + &Send &Send @@ -479,7 +787,7 @@ &Receive - + &Show / Hide &Show / Hide @@ -494,7 +802,7 @@ Encrypt the private keys that belong to your wallet - + Sign messages with your Firo addresses to prove you own them Sign messages with your Firo addresses to prove you own them @@ -504,12 +812,12 @@ Verify messages to ensure they were signed with specified Firo addresses - + &File &File - + &Settings &Settings @@ -519,17 +827,12 @@ &Help - - Tabs toolbar - Tabs toolbar - - - + Request payments (generates QR codes and firo: URIs) - + Show the list of used sending addresses and labels @@ -539,17 +842,12 @@ - - Open a firo: URI or payment request - - - - + &Command-line options - + %n active connection(s) to Firo network %n active connection to Firo network @@ -557,7 +855,7 @@ - + Indexing blocks on disk... @@ -575,12 +873,12 @@ - + %1 behind %1 behind - + Last received block was generated %1 ago. Last received block was generated %1 ago. @@ -590,7 +888,7 @@ Transactions after this will not yet be visible. - + Error Error @@ -605,32 +903,44 @@ Information - + Up to date Up to date - + Show the %1 help message to get a list with possible Firo command-line options - + %1 client - + + + Connecting to peers... - + + Syncing Headers... + + + + Catching up... Catching up... - + + Synchronizing additional data: %p% + + + + Date: %1 @@ -660,7 +970,7 @@ - + Sent transaction Sent transaction @@ -670,7 +980,7 @@ Incoming transaction - + HD key generation is <b>enabled</b> @@ -680,7 +990,7 @@ - + Wallet is <b>encrypted</b> and currently <b>unlocked</b> Wallet is <b>encrypted</b> and currently <b>unlocked</b> @@ -690,11 +1000,20 @@ Wallet is <b>encrypted</b> and currently <b>locked</b> - + A fatal error occurred. Firo can no longer continue safely and will quit. + + CancelPasswordDialog + + + + Cancel + + + CoinControlDialog @@ -738,7 +1057,7 @@ - + (un)select all @@ -783,7 +1102,7 @@ Confirmed - + Copy address @@ -844,12 +1163,12 @@ - + (%1 locked) - + yes @@ -870,3826 +1189,6450 @@ - + (no label) - + change from %1 (%2) - + + (sigma mint) + + + + + (mint) + + + + (change) - EditAddressDialog + CreateSparkNamePage - - Edit Address - Edit Address + + Create spark name + - - &Label - &Label + + Spark Names serve as a convenient way to associate your Spark Address with a memorable name of your choice. This way you can share your Spark Names to other users for them to send funds to you (for e.g. @sparky) instead of a long Spark Address while protecting your privacy. + - - The label associated with this address list entry + + Spark address: - - The address associated with this address list entry. This can only be modified for sending addresses. + + Generate new - - &Address - &Address + + Spark name: + - - New receiving address + + 1-20 characters - - New sending address + + Number of years: - - Edit receiving address + + <html><head/><body><p>To get this spark name you must pay a fee of <span style=" font-weight:600;">%1 FIRO(s)</span>. Fee depends on spark name lengths, shorter names are more expensive. Fee can be paid only with private funds.</p></body></html> - - Edit sending address + + Additional information you want to associate with this spark name (max. 1024 symbols): - - The entered address "%1" is not a valid Firo address. + + Register - - The entered address "%1" is already in the address book. + + Extend - - Could not unlock wallet. + + Extend Spark Name - - New key generation failed. + + This Spark Name cannot be extended by a full year yet. - - - FreespaceChecker - - A new data directory will be created. - A new data directory will be created. + + This Spark Name could not be found and cannot be extended. + - - name - name + + + + + + + + Error + Error - - Directory already exists. Add %1 if you intend to create a new directory here. - Directory already exists. Add %1 if you intend to create a new directory here. + + The wallet is not available. + - - Path already exists, and is not a directory. - Path already exists, and is not a directory. + + Extension unavailable + - - Cannot create data directory here. - Cannot create data directory here. + + Spark names are not yet allowed + - - - HelpMessageDialog - - version - version + + Invalid spark address + - - (%1-bit) + Error details: - - About %1 + + Transaction submitted - - Command-line options + + The updated expiry will appear after the extension transaction is confirmed. - Usage: - Usage: + The Spark Name will appear after the registration transaction is confirmed. + - - command-line options - command-line options + + Fee: %1 FIRO. New estimated expiration: %2 + - - UI Options: + + Extension fee: %1 FIRO. The updated expiration estimate is unavailable. - - Choose data directory on startup (default: %u) + + Error validating Spark Name parameter - - Set language, for example "de_DE" (default: system locale) + + Failed to prepare the Spark Name extension transaction. - Start minimized + Failed to prepare the Spark Name registration transaction. - - Set SSL root certificates for payment request (default: -system-) + + Are you sure you want to extend this Spark Name? - Show splash screen on startup (default: %u) + Are you sure you want to register this Spark Name? - Reset all settings changed in the GUI + You are sending FIRO from a Spark address to the Spark Name fee address. - - - Intro - - Welcome - Welcome + + Confirm Spark Name extension + - - Welcome to %1. + + Confirm Spark Name registration - - As this is the first time the program is launched, you can choose where %1 will store its data. + + Failed to submit the Spark Name extension transaction. - - %1 will download and store a copy of the Firo block chain. At least %2GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + + Failed to submit the Spark Name registration transaction. - - Use the default data directory - Use the default data directory + + Failed to extend the Spark Name. + - - Use a custom data directory: - Use a custom data directory: + + Failed to register the Spark Name. + - - Error: Specified data directory "%1" cannot be created. + + ⚠️ Not enough private funds to extend this Spark Name. - - Error - Error - - - - %n GB of free space available - - %n GB of free space available - %n GB of free space available - - - - - (of %n GB needed) - - (of %n GB needed) - (of %n GB needed) - + + ⚠️ Not enough private funds to register this Spark Name. + - ModalOverlay + EditAddressDialog - - Form - Form + + Edit Address + Edit Address - - 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 firo network, as detailed below. - + + &Label + &Label - - Attempting to spend firos that are affected by not-yet-displayed transactions will not be accepted by the network. + + The label associated with this address list entry - - Number of blocks left + + The address associated with this address list entry. This can only be modified for sending addresses. - - - - Unknown... - + + &Address + &Address - - Last block time - Last block time + + New transparent receiving address + - - Progress + + New transparent sending address - - Progress increase per hour + + Edit transparent receiving address - - - calculating... + + Edit transparent sending address - - Estimated time left until synced + + New RAP payment code - - Hide + + + RAP address - - Unknown. Syncing Headers (%1)... + + Edit RAP payment code - - - OpenURIDialog - - Open URI + + New spark sending address - - Open payment request from URI or file + + + Spark address - - URI: + + Edit spark sending address - - Select payment request file + + New spark receiving address - - Select payment request file to open + + Edit spark receiving address - - - OptionsDialog - - Options - Options + + The entered address "%1" is not a valid Firo address. + - - &Main - &Main + + The entered address "%1" is not a valid spark Firo address. + - - Automatically start %1 after logging in to the system. + + The entered address "%1" is already in the address book. - - &Start %1 on system login + + Could not unlock wallet. - - Size of &database cache + + New key generation failed. - - MB + + New RAP address validation failed. - - Number of script &verification threads + + Receiving RAP addresses cannot be relabeled. + + + ExportViewKeyDialog - - Accept connections from outside + + Export View Key + + + FreespaceChecker - - Allow incoming connections - + + A new data directory will be created. + A new data directory will be created. - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - + + name + name - - 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. - + + Directory already exists. Add %1 if you intend to create a new directory here. + Directory already exists. Add %1 if you intend to create a new directory here. - - - 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 |. - + + Path already exists, and is not a directory. + Path already exists, and is not a directory. - - Third party transaction URLs + + Cannot create data directory here. + Cannot create data directory here. + + + + HelpMessageDialog + + + version + version + + + + + (%1-bit) - - Active command-line options that override above options: + + About %1 - - Reset all client options to default. - Reset all client options to default. + + Command-line options + - - &Reset Options - &Reset Options + + Usage: + Usage: - - &Network - &Network + + command-line options + command-line options - - (0 = auto, <0 = leave that many cores free) + + UI Options: - - W&allet + + Choose data directory on startup (default: %u) - - Expert + + Set language, for example "de_DE" (default: system locale) - - Enable coin &control features + + Start minimized - - 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. + + Set SSL root certificates for payment request (default: -system-) - - &Spend unconfirmed change + + Show splash screen on startup (default: %u) - - Automatically open the Firo client port on the router. This only works when your router supports UPnP and it is enabled. - Automatically open the Firo client port on the router. This only works when your router supports UPnP and it is enabled. + + Reset all settings changed in the GUI + + + + Intro - - Map port using &UPnP - Map port using &UPnP + + Welcome + Welcome - - Connect to the Firo network through a SOCKS5 proxy. + + Welcome to %1. - - &Connect through SOCKS5 proxy (default proxy): + + As this is the first time the program is launched, you can choose where %1 will store its data. - - - Proxy &IP: - Proxy &IP: + + %1 will download and store a copy of the Firo block chain. At least %2GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + - - - &Port: - &Port: + + Use the default data directory + Use the default data directory - - - Port of the proxy (e.g. 9050) - Port of the proxy (e.g. 9050) + + Use a custom data directory: + Use a custom data directory: - - Used for reaching peers via: + + Error: Specified data directory "%1" cannot be created. - - - - Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type. - + + Error + Error + + + + %n GB of free space available + + %n GB of free space available + %n GB of free space available + + + + + (of %n GB needed) + + (of %n GB needed) + (of %n GB needed) + + + + ManualMintDialog - - IPv4 + + Coin Selection - - IPv6 + + Available amount to mint: - - Tor + + + 0.00000000 - - Connect to the Firo network through a separate SOCKS5 proxy for Tor hidden services. + + + FIRO - - Use separate SOCKS5 proxy to reach peers via Tor hidden services: + + + + + + FIRO : Amount - - &Window - &Window + + Total: + Total: - - &Hide the icon from the system tray. + + 10 - - Hide tray icon + + 1 - - Show only a tray icon after minimizing the window. - Show only a tray icon after minimizing the window. - - - - &Minimize to the tray instead of the taskbar - &Minimize to the tray instead of the taskbar - - - - M&inimize on close - M&inimize on close + + 0.1 + - - &Display - &Display + + 0.5 + - - User Interface &language: - User Interface &language: + + 100 + - - The user interface language can be set here. This setting will take effect after restarting %1. + + &Mint - - &Unit to show amounts in: - &Unit to show amounts in: + + &Clear All + + + + MasternodeList - - Choose the default subdivision unit to show in the interface and when sending coins. - Choose the default subdivision unit to show in the interface and when sending coins. + + Form + Form - - Whether to show coin control features or not. + + Filter List: - - &OK - &OK + + Filter masternode list + - - &Cancel - &Cancel + + Filter List + - - default - default + + Show only masternodes this wallet has keys for. + - - none + + My masternodes only - - Confirm options reset - Confirm options reset + + Node Count + - - - Client restart required to activate changes. + + 0 - - Client will be shut down. Do you want to proceed? + + Collateral · %1 - - This change would require a client restart. + + PoSe %1 - - The supplied proxy address is invalid. - The supplied proxy address is invalid. + + REGISTERED + - - - OverviewPage - - Form - Form + + LAST PAID + - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Firo network after a connection is established, but this process has not completed yet. - The displayed information may be out of date. Your wallet automatically synchronizes with the Firo network after a connection is established, but this process has not completed yet. + + NEXT PAYMENT + - - Watch-only: + + COLLATERAL - - Available: + + PAYOUT ADDRESS - - Your current spendable balance - Your current spendable balance + + OPERATOR REWARD + - - Pending: + + COLLATERAL ADDRESS - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance + + OWNER ADDRESS + - - Immature: - Immature: + + Filter masternodes + - - Mined balance that has not yet matured - Mined balance that has not yet matured + + Sort masternodes by + - - Balances + + Sort the masternode list - - Total: - Total: + + Service + - - Your current total balance - Your current total balance + + Status + - - Your current balance in watch-only addresses + + PoSe score - - Spendable: + + Registered - - Recent transactions + + Last paid - - Unconfirmed transactions to watch-only addresses + + Next payment - - Mined balance in watch-only addresses that has not yet matured + + Payout address - - Current total balance in watch-only addresses + + Operator reward - - - PaymentServer - - - - - - - Payment request error + + Collateral amount - - Cannot start firo: click-to-pay handler + + Collateral address - - - - URI handling + + Owner address - - Payment request fetch URL is invalid: %1 + + Masternode list - - Invalid payment address %1 + + No masternodes found - - URI cannot be parsed! This can be caused by an invalid Firo address or malformed URI parameters. + + Masternodes matching your filters will appear here - - Payment request file handling + + Copy ProTx Hash - Payment request file cannot be read! This can be caused by an invalid payment request file. + Copy Collateral Outpoint - - - - - - - Payment request rejected + + Sort ascending - - Payment request network doesn't match client network. + + Sort descending - - Payment request expired. + + Pre-enabled - - Payment request is not initialized. + + Enabled - - Unverified payment requests to custom payment scripts are unsupported. + + PoSe Banned - - - Invalid payment request. + + None - - Requested payment amount of %1 is too small (considered dust). + + %1, not claimed - - Refund from %1 + + %1 to %2 - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). + + %1 to unknown address - - Error communicating with %1: %2 + + Service: %1 +Status: %2 +PoSe score: %3 +Registered: %4 +Last paid: %5 +Next payment: %6 +Payout address: %7 +Operator reward: %8 +Collateral: %9 +Collateral address: %10 +Owner address: %11 +ProTx hash: %12 +Collateral outpoint: %13 - - Payment request cannot be parsed! + + %1, %2 - - Bad response from server %1 + + Additional information for DIP3 Masternode %1 + + + ModalOverlay - - Network request error - - - - - Payment acknowledged - + + Form + Form - - - PeerTableModel - - User Agent + + + Wallet is still syncing - - Node/Service + + + Recent transactions may not yet be visible, and your balance might be incorrect until the wallet finishes synchronizing with the Firo network. - - NodeId + + Number of blocks left - - Ping + + + + + Unknown... - - - QObject - - Amount - Amount + + Last block time + Last block time - - Enter a Firo address (e.g. %1) + + Progress - - %1 d + + Progress increase per hour - - %1 h + + + calculating... - - %1 m + + Estimated time left until synced - - - %1 s + + Hide - - None + + Wallet is synchronized - - N/A - N/A - - - - %1 ms + + The wallet is up to date with the Firo network. - - - %n second(s) - - %n second - %n seconds - - - - - %n minute(s) - - %n minute - %n minutes - - - - - %n hour(s) - - %n hour - %n hours - - - - - %n day(s) - - %n day - %n days - - - - - - %n week(s) - - %n week - %n weeks - - - - %1 and %2 + + Complete - - - %n year(s) - - %n year - %n years - - - - %1 didn't yet exit safely... + + Unknown. Syncing Headers (%1)... - QObject::QObject + NotifyMnemonic - - Error: Specified data directory "%1" does not exist. + + Notification - - Error: Cannot parse configuration file: %1. Only use key=value syntax. + + Your wallet has been created successfully. Using the following recovery seed phrase, you will be able to recover your wallet and balances at any time. - - Error: %1 + + Recovery seed phrase: - - - QRImageWidget - - &Save Image... + + Please write down these recovery seed phrase and wallet birth date and keep them in a secure location. Specifying the wallet's birth date when restoring your wallet speeds up and optimizes the scanning of your wallet. - - &Copy Image + + WARNING: Anyone with access to the recovery seed phrase can recover your wallet and will have control over your funds! - - Save QR Code + + Please re-enter the recovery seed phrase to ensure you have written it down correctly. + + + Warning + Warning + - PNG Image (*.png) + Are you sure you wish to proceed without confirming whether you have written down your seed words correctly? + + + + + Your entered words do not match, please press back to re-check your mnemonic. - RPCConsole + OpenURIDialog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - N/A - N/A + + Open bitcoin URI + - - Client version - Client version + + URI: + + + + OptionsDialog - - &Information - &Information + + Options + Options - - Debug window - + + &Main + &Main - - General + + Automatically start %1 after logging in to the system. - - Using BerkeleyDB version + + &Start %1 on system login - - Datadir + + Size of &database cache - - Startup time - Startup time + + MB + - - Network - Network + + Number of script &verification threads + - - Name + + Accept connections from outside - - Number of connections - Number of connections + + Allow incoming connections + - - Block chain - Block chain + + + IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) + - - Current number of blocks - Current number of blocks + + 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. + - - Memory Pool + + + 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 |. - - Current number of transactions + + Third party transaction URLs - - Memory usage + + Active command-line options that override above options: - - - Received + + Reset all client options to default. + Reset all client options to default. + + + + &Reset Options + &Reset Options + + + + &Network + &Network + + + + (0 = auto, <0 = leave that many cores free) - - - Sent + + W&allet - - &Peers + + Expert - - Banned peers + + Enable coin &control features - - - - Select a peer to view detailed information. + + 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. - - Whitelisted + + &Spend unconfirmed change + + + + + Restore Spark and wallet transaction data following a full reindex (deletes Spark mint records from the wallet, then reindexes the chain and reapplies wallet transactions). This can take several hours. + + + + + &Reindex Spark wallet data + + + + + Spark + + + + + When enabled, the wallet can prompt to make transparent funds private with Spark. + + + + + Enable automatic Spark &privacy + + + + + Split outputs when minting to Spark for better privacy. + + + + + Enable &splitting when minting + + + + + Show the Make Private control in the overview. + + + + + Show Spark &privacy controls + + + + + Automatically open the Firo client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Firo client port on the router. This only works when your router supports UPnP and it is enabled. + + + + Map port using &UPnP + Map port using &UPnP + + + + Connect to the Firo network through a SOCKS5 proxy. + + + + + &Connect through SOCKS5 proxy (default proxy): + + + + + + Proxy &IP: + Proxy &IP: + + + + + &Port: + &Port: + + + + + Port of the proxy (e.g. 9050) + Port of the proxy (e.g. 9050) + + + + Used for reaching peers via: + - Direction + + Shows, if the supplied default SOCKS5 proxy is used to reach peers via this network type. + + + + + IPv4 - Version + IPv6 - - Starting Block + + Tor + + + + + Connect to the Firo network through a separate SOCKS5 proxy for Tor hidden services. + + + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services: + + + + + Automatically launch an embedded Tor instance and configure Firo to use it. Manual proxy settings above can override routing for affected connection types. A client restart is required. + + + + + Route connection through Tor (quickstart) + + + + + &Window + &Window + + + + &Hide the icon from the system tray. + + + + + Hide tray icon + + + + + Show only a tray icon after minimizing the window. + Show only a tray icon after minimizing the window. + + + + &Minimize to the tray instead of the taskbar + &Minimize to the tray instead of the taskbar + + + + M&inimize on close + M&inimize on close + + + + &Display + &Display + + + + User Interface &language: + User Interface &language: + + + + The user interface language can be set here. This setting will take effect after restarting %1. + + + + + &Unit to show amounts in: + &Unit to show amounts in: + + + + Choose the default subdivision unit to show in the interface and when sending coins. + Choose the default subdivision unit to show in the interface and when sending coins. + + + + Whether to show coin control features or not. + + + + + &OK + &OK + + + + &Cancel + &Cancel + + + + default + default + + + + none + + + + + Confirm options reset + Confirm options reset + + + + + Client restart required to activate changes. + + + + + Client will be shut down. Do you want to proceed? + + + + + Confirm Spark reindex + + + + + Warning: On restart, this setting will wipe your transaction list, reindex the blockchain, and restore wallet data from your seed. Spark mint records are cleared and rebuilt from the chain. This will likely take a few hours. Are you sure? + + + + + Tor quickstart is enabled for this session by -torsetup. It cannot be changed here. + + + + + Tor quickstart is disabled for this session by -torsetup. It cannot be changed here. + + + + + Tor quickstart is enabled for this session. + + + + + Tor quickstart is enabled. Restart the client to apply this change. + + + + + Tor quickstart is disabled. Restart the client to apply this change. + + + + + Tor quickstart is disabled. + + + + + This change would require a client restart. + + + + + The supplied proxy address is invalid. + The supplied proxy address is invalid. + + + + OverviewPage + + + Form + Form + + + + + The displayed information may be out of date. Your wallet automatically synchronizes with the Firo network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Firo network after a connection is established, but this process has not completed yet. + + + + + + Available: + + + + + Your current spendable balance + Your current spendable balance + + + + + + Pending: + + + + + font-size: 14px; color: #92400E; background-color:#FEF3C7; + + + + + FIRO (Primary) + + + + + Transparent 0.00000000 FIRO (0%) + + + + + Private (Spark): 0.00000000 FIRO (0%) + + + + + Send + + + + + Receive + + + + + Make Private... + + + + + Private Balances (Spark) + + + + + Your current spendable private Spark balance + + + + + + + 0.00000000 FIRO + + + + + Total of Spark mint transactions that have yet to be confirmed, and do not yet count toward the spendable balance + + + + + Available to make private: + + + + + Transparent Balances + + + + + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance + + + + + Immature: + Immature: + + + + Mined balance that has not yet matured + Mined balance that has not yet matured + + + + Recent Activity + + + + + + Total: + Total: + + + + Your current total balance + Your current total balance + + + + Watch-only Balances + + + + + Your current balance in watch-only addresses + + + + + Recent transactions + + + + + Mainnet + + + + + Testnet + + + + + Devnet + + + + + Regtest + + + + + ↗ Send + + + + + ↙ Receive + + + + + + Make Private + + + + + + No transactions yet + + + + + + Your history will appear here after the first transfer + + + + + Make Funds Private + + + + + Move FIRO from your transparent balance into Spark, Firo's private balance. + + + + + From + + + + + Transparent balance + + + + + To + + + + + Private balance (Spark) + + + + + Max + + + + + Amount + Amount + + + + The network fee will be deducted from this amount. + + + + + Available + + + + + Review + + + + + The amount exceeds your available transparent balance. + + + + + The amount and transaction fee exceed your available transparent balance. + + + + + The transaction fee is higher than the configured maximum of %1. + + + + + The transaction was rejected: %1 + + + + + Unable to create the Spark transaction. + + + + + Make funds private + + + + + + Unable to Make Funds Private + + + + + Firo could not create a Spark transaction for this amount. + + + + + Use Maximum fills in the highest amount that can be made private, with the network fee deducted from it. No funds were moved. + + + + + Change the amount and try again. No funds were moved. + + + + + Use Maximum + + + + + Change Amount + + + + + Review Private Transfer + + + + + Amount to make private: <b>%1</b><br>Network fee: %2<br>Total from transparent balance: %3 + + + + + The transfer could not be fully completed. Part of it may already have been sent; check the Transactions tab before trying again. + + + + + The transfer could not be completed. No funds were moved. + + + + + Funds Moving to Spark + + + + + %1 is moving to your private Spark balance. It will become available after confirmation. + + + + + Transparent + + + + + Private (Spark): + + + + + Private (Spark) %1% · Transparent %2% + + + + + Wallet is still syncing + + + + + Transactions will appear here as synchronization completes + + + + + Unconfirmed transactions to watch-only addresses + + + + + Mined balance in watch-only addresses that has not yet matured + + + + + Current total balance in watch-only addresses + + + + + PaymentServer + + + Payment request error + + + + + Cannot start firo: click-to-pay handler + + + + + + + URI handling + + + + + + Cannot process payment request because BIP70 is not supported. + + + + + + Due to widespread security flaws in BIP70 it's strongly recommended that any merchant instructions to switch wallets be ignored. + + + + + + If you are receiving this error you should request the merchant provide a BIP21 compatible URI. + + + + + Invalid payment address %1 + + + + + URI cannot be parsed! This can be caused by an invalid Firo address or malformed URI parameters. + + + + + Payment request file handling + + + + + PeerTableModel + + + User Agent + + + + + Node/Service + + + + + NodeId + + + + + Ping + + + + + Network + Network + + + + QObject + + + Amount + Amount + + + + Enter a Firo address (e.g. %1) + + + + + or a payment code + + + + + or a Firo spark address (e.g. pr1cjgedy25xhr4fmzx8cm5gf940v5j2482m94uaa0yguxxw2yrel0f0hyjesg77px7at47f4s3jy8hthmyr6ajhvn025yp28fyuwzvar0gcc7p27rvttn2tyl9ejwthjpaavlmy3cm3sysz) + + + + + %1 d + + + + + %1 h + + + + + %1 m + + + + + + %1 s + + + + + None + + + + + N/A + N/A + + + + %1 ms + + + + + %n second(s) + + %n second + %n seconds + + + + + %n minute(s) + + %n minute + %n minutes + + + + + %n hour(s) + + %n hour + %n hours + + + + + %n day(s) + + %n day + %n days + + + + + + %n week(s) + + %n week + %n weeks + + + + + %1 and %2 + + + + + %n year(s) + + %n year + %n years + + + + + %1 didn't yet exit safely... + + + + + + OP_RETURN metadata exceeds the 80-byte Rosen limit. + + + + + Rosen metadata is too short. + + + + + Rosen metadata contains an unknown destination chain. + + + + + Rosen metadata contains an empty destination address. + + + + + Rosen metadata destination-address length is inconsistent. + + + + + OP_RETURN metadata is empty. + + + + + OP_RETURN metadata must be an even-length hexadecimal string. + + + + + Destination chain: %1 +Bridge fee: %2 atomic units +Network fee: %3 atomic units +Destination address (hex): %4 + + + + + You are sending Firo to an Exchange Address. Exchange Addresses can only receive funds from a transparent address. + + + + + You are sending Firo from a transparent address to another transparent address. To protect your privacy, we recommend using Spark addresses instead. + + + + + You are sending Firo from a transparent address to a Spark address. + + + + + You are sending Firo from a Spark address to another Spark address. This transaction is fully private. + + + + + You are sending Firo from a private Spark pool to a transparent address. Please note that some exchanges do not accept direct Spark deposits. + + + + + QObject::QObject + + + Error: Specified data directory "%1" does not exist. + + + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + + + + + Error: %1 + + + + + QRImageWidget + + + &Save Image... + + + + + &Copy Image + + + + + Save QR Code + + + + + PNG Image (*.png) + + + + + RPCConsole + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + N/A + N/A + + + + Client version + Client version + + + + &Information + &Information + + + + Debug window + + + + + General + + + + + Using BerkeleyDB version + + + + + Datadir + + + + + Startup time + Startup time + + + + Network + Network + + + + Name + + + + + Number of connections + Number of connections + + + + Block chain + Block chain + + + + Current number of blocks + Current number of blocks + + + + Memory Pool + + + + + Current number of transactions + + + + + Memory usage + + + + + + Received + + + + + + Sent + + + + + &Peers + + + + + Banned peers + + + + + + + Select a peer to view detailed information. + + + + + Whitelisted + + + + + Direction + + + + + Version + + + + + Starting Block + + + + + Synced Headers + + + + + Synced Blocks + + + + + + User Agent + + + + + Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. + + + + + Decrease font size + + + + + Increase font size + + + + + Services + + + + + Ban Score + + + + + Connection Time + + + + + Last Send + + + + + Last Receive + + + + + Ping Time + + + + + The duration of a currently outstanding ping. + + + + + Ping Wait + + + + + Min Ping + + + + + Time Offset + + + + + Last block time + Last block time + + + + &Open + &Open + + + + &Console + &Console + + + + &Network Traffic + + + + + &Clear + + + + + Totals + + + + + In: + + + + + Out: + + + + + Debug log file + Debug log file + + + + Clear console + Clear console + + + + 1 &hour + + + + + 1 &day + + + + + 1 &week + + + + + 1 &year + + + + + &Disconnect + + + + + + + + Ban for + + + + + &Unban + + + + + Welcome to the %1 RPC console. + + + + + Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. + Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. + + + + Type <b>help</b> for an overview of available commands. + Type <b>help</b> for an overview of available commands. + + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramification of a command. + + + + + Network activity disabled + + + + + %1 B + + + + + %1 KB + + + + + %1 MB + + + + + %1 GB + + + + + (inbound onion) + + + + + (node id: %1) + + + + + via %1 + + + + + + never + + + + + Inbound + + + + + Outbound + + + + + Yes + + + + + No + + + + + + Unknown + + + + + ReceiveCoinsDialog + + + Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before. + + + + + R&euse an existing receiving address (not recommended) + + + + + + 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 Firo network. + + + + + + An optional label to associate with the new receiving address. + + + + + + An optional amount to request. Leave this empty or zero to not request a specific amount. + + + + + Clear all fields of the form. + + + + + Clear + + + + + Requested payments history + + + + + &Request payment + + + + + Choose Spark or Transparent for the payment request address. + + + + + ADDRESS TYPE + + + + + Choose one of this wallet's Spark Names for the payment request. + + + + + Use My Spark Name + + + + + Register a new Spark Name. + + + + + Register Spark Name + + + + + LABEL + + + + + AMOUNT + + + + + MESSAGE + + + + + Show the selected request (does the same as double clicking an entry) + + + + + Show + + + + + Remove the selected entries from the list + + + + + Remove + + + + + REQUESTED + + + + + + Spark + + + + + + Transparent + + + + + All + + + + + Copy URI + + + + + Copy label + + + + + Copy message + + + + + Copy amount + + + + + No payment requests yet + + + + + Requests you create will be listed here + + + + + + + + Error + Error + + + + The selected Spark address does not belong to this wallet. + + + + + "%1" is not a valid Spark Name. + + + + + Spark Name "%1" was not found or has expired. + + + + + Spark Name "%1" does not belong to this wallet. + + + + + &Use an existing Spark address + + + + + Spark addresses can safely receive multiple payments, although sharing one address can link those requests. + + + + + R&euse an existing transparent address (not recommended) + + + + + Reusing transparent addresses has security and privacy risks. Only use this to recreate an earlier payment request. + + + + + ReceiveRequestDialog + + + QR Code + + + + + Copy &URI + + + + + Copy &Address + + + + + &Save Image... + + + + + &Close + + + + + Request payment to %1 + + + + + Payment URI + + + + + Address + + + + + Amount + Amount + + + + Label + + + + + + Address Type + + + + + transparent + + + + + spark + + + + + Message + + + + + Resulting URI too long, try to reduce the text for label / message. + + + + + Error encoding URI into QR Code. + + + + + RecentRequestsTableModel + + + Date + Date + + + + Label + + + + + Message + + + + + Address Type + + + + + (no label) + + + + + transparent + + + + + spark + + + + + (no message) + + + + + (no amount requested) + + + + + Requested + + + + + Recover + + + Create or Recover Wallet + + + + + Let's create or restore your Firo wallet! + +You will be prompted to write down a recovery seed phrase that allows you to restore your wallet in the future. + +Please ensure that you store this securely as anyone with access to the recovery seed phrase can access your funds! + +By default, we recommend a 24 word recovery seed phrase. + +You can also choose to further encrypt your recovery seed phrase with an additional passphrase (only recommended for advanced users). +You will need to save this passphrase as well with the recovery seed phrase. Failing to save the passphrase will lead to your funds being irrecoverable. + +If you have an existing recovery seed phrase, please select "Recover existing wallet". If you have secured your recovery seed phrase with an additional passphrase, enter it too. +Also you can choose wallet birth date for more faster and optimised wallet scan. + + + + + + Create new wallet + + + + + Recover existing wallet + + + + + 12 Words + + + + + 24 Words + + + + + Input recovery seed phrase here: + + + + + Choose the wallet creation date: + + + + + dd-MM-yyyy + + + + + Use additional passphrase (optional) [Recommended for advanced users only] + + + + + Enter passphrase: + + + + + Enter passphrase again: + + + + + If you use RAP addresses, and are restoring a wallet, enter the number of RAP addresses you have created to recover funds received using RAP addresses. + + + + + Number of RAP addresses: + + + + + The number of RAP addresses will be created in the wallet for the initial blockchain scan + + + + + Wrong number of words. Please try again. + + + + + You have entered an invalid recovery seed phrase. Please double check the spelling and order. + + + + + Passphrases don't match. + + + + + Passphrase can't be empty. + + + + + SendCoinsDialog + + + + Send Coins + Send Coins + + + + Coin Control Features + + + + + Inputs... + + + + + automatically selected + + + + + Insufficient funds! + + + + + Quantity: + + + + + Bytes: + + + + + Amount: + + + + + Fee: + + + + + After Fee: + + + + + Change: + + + + + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + + + + + Custom change address + + + + + Choose... + + + + + collapse fee-settings + + + + + per kilobyte + + + + + + If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte. + + + + + Transaction Fee + + + + + 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 your have validated the complete chain. + + + + + Warning: Fee estimation is currently not possible. + + + + + Hide + + + + + total at least + + + + + + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for Firo transactions than the network can process. + + + + + (read the tooltip) + + + + + Recommended: + + + + + Custom: + + + + + (Smart fee not initialized yet. This usually takes a few blocks...) + + + + + normal + + + + + fast + + + + + Send to multiple recipients at once + Send to multiple recipients at once + + + + Add &Recipient + Add &Recipient + + + + + Private Balance + + + + + + Use Transparent Balance + + + + + Clear all fields of the form. + + + + + Dust: + + + + + Confirmation time target: + + + + + Clear &All + Clear &All + + + + + Confirm the send action + Confirm the send action + + + + S&end + S&end + + + + Copy quantity + + + + + Copy amount + + + + + Copy fee + + + + + Copy after fee + + + + + Copy bytes + + + + + Copy dust + + + + + Copy change + + + + + Spark name %1 not found + + + + + + + + %1 to %2 + + + + + EX-addresses can only receive FIRO from transparent addresses.<br /><br />Your FIRO will go from Spark to a newly generated transparent address %1 and then immediately be sent to the EX-address. + + + + + Rosen Bridge metadata + + + + + Destination chain + + + + + Bridge fee (atomic units) + + + + + Network fee (atomic units) + + + + + Destination address (hex) + + + + + Raw data + + + + + Are you sure you want to send? + + + + + Messages + + + + + added as transaction fee + + + + + . An additional transaction fee of %1 will apply to complete the send from the transparent address to the EX-address. + + + + + Total Amount %1 + + + + + or + + + + + Confirm send coins + + + + + Private transaction staging produced an unexpected transaction count + + + + + Intermediate address was not found in the transaction + + + + + Switch to Transparent Balance to send this Rosen Bridge transfer. + + + + + The recipient address is not valid. Please recheck. + + + + + The amount to pay must be larger than 0. + + + + + The amount exceeds your balance. + + + + + The total exceeds your balance when the %1 transaction fee is included. + + + + + Duplicate address found: addresses should only be used once each. + + + + + Transaction creation failed! + + + + + Transaction creation failed: %1 + + + + + The transaction was rejected with the following reason: %1 + + + + + A fee higher than %1 is considered an absurdly high fee. + + + + + Payment request expired. + + + + + The Rosen Bridge metadata is invalid, duplicated, or incompatible with fee subtraction. + + + + + Rosen Bridge transfers must be sent from the transparent balance. + + + + + %n block(s) + + %n block + %n blocks + + + + + Use Private Balance + + + + + Transparent Balance + + + + + Pay only the required fee of %1 + + + + + Estimated to begin confirmation within %n block(s). + + Estimated to begin confirmation within %n block. + Estimated to begin confirmation within %n blocks. + + + + + Warning: Invalid Firo address + + + + + Warning: Unknown change address + + + + + Confirm custom change address + + + + + 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? + + + + + (no label) + + + + + + Error + Error + + + + Sending private funds to an exchange address is temporarily unavailable. Move the funds to a transparent address first, then send from there. + + + + + This payment does not fit in one Spark coin and will be sent as %1 separate transactions. Each pays its own fee, they can be linked to each other, and if one of them is rejected the recipients will have been paid only in part. + + + + + SendCoinsEntry + + + Choose previously used address + + + + + This is a normal payment. + + + + + PAY &TO + + + + + The Firo address to send the payment to + + + + + Alt+A + Alt+A + + + + Paste address from clipboard + Paste address from clipboard + + + + Alt+P + Alt+P + + + + Remove this entry + + + + + Resolves to: + + + + + + margin-top:2px; + + + + + &LABEL + + + + + A&MOUNT + + + + + The fee will be deducted from the amount being sent. The recipient will receive less firos than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + + + + + S&UBTRACT FEE FROM AMOUNT + + + + + Rosen Bridge: + + + + + MESSAGE + + + + + Optional message for this transaction + + + + + Enter a label for this address to add it to the list of used addresses + + + + + Enter a label for this address to add it to your address book + + + + + Message exceeds %1 bytes limit + + + + + Metadata: %1 bytes + + + + + + +Raw data: %1 + + + + + Switch to Transparent Balance to send this Rosen Bridge transfer. + + + + + + This transaction includes Rosen Bridge OP_RETURN metadata. + + + + + You are sending Firo to an Exchange Address. Exchange Addresses can only receive funds from a transparent address. + + + + + You are sending Firo from a transparent address to another transparent address. To protect your privacy, we recommend using Spark addresses instead. + + + + + You are sending Firo from a transparent address to a Spark address. + + + + + You are sending Firo from a Spark address to another Spark address. This transaction is fully private. + + + + + You are sending Firo from a private Spark pool to a transparent address. Please note that some exchanges do not accept direct Spark deposits. + + + + + SendConfirmationDialog + + + + Yes + + + + + ShutdownWindow + + + %1 is shutting down... + + + + + Do not shut down the computer until this window disappears. + + + + + SignVerifyMessageDialog + + + Signatures - Sign / Verify a Message + Signatures - Sign / Verify a Message + + + + &Sign Message + &Sign Message + + + + You can sign messages/agreements with your addresses to prove you can receive firos 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. + + + + + The Firo or Spark address to sign the message with + + + + + + Choose previously used address + + + + + + Alt+A + Alt+A + + + + Paste address from clipboard + Paste address from clipboard + + + + Alt+P + Alt+P + + + + Enter the message you want to sign here + Enter the message you want to sign here + + + + Signature + Signature + + + + Copy the current signature to the system clipboard + Copy the current signature to the system clipboard + + + + Sign the message to prove you own this Firo or Spark address + + + + + The Firo or Spark address the message was signed with + + + + + Verify the message to ensure it was signed with the specified Firo or Spark address + + + + + Sign &Message + Sign &Message + + + + Reset all sign message fields + Reset all sign message fields + + + + + Clear &All + Clear &All + + + + &Verify Message + &Verify Message + + + + 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! + + + + + Verify &Message + Verify &Message + + + + Reset all verify message fields + Reset all verify message fields + + + + Click "Sign Message" to generate signature + + + + + + The entered address is invalid. + + + + + + + + + + + Please check the address and try again. + + + + + + The entered address does not refer to a key. + + + + + + Wallet unlock was cancelled. + + + + + Private key for the entered address is not available. + + + + + Message signing failed. + + + + + + Message signed. + + + + + + The entered Spark name is not registered. + + + + + The entered address is for a different network. + + + + + + The signature could not be decoded. + + + + + + + Please check the signature and try again. + + + + + The signature did not match the message digest. + + + + + + Message verification failed. + + + + + + Message verified. + + + + + SparkNamesPage + + + Form + Form + + + + Spark Names registered to this wallet, along with their expiry. + + + + + Register a new Spark Name for this wallet. + + + + + Create Spark Name + + + + + No Spark Names yet + + + + + Register a Spark Name to give your Spark address a memorable, human-readable name. + + + + + EXPIRES + + + + + ADDITIONAL INFO + + + + + Copy Name + + + + + Copy the Spark Name to the clipboard + + + + + Copy Address + + + + + Copy the resolved Spark address to the clipboard + + + + + Extend - - Synced Headers + + Extend the validity of this Spark Name - - Synced Blocks + + + Expired - - - User Agent + + Expiring Soon - - Open the %1 debug log file from the current data directory. This can take a few seconds for large log files. + + Active + + + SplashScreen - - Decrease font size - + + [testnet] + [testnet] - - Increase font size + + [devnet] + + + TrafficGraphWidget - - Services + + KB/s + + + TransactionDesc + + + Open for %n more block(s) + + Open for %n more block + Open for %n more blocks + + - - Ban Score + + Open until %1 - - Connection Time + + conflicted with a transaction with %1 confirmations - - Last Send + + %1/offline - - Last Receive + + + + abandoned - - Ping Time + + %1/unconfirmed - - The duration of a currently outstanding ping. + + %1 confirmations - Ping Wait + locked via LLMQ based ChainLocks - - Min Ping + + verified via LLMQ based InstantSend - - Time Offset + + Status - - Last block time - Last block time + + , has not been successfully broadcast yet + - - - &Open - &Open + + + , broadcast through %n node(s) + + , broadcast through %n node + , broadcast through %n nodes + - - &Console - &Console + + Date + Date - - &Network Traffic + + Source - - &Clear + + Generated - - Totals + + + + From - - In: + + unknown - Out: + + + To - - Debug log file - Debug log file + + + own address + - - Clear console - Clear console + + + + watch-only + - - 1 &hour + + + label - - 1 &day + + + + + + + Credit + + + matures in %n more block(s) + + matures in %n more block + matures in %n more blocks + + - - 1 &week + + not accepted - - 1 &year + + + + + Debit - - &Disconnect + + Total debit - - - - Ban for + Total credit - - &Unban + + Transaction fee - - Welcome to the %1 RPC console. + + Net amount - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - - - - Type <b>help</b> for an overview of available commands. - Type <b>help</b> for an overview of available commands. + + Message + - WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramification of a command. + Comment - - Network activity disabled + + Transaction ID - - %1 B + + Transaction total size - - %1 KB + + Output index - - %1 MB + + + Messages - - %1 GB + + 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. - - (node id: %1) + + Received with RAP address - via %1 + Sent to RAP address - - - never + + Debug information - - Inbound + + Transaction - - Outbound + + Inputs - - Yes - + + Amount + Amount - - No + + + true - - - Unknown + + + false - ReceiveCoinsDialog - - - &Amount: - - - - - &Label: - &Label: - + TransactionDescDialog - - &Message: - + + This pane shows a detailed description of the transaction + This pane shows a detailed description of the transaction - - Reuse one of the previously used receiving addresses. Reusing addresses has security and privacy issues. Do not use this unless re-generating a payment request made before. + + Details for %1 + + + TransactionTableModel - - R&euse an existing receiving address (not recommended) - + + Date + Date - - - 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 Firo network. + + Type - - - An optional label to associate with the new receiving address. + + Address / Label + + + Open for %n more block(s) + + Open for %n more block + Open for %n more blocks + + - - Use this form to request payments. All fields are <b>optional</b>. + + Open until %1 - - - An optional amount to request. Leave this empty or zero to not request a specific amount. + + Offline - - Clear all fields of the form. + + Unconfirmed - Clear + Abandoned - - Requested payments history + + Confirming (%1 of %2 recommended confirmations) - - &Request payment + + Confirmed (%1 confirmations) - - Show the selected request (does the same as double clicking an entry) + + Conflicted - Show + Immature (%1 confirmations, will be available after %2) - - Remove the selected entries from the list + + This block was not received by any other nodes and will probably not be accepted! - Remove + Generated but not accepted - - Copy URI + + Received with - - Copy label + + Received from - - Copy message + + Sent to - - Copy amount + + Payment to yourself - - - ReceiveRequestDialog - - QR Code + + Mined - - Copy &URI + + Spend to - - Copy &Address + + Spend to yourself - - &Save Image... + + Anonymize - - Request payment to %1 + + Sent to RAP address - - Payment information + + Received with RAP address - - URI + + Mint spark to yourself - Address + Spend spark to yourself - Amount - Amount + Mint spark to + - Label + Spend spark to - Message + Received Spark - - Resulting URI too long, try to reduce the text for label / message. + + watch-only - - Error encoding URI into QR Code. + + Anonymized - - - RecentRequestsTableModel - - Date - Date + + (n/a) + - - Label + + Involves a watch-only address. - - Message + + Locked by InstantSend. - + (no label) - - (no message) + + Transaction status. Hover over this field to show number of confirmations. - - (no amount requested) + + Date and time that the transaction was received. - - Requested + + Type of transaction. - - - SendCoinsDialog - - - Send Coins - Send Coins + + Whether or not a watch-only address is involved in this transaction. + - - Coin Control Features + + Whether or not this transaction was locked by InstantSend. - - Inputs... + + User-defined intent/purpose of the transaction. - - automatically selected + + Amount removed from or added to balance. + + + TransactionView - - Insufficient funds! + + Today - - Quantity: + + This week - - Bytes: + + This month - - Amount: + + Last month - - Fee: + + This year - - After Fee: + + Range... - - Change: + + Received with - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + + Sent to - Custom change address + To yourself - - Transaction Fee: + + Mined - - Choose... + + Other - - collapse fee-settings + + Enter address or label to search - - per kilobyte + + Min amount - - - If the custom fee is set to 1000 satoshis and the transaction is only 250 bytes, then "per kilobyte" only pays 250 satoshis in fee, while "total at least" pays 1000 satoshis. For transactions bigger than a kilobyte both pay by kilobyte. + + Abandon transaction - - Hide + + Copy address - - total at least + + Copy amount - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for Firo transactions than the network can process. + + Copy transaction ID - - (read the tooltip) + + Copy raw transaction - - Recommended: + + Copy full transaction details - - Custom: + + Edit label - - (Smart fee not initialized yet. This usually takes a few blocks...) + + Show transaction details - - normal + + Export Transaction History - - fast + + Comma separated file (*.csv) - - Send to multiple recipients at once - Send to multiple recipients at once + + Confirmed + Confirmed - - Add &Recipient - Add &Recipient + + + Watch-only + - - Clear all fields of the form. - + + + Date + Date - - Dust: + + Type - - Confirmation time target: + + Label - - Clear &All - Clear &All - - - - Balance: - Balance: + + + Address + - - Confirm the send action - Confirm the send action + + RECEIVED + - - S&end - S&end + + SENT + - - Copy quantity + + Filter by watch-only involvement - Copy amount + Watch-only filter - - Copy fee + + All transactions - Copy after fee + Watch-only transactions - Copy bytes + Non-watch-only transactions - - Copy dust + + Filter by InstantSend status - Copy change + Any InstantSend status - - - - - %1 to %2 + + Locked by InstantSend - - Are you sure you want to send? + + Not locked by InstantSend - - added as transaction fee + + Filter by date - - Total Amount %1 + + Any date - - or + + Filter by transaction type - - Confirm send coins + + Any type - - The recipient address is not valid. Please recheck. + + Spend to - - The amount to pay must be larger than 0. + + Spend to yourself - - The amount exceeds your balance. + + Anonymize - - The total exceeds your balance when the %1 transaction fee is included. + + Sent to RAP address - - Duplicate address found: addresses should only be used once each. + + Received with RAP address - - Transaction creation failed! + + Mint spark to yourself - - The transaction was rejected with the following reason: %1 + + Spend spark to yourself - - A fee higher than %1 is considered an absurdly high fee. + + Mint spark to - - Payment request expired. + + Spend spark to - - - %n block(s) - - %n block - %n blocks - - - - Pay only the required fee of %1 + + Received Spark - - - Estimated to begin confirmation within %n block(s). - - Estimated to begin confirmation within %n block. - Estimated to begin confirmation within %n blocks. - - - - Warning: Invalid Firo address + + Sort by - - Warning: Unknown change address + + Sort transactions by - - Confirm custom change address + + Sort the transaction history - - 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? + + Status - - (no label) + + Transaction type - - Error - + + Amount + Amount - - Sending private funds to an exchange address is temporarily unavailable. Move the funds to a transparent address first, then send from there. + + InstantSend - - This payment does not fit in one Spark coin and will be sent as %1 separate transactions. Each pays its own fee, they can be linked to each other, and if one of them is rejected the recipients will have been paid only in part. + + Export - - - SendCoinsEntry - - - - A&mount: - A&mount: + + Export the data in the current tab to a file + Export the data in the current tab to a file - - Pay &To: - Pay &To: + + + No transactions yet + - - &Label: - &Label: + + + Your history will appear here after the first transfer + - - Choose previously used address + + Re-broadcast transaction - - This is a normal payment. + + Wallet is still syncing - - The Firo address to send the payment to + + Transactions will appear here as synchronization completes - - Alt+A - Alt+A + + No matching transactions + - - Paste address from clipboard - Paste address from clipboard + + Try adjusting the filters above + - - Alt+P - Alt+P + + Sort ascending + - - - - Remove this entry + + Sort descending - - The fee will be deducted from the amount being sent. The recipient will receive less firos than you enter in the amount field. If multiple recipients are selected, the fee is split equally. + + ID - S&ubtract fee from amount + Exporting Failed - - Message: + + There was an error trying to save the transaction history to %1. - - This is an unauthenticated payment request. + + Exporting Successful - - This is an authenticated payment request. + + The transaction history was successfully saved to %1. - - Enter a label for this address to add it to the list of used addresses + + + Re-broadcast - - A message that was attached to the firo: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Firo network. + + Broadcast succeeded - - - Pay To: + + There was an error trying to broadcast the message: %1 - - - Memo: + + Range: - - Enter a label for this address to add it to your address book + + to - SendConfirmationDialog + UnitDisplayStatusBarControl - - - Yes + + Unit to show amounts in. Click to select another unit. - ShutdownWindow - - - %1 is shutting down... - - + WalletFrame - - Do not shut down the computer until this window disappears. + + No wallet has been loaded. - SignVerifyMessageDialog - - - Signatures - Sign / Verify a Message - Signatures - Sign / Verify a Message - + WalletModel - - &Sign Message - &Sign Message + + Send Coins + Send Coins - - You can sign messages/agreements with your addresses to prove you can receive firos 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. + + You have received a payment to a RAP address, please unlock your wallet to receive. - - The Firo address to sign the message with + + RAP address payment - - - Choose previously used address + + RAP addresses require you to unlock your wallet every time a payment to it is received. - - - Alt+A - Alt+A - - - - Paste address from clipboard - Paste address from clipboard - - - - Alt+P - Alt+P - - - - Enter the message you want to sign here - Enter the message you want to sign here - - - - Signature - Signature - - - - Copy the current signature to the system clipboard - Copy the current signature to the system clipboard - - - - Sign the message to prove you own this Firo address - Sign the message to prove you own this Firo address - - - - Sign &Message - Sign &Message - - - - Reset all sign message fields - Reset all sign message fields - - - - - Clear &All - Clear &All - - - - &Verify Message - &Verify Message + + If you do not enter your password now, you will need to rescan your wallet to receive your FIRO.<br/><br/>Re-enter your password? + - - 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! + + Spark wallet is not available. - - The Firo address the message was signed with + + The entered address is invalid. - - Verify the message to ensure it was signed with the specified Firo address - Verify the message to ensure it was signed with the specified Firo address + + The entered address is for a different network. + - - Verify &Message - Verify &Message + + The entered address does not belong to this wallet. + - - Reset all verify message fields - Reset all verify message fields + + Spark Coin Control temporarily supports selecting at most one coin. Clear the selection to let the wallet split the payment automatically. + - - Click "Sign Message" to generate signature + + Subtracting the fee from the amount is temporarily unavailable for Spark spends. - - - The entered address is invalid. + + Spend to transparent address limit exceeded. - - - - - Please check the address and try again. + + A Spark payment may use at most %1 transactions. - - - The entered address does not refer to a key. + + The available Spark coins cannot cover the amount and the required transaction fees. - - Wallet unlock was cancelled. + + Unable to create a single-input Spark transaction. - - Private key for the entered address is not available. + + Spark fee estimate did not match the wallet (planned %1, wallet %2). - - Message signing failed. + + Unable to create a versioned Spark transaction. - - Message signed. + + Chain height changed during Spark name construction; retry - - The signature could not be decoded. + + Spark name registration temporarily uses a single Spark coin. Please select at most one. - - Please check the signature and try again. + Unable to select a Spark coin. - - The signature did not match the message digest. + + Spark name registration temporarily requires one Spark coin large enough to cover the registration and transaction fees. - - Message verification failed. + + Unable to create the expected Spark transaction format. - - Message verified. + + + + Refusing to commit an incompatible Spark transaction format. - - - SplashScreen - - [testnet] - [testnet] + + Refusing to commit an incomplete Spark transaction. + - - - TrafficGraphWidget - - KB/s + + This payment was split across %1 transactions and %2 of them were already sent, so the recipients have been paid only in part. Do not retry the whole payment. Already sent: %3 - TransactionDesc - - - Open for %n more block(s) - - Open for %n more block - Open for %n more blocks - + WalletView + + + Backup Wallet + - - Open until %1 + + Wallet Data (*.dat) - conflicted with a transaction with %1 confirmations + Backup Failed - - %1/offline + + There was an error trying to save the wallet data to %1. - - 0/unconfirmed, %1 + + Backup Successful - in memory pool + The wallet data was successfully saved to %1. + + + firo-core - - not in memory pool - + + Options: + Options: - - abandoned - + + Specify data directory + Specify data directory - - %1/unconfirmed + + Connect to a node to retrieve peer addresses, and disconnect + Connect to a node to retrieve peer addresses, and disconnect + + + + Specify your own public address + Specify your own public address + + + + Accept command line and JSON-RPC commands + Accept command line and JSON-RPC commands + + + + Accept connections from outside (default: 1 if no -proxy or -connect/-noconnect) - - %1 confirmations + + Connect only to the specified node(s); -noconnect or -connect=0 alone to disable automatic connections - - Status + + Distributed under the MIT software license, see the accompanying file %s or %s - - , has not been successfully broadcast yet + + Prune configured below the minimum of %d MiB. Please use a higher number. - + - , broadcast through %n node(s) - - , broadcast through %n node - , broadcast through %n nodes - + Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) + - - Date - Date + + Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. + - - Source + + Error: A fatal internal error occurred, see debug.log for details - - Generated + + Fee (in %s/kB) to add to transactions you send (default: %s) - - - - From + + Pruning blockstore... - - unknown - + + Run in the background as a daemon and accept commands + Run in the background as a daemon and accept commands - - - - To + + Unable to start HTTP server. See debug log for details. - - own address + + + Firo Core + Firo Core + + + + The %s developers - - - watch-only + + A fee rate (in %s/kB) that will be used when fee estimation has insufficient data (default: %s) - - label + + Accept relayed transactions received from whitelisted peers even when not relaying transactions (default: %d) - - - - - Credit - + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Bind to given address and always listen on it. Use [host]:port notation for IPv6 - - - matures in %n more block(s) - - matures in %n more block - matures in %n more blocks - + + + Cannot obtain a lock on data directory %s. %s is probably already running. + - - not accepted + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - - - - Debit + + Error loading %s: You can't enable HD on a already existing non-HD wallet - - Total debit + + Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - - Total credit + + Extra transactions to keep in memory for compact block reconstructions (default: %u) - - Transaction fee + + Failed to create backup, file already exists! This could happen if you restarted wallet in less than 60 seconds. You can continue if you are ok with this. - - Net amount + + Has to have at least two mint coins with at least 1 confirmation in order to spend a coin - - - Message + + If <category> is not supplied or is 1 or all, output all debugging information. The value none resets categories specified before it. The value 0 retains Firo's historical behavior and disables all logging except errors. - - Comment + + 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) - - Transaction ID + + In case of sync/reindex verifies privacy (Spark) proofs with batch verification, default: true - - Transaction total size + + Interval in seconds for rebroadcasting InstantSend-locked mempool transactions to peers (0 = disabled, default: %u) - - Output index + + Make automatic outbound connections only to network <net> (ipv4, ipv6 or onion). Can be specified multiple times to allow multiple networks. - - Merchant + + Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by peers forward or backward by this amount. (default: %u seconds) - 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. + Maximum total fees (in %s) to use in a single wallet transaction or raw transaction; setting this too low may abort large transactions (default: %s) - - Debug information + + Optionally add the "S" flag to wrap the output in a pay-to-script-hash. - - Transaction + + Optionally add the "W" flag to produce a pay-to-witness-pubkey-hash output - - Inputs + + Optionally add the "W" flag to produce a pay-to-witness-script-hash output - - Amount - Amount + + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is explicitly forbidden: -onion=0 + - - - true + + Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided: none of -proxy, -onion, -torsetup or -listenonion (with a usable -torcontrol) is given. - - - false + + Output only the hex-encoded transaction id of the resultant transaction. - - - TransactionDescDialog - - This pane shows a detailed description of the transaction - This pane shows a detailed description of the transaction + + Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. + - - Details for %1 + + Please contribute if you find %s useful. Visit %s for further information about the software. - - - TransactionTableModel - - Date - Date + + Read extra arguments from standard input, one per line until EOF/Ctrl-D (recommended for sensitive information such as passphrases) + - - Type + + Reduce storage requirements by enabling pruning (deleting) of old blocks. This allows the pruneblockchain RPC to be called to delete specific blocks, and enables automatic pruning of old blocks if a target size in MiB is provided. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, >%u = automatically prune block files to stay under the specified target size in MiB) - - Label + + Set lowest fee rate (in %s/kB) for transactions to be included in block creation. (default: %s) - - - Open for %n more block(s) - - Open for %n more block - Open for %n more blocks - - - - Open until %1 + + Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - - Offline + + Spark Coin Control temporarily supports selecting at most one coin. Clear the selection to let the wallet split the payment automatically. - Unconfirmed + Spark batch verification failed. The invalid spend transactions are listed in debug.log. Restart the node: batching is disabled and a reindex is started automatically so chainstate is rebuilt and Spark proofs are checked block by block. - - Abandoned + + Spark multi-input spends are temporarily disabled. No single available Spark coin can fund this transaction. - Confirming (%1 of %2 recommended confirmations) + Spark spend batch failed after committing %u of %u transactions: %s. Do not retry the whole payment. Already sent: %s - Confirmed (%1 confirmations) + Subtracting the fee from the amount is temporarily unavailable when a Spark spend must be split across multiple transactions. - - Conflicted + + The available Spark coins cannot cover the amount and the required transaction fees. - Immature (%1 confirmations, will be available after %2) + 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 - - This block was not received by any other nodes and will probably not be accepted! + + This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Generated but not accepted + This product includes Masternodes software developed by the Dash Core developers %s. - - Received with + + Transaction is too large (size limit: 250Kb). Select less inputs or consolidate your UTXOs - - Received from + + Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain - - Sent to + + Unsupported logging level or category %s. Valid levels are: %s. Valid categories are: %s. - - Payment to yourself + + Use Mnemonic code for generating deterministic keys. Only has effect during wallet creation/first start - - Mined + + Use UPnP to map the listening port (default: 1 when listening and no -proxy) - - watch-only + + Use this argument when you want to keep additional data in block index for mobile api, default: false - - (n/a) + + User defined mnemonic for HD wallet (bip39). Only has effect during wallet creation/first start (default: randomly generated) - - (no label) + + User defined mnemonic passphrase for HD wallet (BIP39). Only has effect during wallet creation/first start (default: empty string) - - Transaction status. Hover over this field to show number of confirmations. + + User defined seed for HD wallet (should be in hex). Only has effect during wallet creation/first start (default: randomly generated) - - Date and time that the transaction was received. + + Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. The client then connects normally using the rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This option can be specified multiple times - - Type of transaction. + + Wallet is locked, can't replenish keypool! Automatic backups and mixing are disabled, please unlock your wallet to replenish keypool. - - Whether or not a watch-only address is involved in this transaction. + + Wallet will not create transactions that violate mempool chain limits (default: %u) - - User-defined intent/purpose of the transaction. + + Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - - Amount removed from or added to balance. + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - - - TransactionView - - - All + + You are starting in lite mode, all Dash-specific functionality is disabled. - - Today + + You must specify a znodeblsprivkey in the configuration. Please see documentation for help. - - This week + + You need to rebuild the database using -reindex-chainstate to change -txindex - - This month + + %s Daemon - Last month + %s RPC client version - This year + %s corrupt, salvage failed - Range... + %s firo-tx utility version - - Received with + + -maxmempool must be at least %d MB - - Sent to + + -wallet parameter must only specify a filename (not a path) - - To yourself + + <category> can be: - Mined + A Spark payment may use at most %u transactions. - - Other + + Add Pay To n-of-m Multi-sig output to TX. n = REQUIRED, m = PUBKEYS - - Enter address or label to search + + Add address-based output to TX - - Min amount + + Add data-based output to TX - - Abandon transaction + + Add input to TX - Copy address + Add pay-to-pubkey output to TX - Copy label + Add raw script output to TX - Copy amount + Add zero or more signatures to transaction - - Copy transaction ID + + Amount for recipient %1% is too small to pay the fee - Copy raw transaction + Amount for recipient %1% is too small - Copy full transaction details + Anonymous communication with TOR - Quickstart (default: %d) - Edit label + Append comment to the user agent string - Show transaction details + Attempt to recover private keys from a corrupt wallet on startup - - Export Transaction History + + Bad change address - Comma separated file (*.csv) - + Block creation options: + Block creation options: - - Confirmed - Confirmed + + Block index is outdated, reindex required + + - Watch-only + Cannot resolve -%s address: '%s' - - Date - Date - - - - Type + + Cannot write default spark address - Label + Chain height changed during Spark name construction; retry - Address + Chain height changed during Spark transaction construction; retry - - ID + + Chain selection options: - - Exporting Failed + + Chain tip changed during Spark name construction; retry - - There was an error trying to save the transaction history to %1. + + Chain tip changed during Spark transaction construction; retry - - Exporting Successful + + Chain tip is unavailable during Spark name construction - - The transaction history was successfully saved to %1. + + Change index out of range - - Range: + + Commands: - - to + + Connect to JSON-RPC on <port> (default: %u or testnet: %u) - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. + + Connection options: - - - WalletFrame - - No wallet has been loaded. - - - - - WalletModel + + Copyright (C) %i-%i + + - - Send Coins - Send Coins + + Corrupted block database detected + Corrupted block database detected - - Spark Coin Control temporarily supports selecting at most one coin. Clear the selection to let the wallet split the payment automatically. + + Could not open debug log file %s - - Subtracting the fee from the amount is temporarily unavailable for Spark spends. + + Create hex-encoded Firo transaction - - Spend to transparent address limit exceeded. + + Create new, empty TX. - - A Spark payment may use at most %1 transactions. + + Debugging/Testing options: - - The available Spark coins cannot cover the amount and the required transaction fees. + + Delete input N from TX - - - Unable to create a single-input Spark transaction. + + Delete output N from TX - - Spark fee estimate did not match the wallet (planned %1, wallet %2). + + Do not load the wallet and disable wallet RPC calls - - Spark name registration temporarily uses a single Spark coin. Please select at most one. - + + Do you want to rebuild the block database now? + Do you want to rebuild the block database now? - - Unable to select a Spark coin. + + Either recipients or newMints has to be nonempty. - - Spark name registration temporarily requires one Spark coin large enough to cover the registration and transaction fees. + + Enable publish hash block in <address> - - - Refusing to commit a non-single-input Spark transaction. + + Enable publish hash transaction in <address> - - This payment was split across %1 transactions and %2 of them were already sent, so the recipients have been paid only in part. Do not retry the whole payment. Already sent: %3 + + Enable publish raw block in <address> - - - WalletView - - &Export - &Export + + Enable publish raw transaction in <address> + - Export the data in the current tab to a file - Export the data in the current tab to a file + Enable transaction replacement in the memory pool (default: %u) + - - Backup Wallet - + + Error initializing block database + Error initializing block database - Wallet Data (*.dat) - + Error initializing wallet database environment %s! + Error initializing wallet database environment %s! - - Backup Failed + + Error loading %s - - There was an error trying to save the wallet data to %1. + + Error loading %s: Wallet corrupted - - Backup Successful + + Error loading %s: Wallet requires newer version of %s - - The wallet data was successfully saved to %1. + + Error loading %s: You can't disable HD on a already existing HD wallet - - - firo-core - - Options: - Options: + + Error loading block database + Error loading block database - - Specify data directory - Specify data directory + + Error opening block database + Error opening block database - - Connect to a node to retrieve peer addresses, and disconnect - Connect to a node to retrieve peer addresses, and disconnect + + Error upgrading chainstate database + - - Specify your own public address - Specify your own public address + + Error: Disk space is low! + Error: Disk space is low! - - Accept command line and JSON-RPC commands - Accept command line and JSON-RPC commands + + Error: Wallet locked, unable to create transaction! + - - Accept connections from outside (default: 1 if no -proxy or -connect/-noconnect) + + Fail to generate mints, - - Connect only to the specified node(s); -noconnect or -connect=0 alone to disable automatic connections + + Failed to create backup, error: %s - - Distributed under the MIT software license, see the accompanying file %s or %s + + Failed to delete backup, error: %s - - If <category> is not supplied or if <category> = 1, output all debugging information. - + + Failed to listen on any port. Use -listen=0 if you want this. + Failed to listen on any port. Use -listen=0 if you want this. - - Prune configured below the minimum of %d MiB. Please use a higher number. + + Get help for a command - Prune: last wallet synchronisation goes beyond pruned data. You need to -reindex (download the whole blockchain again in case of pruned node) + Importing... - - Rescans are not possible in pruned mode. You will need to use -reindex which will download the whole blockchain again. + + Incorrect or no genesis block found. Wrong datadir for network? + Incorrect or no genesis block found. Wrong datadir for network? + + + + Initialization sanity check failed. %s is shutting down. - - Error: A fatal internal error occurred, see debug.log for details + + Invalid -onion address: '%s' - - Fee (in %s/kB) to add to transactions you send (default: %s) + + prevtxs=JSON object - - Pruning blockstore... + + privatekeys=JSON object - - Run in the background as a daemon and accept commands - Run in the background as a daemon and accept commands + + version + version - - Unable to start HTTP server. See debug log for details. + + Invalid amount for -fallbackfee=<amount>: '%s' - - Firo Core - Firo Core + + Keep the transaction memory pool below <n> megabytes (default: %u) + - - The %s developers + + Loading banlist... - - A fee rate (in %s/kB) that will be used when fee estimation has insufficient data (default: %s) + + Location of the auth cookie (default: data dir) - - Accept relayed transactions received from whitelisted peers even when not relaying transactions (default: %d) + + Not enough file descriptors available. + Not enough file descriptors available. + + + + Print this help message and exit - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Bind to given address and always listen on it. Use [host]:port notation for IPv6 + + Print version and exit + - - Cannot obtain a lock on data directory %s. %s is probably already running. + + Prune cannot be configured with a negative value. - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + + Prune mode is incompatible with -txindex. - - Error loading %s: You can't enable HD on a already existing non-HD wallet + + Rebuild chain state and block index from the blk*.dat files on disk - - Error reading %s! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + + Rebuild chain state from the currently indexed blocks - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Rewinding blocks... + - - Extra transactions to keep in memory for compact block reconstructions (default: %u) + + Set database cache size in megabytes (%d to %d, default: %d) - - 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) + + Set maximum block size in bytes (default: %d) - - Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by peers forward or backward by this amount. (default: %u seconds) - + + Specify wallet file (within data directory) + Specify wallet file (within data directory) - - Maximum total fees (in %s) to use in a single wallet transaction or raw transaction; setting this too low may abort large transactions (default: %s) + + The source code is available from %s. - - Please check that your computer's date and time are correct! If your clock is wrong, %s will not work properly. + + Unable to bind to %s on this computer. %s is probably already running. - - Please contribute if you find %s useful. Visit %s for further information about the software. + + Unable to create a single-input Spark transaction. - - Reduce storage requirements by enabling pruning (deleting) of old blocks. This allows the pruneblockchain RPC to be called to delete specific blocks, and enables automatic pruning of old blocks if a target size in MiB is provided. This mode is incompatible with -txindex and -rescan. Warning: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, >%u = automatically prune block files to stay under the specified target size in MiB) + + Unable to create a valid Spark name transaction - - Set lowest fee rate (in %s/kB) for transactions to be included in block creation. (default: %s) + + Unable to create spend transaction. - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) + + Unable to estimate the final Spark name transaction fee - - 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 + + Unable to generate spend key, wallet is locked. - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications + + Unable to generate spend key. - - Unable to rewind the database to a pre-fork state. You will need to redownload the blockchain + + Unable to mint full amount; only partial minting was possible - - Use UPnP to map the listening port (default: 1 when listening and no -proxy) + + Unable to select Spark coins for spend. - - Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. The client then connects normally using the rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This option can be specified multiple times + + Unable to select coins for minting - - Wallet will not create transactions that violate mempool chain limits (default: %u) + + Unable to select cons for spend - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. + Unsupported argument -benchmark ignored, use -debug=bench. - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + + Unsupported argument -debugnet ignored, use -debug=net. + + + + + Unsupported argument -tor found, use -onion. - - You need to rebuild the database using -reindex-chainstate to change -txindex + + Update hex-encoded Firo transaction - %s corrupt, salvage failed - + Usage: + Usage: - - -maxmempool must be at least %d MB + + Use UPnP to map the listening port (default: %u) - <category> can be: + Use the dev chain - - Append comment to the user agent string + + Use the test chain - Attempt to recover private keys from a corrupt wallet on startup + User Agent comment (%s) contains unsafe characters. - Block creation options: - Block creation options: + Verifying blocks... + Verifying blocks... - - Cannot resolve -%s address: '%s' - + + Verifying wallet... + Verifying wallet... - - Chain selection options: + + Wait for RPC server to start - Change index out of range - + Wallet %s resides outside data directory %s + Wallet %s resides outside data directory %s - - Connection options: + + Wallet debugging/testing options: - Copyright (C) %i-%i + Wallet locked - Corrupted block database detected - Corrupted block database detected + Wallet locked, unable to create transaction! + - Debugging/Testing options: + Wallet needed to be rewritten: restart %s to complete - Do not load the wallet and disable wallet RPC calls + Wallet options: - - Do you want to rebuild the block database now? - Do you want to rebuild the block database now? + + Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + - - Enable publish hash block in <address> + + Amount for private recipient %1% is too small to send after the fee has been deducted - - Enable publish hash transaction in <address> + + Amount for recipient %1% is too small to send after the fee has been deducted - - Enable publish raw block in <address> + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - - Enable publish raw transaction in <address> + + Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - - Enable transaction replacement in the memory pool (default: %u) + + Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (%s) - - Error initializing block database - Error initializing block database + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + - - Error initializing wallet database environment %s! - Error initializing wallet database environment %s! + + Delete all Sigma mints and only recover those parts of the blockchain through -reindex on startup + - - Error loading %s + + Discover own IP addresses (default: 1 when listening and no -externalip or -proxy) - - Error loading %s: Wallet corrupted + + Do not check for masternode payout when handling listtransactions, listsinceblock and gettransaction calls (improves performance) - - Error loading %s: Wallet requires newer version of %s + + Error: Listening for incoming connections failed (listen returned error %s) - - Error loading %s: You can't disable HD on a already existing HD wallet + + Error: The transaction was rejected after %u of %u mint transactions were already sent. Do not retry the whole mint. - - Error loading block database - Error loading block database + + Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. + - - Error opening block database - Error opening block database + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - - Error: Disk space is low! - Error: Disk space is low! + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID, %t is replaced by transaction type: 'spark' or 'regular') + - - Failed to listen on any port. Use -listen=0 if you want this. - Failed to listen on any port. Use -listen=0 if you want this. + + Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s) + - - Importing... + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - - Incorrect or no genesis block found. Wrong datadir for network? - Incorrect or no genesis block found. Wrong datadir for network? + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + - - Initialization sanity check failed. %s is shutting down. + + Maximum size of data in data carrier transactions we relay and mine (default: %u) - - Invalid -onion address: '%s' + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) - - Invalid amount for -%s=<amount>: '%s' + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - - Invalid amount for -fallbackfee=<amount>: '%s' + + The transaction amount is too small to send after the fee has been deducted - - Keep the transaction memory pool below <n> megabytes (default: %u) + + Use hierarchical deterministic key generation (HD) after BIP32. Only has effect during wallet creation/first start - - Loading banlist... + + Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - - Location of the auth cookie (default: data dir) + + You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - - Not enough file descriptors available. - Not enough file descriptors available. + + (default: %u) + - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) + + Accept public REST requests (default: %u) - - Print this help message and exit + + Automatically create Tor hidden service (default: %d) - - Print version and exit + + Connect through SOCKS5 proxy - - Prune cannot be configured with a negative value. + + Error reading from database, shutting down. - - Prune mode is incompatible with -txindex. + + Imports blocks from external blk000??.dat file on startup - Rebuild chain state and block index from the blk*.dat files on disk + Information + Information + + + + Invalid Spark spend amount. + + + + + Invalid amount for -mininput=<amount>: '%s' - Rebuild chain state from the currently indexed blocks + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - - Rewinding blocks... + + Invalid characters in -wallet filename - - Set database cache size in megabytes (%d to %d, default: %d) + + Invalid netmask specified in -whitelist: '%s' - - Set maximum block size in bytes (default: %d) + + Invalid spark address - - Specify wallet file (within data directory) - Specify wallet file (within data directory) + + Invalid znodeblsprivkey. Please see documentation. + - - The source code is available from %s. + + Keep at most <n> unconnectable transactions in memory (default: %u) - - Unable to bind to %s on this computer. %s is probably already running. + + List commands - Unsupported argument -benchmark ignored, use -debug=bench. + Load JSON file FILENAME into register NAME - Unsupported argument -debugnet ignored, use -debug=net. + Loading Spark wallet... - - Unsupported argument -tor found, use -onion. + + Loading wallet... (%d transactions) - - Use UPnP to map the listening port (default: %u) + + Need to specify a port with -whitebind: '%s' - Use the test chain + No Spark spend recipients were provided. - User Agent comment (%s) contains unsafe characters. + No such coin in set - - Verifying blocks... - Verifying blocks... + + Node relay options: + - Verifying wallet... - Verifying wallet... + Not enough fee estimated + - - Wallet %s resides outside data directory %s - Wallet %s resides outside data directory %s + + Pass named instead of positional arguments (default: %s) + - - Wallet debugging/testing options: + + Private recipient has invalid amount - - Wallet needed to be rewritten: restart %s to complete + + RPC server options: - - Wallet options: + + Recipient %1% has invalid amount - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times + + Reducing -maxconnections from %d to %d, because of system limitations. - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + + Register Commands: - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) + Rescan the block chain for missing wallet transactions on startup - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + + See signrawtransaction docs for format of sighash flags, JSON objects. - - Discover own IP addresses (default: 1 when listening and no -externalip or -proxy) + + Select JSON output - - Error: Listening for incoming connections failed (listen returned error %s) + + Selected Spark cover set is not yet bound to a canonical state hash - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + + Send command to %s (with named arguments) + - - Fees (in %s/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s) + + Send command to %s - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + + Send commands to node running on <ip> (default: %s) - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - + + Send trace/debug info to console instead of debug.log file + Send trace/debug info to console instead of debug.log file - - Maximum size of data in data carrier transactions we relay and mine (default: %u) + + Send transactions as zero-fee transactions if possible (default: %u) - - Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + + Set TX lock time to N - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + + Set TX version to N - - The transaction amount is too small to send after the fee has been deducted + + Set register NAME to given JSON-STRING - - Use hierarchical deterministic key generation (HD) after BIP32. Only has effect during wallet creation/first start + + Show all debugging options (usage: --help -help-debug) - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - + + Shrink debug.log file on client startup (default: 1 when no -debug) + Shrink debug.log file on client startup (default: 1 when no -debug) - - You need to rebuild the database using -reindex to go back to unpruned mode. This will redownload the entire blockchain - + + Signing transaction failed + Signing transaction failed - - (default: %u) + + Spark V2 spends are limited to %1% inputs - - Accept public REST requests (default: %u) + + Spark address doesn't belong to the wallet - - Automatically create Tor hidden service (default: %d) + + Spark coin selection changed during transaction construction; retry - - Connect through SOCKS5 proxy + + Spark fee estimate did not match the wallet (planned %s, wallet %s). - - Error reading from database, shutting down. + + Spark name transaction size is out of range - - Imports blocks from external blk000??.dat file on startup + + Spark shielded output limit exceeded. - - Information - Information + + Spark spend amount is out of range + - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + + Spark spend amount plus fee is out of range - Invalid netmask specified in -whitelist: '%s' + Spark spend fee is out of range - Keep at most <n> unconnectable transactions in memory (default: %u) + Spark spend output amount is out of range - - Need to specify a port with -whitebind: '%s' + + Spark spend size estimate is out of range - Node relay options: + Spark transaction fee is too high. - - RPC server options: + + Spark transactions are disabled at the moment - - Reducing -maxconnections from %d to %d, because of system limitations. + + Spend to transparent address limit exceeded. - - Rescan the block chain for missing wallet transactions on startup + + Start %s Daemon - - Send trace/debug info to console instead of debug.log file - Send trace/debug info to console instead of debug.log file + + Synchronization failed + - Send transactions as zero-fee transactions if possible (default: %u) + Synchronization finished - - Show all debugging options (usage: --help -help-debug) + + Synchronization pending... - Shrink debug.log file on client startup (default: 1 when no -debug) - Shrink debug.log file on client startup (default: 1 when no -debug) + Synchronizing blockchain... + - Signing transaction failed - Signing transaction failed + Synchronizing governance objects... + - + The transaction amount is too small to pay the fee + This command requires JSON registers: + + + + + This help message + + + + This is experimental software. - + + Timeout during HTTP requests (default: %d) + + + + Tor control port password (default: empty) @@ -4704,14 +7647,19 @@ Transaction amount too small - - Transaction too large for fee policy + + Transaction commit failed. + + + + + Transaction not allowed in mempool - Transaction too large - Transaction too large + Transaction too large for fee policy + @@ -4719,17 +7667,17 @@ - + Upgrade wallet to latest format on startup - + Username for JSON-RPC connections Username for JSON-RPC connections - + Warning Warning @@ -4738,11 +7686,31 @@ Warning: unknown new rules activated (versionbit %i) + + + Wasn't able to create wallet backup folder %s! + + Whether to operate in a blocks only mode (default: %u) + + + You can not start a masternode in lite mode. + + + + + You can not start a znode in lite mode. + + + + + Zapping all Sigma mints from wallet... + + Zapping all transactions from wallet... @@ -4754,37 +7722,32 @@ - + Password for JSON-RPC connections Password for JSON-RPC connections - + Execute command when the best block changes (%s in cmd is replaced by block hash) Execute command when the best block changes (%s in cmd is replaced by block hash) - + Allow DNS lookups for -addnode, -seednode and -connect Allow DNS lookups for -addnode, -seednode and -connect - + Loading addresses... Loading addresses... - + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - - -maxtxfee is set very high! Fees this large could be paid on a single transaction. - - - - + Do not keep transactions in the mempool longer than <n> hours (default: %u) @@ -4794,7 +7757,7 @@ - + Fees (in %s/kB) smaller than this are considered zero fee for transaction creation (default: %s) @@ -4804,47 +7767,42 @@ - + How thorough the block verification of -checkblocks is (0-4, default: %u) - + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - + Number of seconds to keep misbehaving peers from reconnecting (default: %u) - + Output debugging information (default: %u, supplying <category> is optional) - + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect/-noconnect) - + Sets the serialization of raw transaction or block hex returned in non-verbose mode, non-segwit(0) or segwit(1) (default: %d) - + Support filtering of blocks and transaction with bloom filters (default: %u) - - This is the transaction fee you may pay when fee estimates are not available. - - - - + This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. @@ -4854,7 +7812,7 @@ - + Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit (default: %d) @@ -4869,12 +7827,12 @@ - + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - + Warning: Unknown block versions being mined! It's possible unknown rules are in effect @@ -4889,22 +7847,17 @@ - - %s is set very high! - - - - + (default: %s) - + Always query for peer addresses via DNS lookup (default: %u) - + How many blocks to check at startup (default: %u, 0 = all) @@ -4919,12 +7872,12 @@ Invalid -proxy address: '%s' - + Keypool ran out, please call keypoolrefill first - + Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) @@ -4934,7 +7887,7 @@ - + Maintain at most <n> connections to peers (default: %u) @@ -4954,12 +7907,12 @@ - + Prepend debug output with timestamp (default: %u) - + Relay and mine data carrier transactions (default: %u) @@ -4969,12 +7922,12 @@ - + Send transactions with full-RBF opt-in enabled (default: %u) - + Set key pool size to <n> (default: %u) @@ -4984,12 +7937,12 @@ - + Set the number of threads to service RPC calls (default: %d) - + Specify configuration file (default: %s) @@ -5004,42 +7957,37 @@ - + Spend unconfirmed change when sending transactions (default: %u) - + Starting network threads... - + The wallet will avoid paying less than the minimum relay fee. - + This is the minimum transaction fee you pay on every transaction. - - - This is the transaction fee you will pay if you send a transaction. - - Threshold for disconnecting misbehaving peers (default: %u) - + Transaction amounts must not be negative - + Transaction has too long of a mempool chain @@ -5049,32 +7997,32 @@ - + Unknown network specified in -onlynet: '%s' Unknown network specified in -onlynet: '%s' - + Insufficient funds Insufficient funds - + Loading block index... Loading block index... - + Add a node to connect to and attempt to keep the connection open Add a node to connect to and attempt to keep the connection open - + Loading wallet... Loading wallet... - + Cannot downgrade wallet Cannot downgrade wallet @@ -5084,19 +8032,24 @@ Cannot write default address - + Rescanning... Rescanning... - + Done loading Done loading - + Error Error + + + Zerocoin->Sigma remint + + From 110e8af30b9cccd7db942d78dba0340765e45071 Mon Sep 17 00:00:00 2001 From: Reuben Yap Date: Sun, 30 Aug 2026 13:47:33 +0800 Subject: [PATCH 3/4] Qt: Fix invalid translation entries Restore malformed rich text and placeholders, and replace a blank Ping label. --- src/qt/locale/bitcoin_bg.ts | 2 +- src/qt/locale/bitcoin_ca.ts | 4 ++-- src/qt/locale/bitcoin_ca@valencia.ts | 4 ++-- src/qt/locale/bitcoin_ca_ES.ts | 4 ++-- src/qt/locale/bitcoin_et.ts | 2 +- src/qt/locale/bitcoin_fa.ts | 2 +- src/qt/locale/bitcoin_id_ID.ts | 2 +- src/qt/locale/bitcoin_it.ts | 2 +- src/qt/locale/bitcoin_ko_KR.ts | 4 ++-- src/qt/locale/bitcoin_vi_VN.ts | 2 +- src/qt/locale/bitcoin_zh_CN.ts | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/bitcoin_bg.ts index 89d0f3eb8d..46e821cfd1 100644 --- a/src/qt/locale/bitcoin_bg.ts +++ b/src/qt/locale/bitcoin_bg.ts @@ -1334,7 +1334,7 @@ Type <b>help</b> for an overview of available commands. - Въведeте </b>помощ</b> за да видите наличните команди. + Напишете <b>help</b>, за да прегледате възможните команди. %1 B diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/bitcoin_ca.ts index f249c61775..b834e3bf47 100644 --- a/src/qt/locale/bitcoin_ca.ts +++ b/src/qt/locale/bitcoin_ca.ts @@ -1610,11 +1610,11 @@ Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Utilitza les fletxes d'amunt i avall per navegar per l'historial, i <b>Ctrl-L<\b> per netejar la pantalla. + Utilitza les fletxes d'amunt i avall per navegar per l'historial, i <b>Ctrl-L</b> per netejar la pantalla. Type <b>help</b> for an overview of available commands. - Escriviu <b>help<\b> per a obtenir un llistat de les ordres disponibles. + Escriviu <b>help</b> per a obtenir un llistat de les ordres disponibles. %1 B diff --git a/src/qt/locale/bitcoin_ca@valencia.ts b/src/qt/locale/bitcoin_ca@valencia.ts index b1e47f0cbc..4aa07aca4f 100644 --- a/src/qt/locale/bitcoin_ca@valencia.ts +++ b/src/qt/locale/bitcoin_ca@valencia.ts @@ -1378,11 +1378,11 @@ Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Utilitza les fletxes d'amunt i avall per navegar per l'historial, i <b>Ctrl-L<\b> per netejar la pantalla. + Utilitza les fletxes d'amunt i avall per navegar per l'historial, i <b>Ctrl-L</b> per netejar la pantalla. Type <b>help</b> for an overview of available commands. - Escriviu <b>help<\b> per a obtindre un llistat de les ordes disponibles. + Escriviu <b>help</b> per a obtindre un llistat de les ordes disponibles. %1 B diff --git a/src/qt/locale/bitcoin_ca_ES.ts b/src/qt/locale/bitcoin_ca_ES.ts index a47ff509aa..0e86f0a665 100644 --- a/src/qt/locale/bitcoin_ca_ES.ts +++ b/src/qt/locale/bitcoin_ca_ES.ts @@ -1610,11 +1610,11 @@ Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Utilitza les fletxes d'amunt i avall per navegar per l'historial, i <b>Ctrl-L<\b> per netejar la pantalla. + Utilitza les fletxes d'amunt i avall per navegar per l'historial, i <b>Ctrl-L</b> per netejar la pantalla. Type <b>help</b> for an overview of available commands. - Escriviu <b>help<\b> per a obtenir un llistat de les ordres disponibles. + Escriviu <b>help</b> per a obtenir un llistat de les ordres disponibles. %1 B diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/bitcoin_et.ts index be7e12a095..347b02481e 100644 --- a/src/qt/locale/bitcoin_et.ts +++ b/src/qt/locale/bitcoin_et.ts @@ -133,7 +133,7 @@ Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Sisesta uus salafraas rahakotti.<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/>. + Sisesta uus salafraas rahakotti.<br/>Kasuta salafraasi milles on <b>kümme või rohkem juhuslikku sümbolit</b>, või <b>kaheksa või rohkem sõna</b>. Encrypt wallet diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/bitcoin_fa.ts index 784b5c1428..7d8a9f5aa3 100644 --- a/src/qt/locale/bitcoin_fa.ts +++ b/src/qt/locale/bitcoin_fa.ts @@ -1257,7 +1257,7 @@ Use this form to request payments. All fields are <b>optional</b>. - برای درخواست پرداخت از این فرم استفاده کنید.تمام قسمت ها <b>اختیاری<b> هستند. + برای درخواست پرداخت از این فرم استفاده کنید.تمام قسمت ها <b>اختیاری</b> هستند. Clear all fields of the form. diff --git a/src/qt/locale/bitcoin_id_ID.ts b/src/qt/locale/bitcoin_id_ID.ts index af84d1ac24..5fb215dbff 100644 --- a/src/qt/locale/bitcoin_id_ID.ts +++ b/src/qt/locale/bitcoin_id_ID.ts @@ -129,7 +129,7 @@ Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Masukan kata sandi baru ke dompet.<br/>Mohon gunakan kata sandi <b>sepuluh karakter acak atau lebih</b>, atau <b> delapan atau lebih beberapa kata </​​b>. + Masukan kata sandi baru ke dompet.<br/>Mohon gunakan kata sandi <b>sepuluh karakter acak atau lebih</b>, atau <b> delapan atau lebih beberapa kata </b>. Encrypt wallet diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/bitcoin_it.ts index 253716bd77..86dae8e316 100644 --- a/src/qt/locale/bitcoin_it.ts +++ b/src/qt/locale/bitcoin_it.ts @@ -836,7 +836,7 @@ %n GB of free space available - GB di spazio libero disponibile%n GB di spazio disponibile + %n GB di spazio libero disponibile%n GB di spazio disponibile (of %n GB needed) diff --git a/src/qt/locale/bitcoin_ko_KR.ts b/src/qt/locale/bitcoin_ko_KR.ts index 499e3dcd86..3ee1cc3843 100644 --- a/src/qt/locale/bitcoin_ko_KR.ts +++ b/src/qt/locale/bitcoin_ko_KR.ts @@ -133,7 +133,7 @@ Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - 지갑에 새로운 비밀문구를 입력하세요.<br/>비밀문구를 <b>열 개 이상의 무작위 글자</b> 혹은 <b>여덟개 이상의 단어로<b> 정하세요. + 지갑에 새로운 비밀문구를 입력하세요.<br/>비밀문구를 <b>열 개 이상의 무작위 글자</b> 혹은 <b>여덟개 이상의 단어로</b> 정하세요. Encrypt wallet @@ -1425,7 +1425,7 @@ %n day(s) - &n 일 + %n 일 %n week(s) diff --git a/src/qt/locale/bitcoin_vi_VN.ts b/src/qt/locale/bitcoin_vi_VN.ts index 5e490d9799..1930f6f834 100644 --- a/src/qt/locale/bitcoin_vi_VN.ts +++ b/src/qt/locale/bitcoin_vi_VN.ts @@ -729,7 +729,7 @@ Use this form to request payments. All fields are <b>optional</b>. - Sử dụng form này để yêu cầu thanh toán. Tất cả các trường <b>không bắt buộc<b> + Sử dụng form này để yêu cầu thanh toán. Tất cả các trường <b>không bắt buộc</b> Clear all fields of the form. diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/bitcoin_zh_CN.ts index c5f915dbd0..a1caacde39 100644 --- a/src/qt/locale/bitcoin_zh_CN.ts +++ b/src/qt/locale/bitcoin_zh_CN.ts @@ -2248,7 +2248,7 @@ After the notification transaction is received by the RAP address issuer, funds Ping - + Ping From 440409ff4b59bfe2059955ae9f505741c19ef61f Mon Sep 17 00:00:00 2001 From: Reuben Yap Date: Sun, 30 Aug 2026 13:55:19 +0800 Subject: [PATCH 4/4] Qt: Harden translation extraction Pass source paths through an xgettext response file to stay within Windows command-line limits. Stop before replacing the generated catalog when extraction fails. --- share/qt/extract_strings_qt.py | 5 ++--- src/qt/CMakeLists.txt | 6 +++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/share/qt/extract_strings_qt.py b/share/qt/extract_strings_qt.py index 37bc0aad42..ff992c0054 100644 --- a/share/qt/extract_strings_qt.py +++ b/share/qt/extract_strings_qt.py @@ -7,7 +7,7 @@ they can be picked up by Qt linguist. ''' from __future__ import division,print_function,unicode_literals -from subprocess import Popen, PIPE +from subprocess import run, PIPE import operator import os import sys @@ -59,8 +59,7 @@ def parse_po(text): print('Cannot extract strings: xgettext utility is not installed or not configured.',file=sys.stderr) print('Please install package "gettext" and re-run \'./configure\'.',file=sys.stderr) exit(1) -child = Popen([XGETTEXT,'--output=-','-n','--keyword=_'] + files, stdout=PIPE) -(out, err) = child.communicate() +out = run([XGETTEXT,'--output=-','-n','--keyword=_'] + files, stdout=PIPE, check=True).stdout messages = parse_po(out.decode('utf-8')) diff --git a/src/qt/CMakeLists.txt b/src/qt/CMakeLists.txt index 6cd5d4671d..bcb81df434 100644 --- a/src/qt/CMakeLists.txt +++ b/src/qt/CMakeLists.txt @@ -447,8 +447,12 @@ else() get_translatable_sources(translatable_sources ${translatable_sources_directories}) get_translatable_sources(qt_translatable_sources src/qt) file(GLOB ui_files ${CMAKE_CURRENT_SOURCE_DIR}/forms/*.ui) + list(REMOVE_DUPLICATES translatable_sources) + list(JOIN translatable_sources "\n" translatable_sources_content) + set(translatable_sources_file "${CMAKE_CURRENT_BINARY_DIR}/translation_sources.txt") + file(GENERATE OUTPUT "${translatable_sources_file}" CONTENT "${translatable_sources_content}\n") add_custom_target(translate - COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} "PACKAGE_NAME=${CLIENT_NAME}" "COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS}" "COPYRIGHT_HOLDERS_SUBSTITUTION=${CLIENT_NAME}" $ ${PROJECT_SOURCE_DIR}/share/qt/extract_strings_qt.py ${translatable_sources} + COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} "PACKAGE_NAME=${CLIENT_NAME}" "COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS}" "COPYRIGHT_HOLDERS_SUBSTITUTION=${CLIENT_NAME}" $ ${PROJECT_SOURCE_DIR}/share/qt/extract_strings_qt.py --files-from=${translatable_sources_file} COMMAND Qt6::lupdate -no-obsolete -I ${PROJECT_SOURCE_DIR}/src -locations relative ${CMAKE_CURRENT_SOURCE_DIR}/bitcoinstrings.cpp ${ui_files} ${qt_translatable_sources} -ts ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts COMMAND Qt6::lconvert -drop-translations -o ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf -i ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts COMMAND ${SED_EXECUTABLE} -i.old -e "s|source-language=\"en\" target-language=\"en\"|source-language=\"en\"|" -e "/<\\/target>/d" ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf