0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-05 14:06:27 -05:00

Merge bitcoin-core/gui#724: Update translation source file for v25.0 string freeze

e414edd8fc qt: Update translation source file (Hennadii Stepanov)
b780095091 qt: Adjust plural forms for translations (Hennadii Stepanov)
6ae8a24009 GUI: Send: Make feerates translatable (Luke Dashjr)
bd42f5e1cd Bugfix: GUI: Send/PSBT: Correct virtual size unit and make translatable (Luke Dashjr)
1b0407f5f1 Bugfix: GUI: transactiondesc: Translate outlier "own address" and "watch-only" (Luke Dashjr)
170f3126f2 GUI: Use translated external signer errors for messagebox text (Luke Dashjr)
96989599d6 GUI: Make messages for copying unsigned PSBTs translatable (Luke Dashjr)
08b8b287d3 Bugfix: GUI: Debug info: Use correct "kB" case for small mempool sizes, and make translation-friendly (Luke Dashjr)
dacc322be1 GUI: PSBTOperationsDialog: Support translating window title (Luke Dashjr)
5a4fe55270 GUI: Intro: Support translating caption of data directory chooser (Luke Dashjr)
3868ba3a27 GUI: Support translating peer network names (Luke Dashjr)
f1f9811198 GUI: Support translating address type dropdown entries (Luke Dashjr)

Pull request description:

  This PR updates the `src/qt/locale/bitcoin_en.xlf` translation source file according to [Release schedule for 25.0](https://github.com/bitcoin/bitcoin/issues/26549).

  Some translation-related fixes have been picked from https://github.com/bitcoin-core/gui/pull/599 and https://github.com/bitcoin-core/gui/pull/716.

  Note for reviewers: it is expected to get a zero diff after running `make -C src translate` locally.

ACKs for top commit:
  jarolrod:
    ACK e414edd8fc

Tree-SHA512: 5b0c70db1e2f5871067e84f43ebea4ee4f0027fc5f2be49bbcb1d04e162ae76607b2b038e9d0622bcb5b3658d0ede8c10c4421ddaa3343f0e0be54315ca7a4f5
This commit is contained in:
Hennadii Stepanov 2023-04-01 21:59:28 +01:00
commit bc49a477de
No known key found for this signature in database
GPG key ID: 410108112E7EA81F
12 changed files with 2192 additions and 1913 deletions

View file

@ -14,13 +14,22 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring " "%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring "
"a backup."), "a backup."),
QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", ""
"%s failed to validate the -assumeutxo snapshot state. This indicates a "
"hardware problem, or a bug in the software, or a bad software modification "
"that allowed an invalid snapshot to be loaded. As a result of this, the node "
"will shut down and stop using any state that was built on the snapshot, "
"resetting the chain height from %d to %d. On the next restart, the node will "
"resume syncing from %d without using any snapshot data. Please report this "
"incident to %s, including how you obtained the snapshot. The invalid "
"snapshot chainstate has been left on disk in case it is helpful in "
"diagnosing the issue that caused this error."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"%s is set very high! Fees this large could be paid on a single transaction."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"%s request to listen on port %u. This port is considered \"bad\" and thus it " "%s request to listen on port %u. This port is considered \"bad\" and thus it "
"is unlikely that any peer will connect to it. See doc/p2p-bad-ports.md for " "is unlikely that any peer will connect to it. See doc/p2p-bad-ports.md for "
"details and a full list."), "details and a full list."),
QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", ""
"-maxtxfee is set very high! Fees this large could be paid on a single "
"transaction."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"-reindex-chainstate option is not compatible with -blockfilterindex. Please " "-reindex-chainstate option is not compatible with -blockfilterindex. Please "
"temporarily disable blockfilterindex while using -reindex-chainstate, or " "temporarily disable blockfilterindex while using -reindex-chainstate, or "
"replace -reindex-chainstate with -reindex to fully rebuild all indexes."), "replace -reindex-chainstate with -reindex to fully rebuild all indexes."),
@ -90,8 +99,8 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"Failed to rename invalid peers.dat file. Please move or delete it and try " "Failed to rename invalid peers.dat file. Please move or delete it and try "
"again."), "again."),
QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", ""
"Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -" "Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable "
"fallbackfee."), "%s."),
QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", ""
"File %s already exists. If you are sure this is what you want, move it out " "File %s already exists. If you are sure this is what you want, move it out "
"of the way first."), "of the way first."),
@ -99,8 +108,8 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet " "Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet "
"forbids connections to IPv4/IPv6"), "forbids connections to IPv4/IPv6"),
QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", ""
"Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay " "Invalid amount for %s=<amount>: '%s' (must be at least the minrelay fee of "
"fee of %s to prevent stuck transactions)"), "%s to prevent stuck transactions)"),
QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", ""
"Invalid or corrupt peers.dat (%s). If you believe this is a bug, please " "Invalid or corrupt peers.dat (%s). If you believe this is a bug, please "
"report it to %s. As a workaround, you can move the file (%s) out of the way " "report it to %s. As a workaround, you can move the file (%s) out of the way "
@ -186,9 +195,18 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"Total length of network version string (%i) exceeds maximum length (%i). " "Total length of network version string (%i) exceeds maximum length (%i). "
"Reduce the number or size of uacomments."), "Reduce the number or size of uacomments."),
QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", ""
"Transaction requires one destination of non-0 value, a non-0 feerate, or a "
"pre-selected input"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"UTXO snapshot failed to validate. Restart to resume normal initial block "
"download, or try loading a different snapshot."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Unable to replay blocks. You will need to rebuild the database using -" "Unable to replay blocks. You will need to rebuild the database using -"
"reindex-chainstate."), "reindex-chainstate."),
QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", ""
"Unconfirmed UTXOs are available, but spending them creates a chain of "
"transactions that will be rejected by the mempool"),
QT_TRANSLATE_NOOP("bitcoin-core", ""
"Unexpected legacy entry in descriptor wallet found. Loading wallet %s\n" "Unexpected legacy entry in descriptor wallet found. Loading wallet %s\n"
"\n" "\n"
"The wallet might have been tampered with or created with malicious intent.\n"), "The wallet might have been tampered with or created with malicious intent.\n"),
@ -233,6 +251,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
QT_TRANSLATE_NOOP("bitcoin-core", "%s is set very high!"), QT_TRANSLATE_NOOP("bitcoin-core", "%s is set very high!"),
QT_TRANSLATE_NOOP("bitcoin-core", "-maxmempool must be at least %d MB"), QT_TRANSLATE_NOOP("bitcoin-core", "-maxmempool must be at least %d MB"),
QT_TRANSLATE_NOOP("bitcoin-core", "A fatal internal error occurred, see debug.log for details"), QT_TRANSLATE_NOOP("bitcoin-core", "A fatal internal error occurred, see debug.log for details"),
QT_TRANSLATE_NOOP("bitcoin-core", "Block verification was interrupted"),
QT_TRANSLATE_NOOP("bitcoin-core", "Cannot resolve -%s address: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Cannot resolve -%s address: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Cannot set -forcednsseed to true when setting -dnsseed to false."), QT_TRANSLATE_NOOP("bitcoin-core", "Cannot set -forcednsseed to true when setting -dnsseed to false."),
QT_TRANSLATE_NOOP("bitcoin-core", "Cannot set -peerblockfilters without -blockfilterindex."), QT_TRANSLATE_NOOP("bitcoin-core", "Cannot set -peerblockfilters without -blockfilterindex."),
@ -255,6 +274,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Error loading %s: Wallet corrupted"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading %s: Wallet requires newer version of %s"), QT_TRANSLATE_NOOP("bitcoin-core", "Error loading %s: Wallet requires newer version of %s"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading block database"), QT_TRANSLATE_NOOP("bitcoin-core", "Error loading block database"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error opening block database"), QT_TRANSLATE_NOOP("bitcoin-core", "Error opening block database"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error reading configuration file: %s"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error reading from database, shutting down."), QT_TRANSLATE_NOOP("bitcoin-core", "Error reading from database, shutting down."),
QT_TRANSLATE_NOOP("bitcoin-core", "Error reading next record from wallet database"), QT_TRANSLATE_NOOP("bitcoin-core", "Error reading next record from wallet database"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error: Cannot extract destination from the generated scriptpubkey"), QT_TRANSLATE_NOOP("bitcoin-core", "Error: Cannot extract destination from the generated scriptpubkey"),
@ -293,10 +313,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -i2psam address or hostname: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -onion address or hostname: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -onion address or hostname: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address or hostname: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address or hostname: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid P2P permission: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid P2P permission: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for %s=<amount>: '%s' (must be at least %s)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for %s=<amount>: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -%s=<amount>: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -%s=<amount>: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -discardfee=<amount>: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -fallbackfee=<amount>: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid netmask specified in -whitelist: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid netmask specified in -whitelist: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid port specified in %s: '%s'"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid port specified in %s: '%s'"),
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid pre-selected input %s"), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid pre-selected input %s"),
@ -323,11 +342,14 @@ QT_TRANSLATE_NOOP("bitcoin-core", "SQLiteDatabase: Failed to prepare statement t
QT_TRANSLATE_NOOP("bitcoin-core", "SQLiteDatabase: Failed to read database verification error: %s"), QT_TRANSLATE_NOOP("bitcoin-core", "SQLiteDatabase: Failed to read database verification error: %s"),
QT_TRANSLATE_NOOP("bitcoin-core", "SQLiteDatabase: Unexpected application id. Expected %u, got %u"), QT_TRANSLATE_NOOP("bitcoin-core", "SQLiteDatabase: Unexpected application id. Expected %u, got %u"),
QT_TRANSLATE_NOOP("bitcoin-core", "Section [%s] is not recognized."), QT_TRANSLATE_NOOP("bitcoin-core", "Section [%s] is not recognized."),
QT_TRANSLATE_NOOP("bitcoin-core", "Settings file could not be read"),
QT_TRANSLATE_NOOP("bitcoin-core", "Settings file could not be written"),
QT_TRANSLATE_NOOP("bitcoin-core", "Signing transaction failed"), QT_TRANSLATE_NOOP("bitcoin-core", "Signing transaction failed"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" does not exist"), QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" does not exist"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" is a relative path"), QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" is a relative path"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" is not a directory"), QT_TRANSLATE_NOOP("bitcoin-core", "Specified -walletdir \"%s\" is not a directory"),
QT_TRANSLATE_NOOP("bitcoin-core", "Specified blocks directory \"%s\" does not exist."), QT_TRANSLATE_NOOP("bitcoin-core", "Specified blocks directory \"%s\" does not exist."),
QT_TRANSLATE_NOOP("bitcoin-core", "Specified data directory \"%s\" does not exist."),
QT_TRANSLATE_NOOP("bitcoin-core", "Starting network threads…"), QT_TRANSLATE_NOOP("bitcoin-core", "Starting network threads…"),
QT_TRANSLATE_NOOP("bitcoin-core", "The source code is available from %s."), QT_TRANSLATE_NOOP("bitcoin-core", "The source code is available from %s."),
QT_TRANSLATE_NOOP("bitcoin-core", "The specified config file %s does not exist"), QT_TRANSLATE_NOOP("bitcoin-core", "The specified config file %s does not exist"),

View file

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Dialog</string> <string>PSBT Operations</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing"> <property name="spacing">

View file

@ -673,12 +673,17 @@ QString NetworkToQString(Network net)
{ {
switch (net) { switch (net) {
case NET_UNROUTABLE: return QObject::tr("Unroutable"); case NET_UNROUTABLE: return QObject::tr("Unroutable");
case NET_IPV4: return "IPv4"; //: Name of IPv4 network in peer info
case NET_IPV6: return "IPv6"; case NET_IPV4: return QObject::tr("IPv4", "network name");
case NET_ONION: return "Onion"; //: Name of IPv6 network in peer info
case NET_I2P: return "I2P"; case NET_IPV6: return QObject::tr("IPv6", "network name");
case NET_CJDNS: return "CJDNS"; //: Name of Tor network in peer info
case NET_INTERNAL: return QObject::tr("Internal"); case NET_ONION: return QObject::tr("Onion", "network name");
//: Name of I2P network in peer info
case NET_I2P: return QObject::tr("I2P", "network name");
//: Name of CJDNS network in peer info
case NET_CJDNS: return QObject::tr("CJDNS", "network name");
case NET_INTERNAL: return "Internal"; // should never actually happen
case NET_MAX: assert(false); case NET_MAX: assert(false);
} // no default case, so the compiler can warn about missing cases } // no default case, so the compiler can warn about missing cases
assert(false); assert(false);

View file

@ -318,7 +318,7 @@ void Intro::on_dataDirectory_textChanged(const QString &dataDirStr)
void Intro::on_ellipsisButton_clicked() void Intro::on_ellipsisButton_clicked()
{ {
QString dir = QDir::toNativeSeparators(QFileDialog::getExistingDirectory(nullptr, "Choose data directory", ui->dataDirectory->text())); QString dir = QDir::toNativeSeparators(QFileDialog::getExistingDirectory(nullptr, tr("Choose data directory"), ui->dataDirectory->text()));
if(!dir.isEmpty()) if(!dir.isEmpty())
ui->dataDirectory->setText(dir); ui->dataDirectory->setText(dir);
} }

View file

@ -329,7 +329,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<context> <context>
<name>BitcoinApplication</name> <name>BitcoinApplication</name>
<message> <message>
<location filename="../bitcoin.cpp" line="+283"/> <location filename="../bitcoin.cpp" line="+267"/>
<source>Settings file %1 might be corrupt or invalid.</source> <source>Settings file %1 might be corrupt or invalid.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -417,7 +417,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+160"/> <location line="+161"/>
<source>&amp;Minimize</source> <source>&amp;Minimize</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -427,7 +427,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+395"/> <location line="+407"/>
<source>Network activity disabled.</source> <source>Network activity disabled.</source>
<extracomment>A substring of the tooltip.</extracomment> <extracomment>A substring of the tooltip.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -438,7 +438,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1159"/> <location line="-1172"/>
<source>Send coins to a Bitcoin address</source> <source>Send coins to a Bitcoin address</source>
<translation>Send coins to a Bitcoin address</translation> <translation>Send coins to a Bitcoin address</translation>
</message> </message>
@ -533,7 +533,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+119"/> <location line="+120"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;File</translation> <translation>&amp;File</translation>
</message> </message>
@ -553,7 +553,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation>Tabs toolbar</translation> <translation>Tabs toolbar</translation>
</message> </message>
<message> <message>
<location line="+459"/> <location line="+471"/>
<source>Syncing Headers (%1%)</source> <source>Syncing Headers (%1%)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -578,7 +578,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-832"/> <location line="-845"/>
<source>Request payments (generates QR codes and bitcoin: URIs)</source> <source>Request payments (generates QR codes and bitcoin: URIs)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -598,7 +598,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+748"/> <location line="+761"/>
<source>Processed %n block(s) of transaction history.</source> <source>Processed %n block(s) of transaction history.</source>
<translation> <translation>
<numerusform>Processed %n block of transaction history.</numerusform> <numerusform>Processed %n block of transaction history.</numerusform>
@ -646,7 +646,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation>Up to date</translation> <translation>Up to date</translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-830"/>
<source>Ctrl+Q</source> <source>Ctrl+Q</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -772,7 +772,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+71"/> <location line="+72"/>
<source>&amp;Window</source> <source>&amp;Window</source>
<translation type="unfinished">&amp;Window</translation> <translation type="unfinished">&amp;Window</translation>
</message> </message>
@ -792,7 +792,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+260"/> <location line="+272"/>
<source>%1 client</source> <source>%1 client</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1429,28 +1429,33 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<location line="+162"/> <location line="+162"/>
<source>%n GB of space available</source> <source>%n GB of space available</source>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform>%n GB of space available</numerusform>
<numerusform></numerusform> <numerusform>%n GB of space available</numerusform>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+2"/> <location line="+2"/>
<source>(of %n GB needed)</source> <source>(of %n GB needed)</source>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform>(of %n GB needed)</numerusform>
<numerusform></numerusform> <numerusform>(of %n GB needed)</numerusform>
</translation> </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+3"/> <location line="+3"/>
<source>(%n GB needed for full chain)</source> <source>(%n GB needed for full chain)</source>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform>(%n GB needed for full chain)</numerusform>
<numerusform></numerusform> <numerusform>(%n GB needed for full chain)</numerusform>
</translation> </translation>
</message> </message>
<message> <message>
<location line="+72"/> <location line="+17"/>
<source>Choose data directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+55"/>
<source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source> <source>At least %1 GB of data will be stored in this directory, and it will grow over time.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2211,7 +2216,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<name>PSBTOperationsDialog</name> <name>PSBTOperationsDialog</name>
<message> <message>
<location filename="../forms/psbtoperationsdialog.ui" line="+14"/> <location filename="../forms/psbtoperationsdialog.ui" line="+14"/>
<source>Dialog</source> <source>PSBT Operations</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -2240,7 +2245,7 @@ Signing is only possible with addresses of the type &apos;legacy&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../psbtoperationsdialog.cpp" line="+61"/> <location filename="../psbtoperationsdialog.cpp" line="+60"/>
<source>Failed to load transaction: %1</source> <source>Failed to load transaction: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2498,7 +2503,7 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished">Amount</translation> <translation type="unfinished">Amount</translation>
</message> </message>
<message> <message>
<location filename="../guiutil.cpp" line="+129"/> <location filename="../guiutil.cpp" line="+130"/>
<source>Enter a Bitcoin address (e.g. %1)</source> <source>Enter a Bitcoin address (e.g. %1)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2513,12 +2518,42 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+2"/>
<source>Internal</source> <source>IPv4</source>
<comment>network name</comment>
<extracomment>Name of IPv4 network in peer info</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+2"/>
<source>IPv6</source>
<comment>network name</comment>
<extracomment>Name of IPv6 network in peer info</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Onion</source>
<comment>network name</comment>
<extracomment>Name of Tor network in peer info</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>I2P</source>
<comment>network name</comment>
<extracomment>Name of I2P network in peer info</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>CJDNS</source>
<comment>network name</comment>
<extracomment>Name of CJDNS network in peer info</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+14"/>
<source>Inbound</source> <source>Inbound</source>
<extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment> <extracomment>An inbound connection from a peer. An inbound connection is a connection initiated by a peer.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2660,11 +2695,13 @@ If you are receiving this error you should request the merchant provide a BIP21
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location filename="../rpcconsole.cpp" line="+988"/>
<source>%1 kB</source> <source>%1 kB</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location filename="../rpcconsole.cpp" line="+2"/>
<source>%1 MB</source> <source>%1 MB</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2674,34 +2711,24 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../bitcoin.cpp" line="-288"/> <location filename="../bitcoin.cpp" line="-281"/>
<source>Do you want to reset settings to default values, or to abort without making changes?</source> <source>Do you want to reset settings to default values, or to abort without making changes?</source>
<extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment> <extracomment>Explanatory text shown on startup when the settings file cannot be read. Prompts user to make a choice between resetting or aborting.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+24"/> <location line="+20"/>
<source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source> <source>A fatal error occurred. Check that settings file is writable, or try running with -nosettings.</source>
<extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment> <extracomment>Explanatory text shown on startup when the settings file could not be written. Prompts user to check that we have the ability to write to the file. Explains that the user has the option of running without a settings file.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+386"/> <location line="+394"/>
<source>Error: Specified data directory &quot;%1&quot; does not exist.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+9"/>
<source>Error: Cannot parse configuration file: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+14"/>
<source>Error: %1</source> <source>Error: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+74"/> <location line="+71"/>
<source>%1 didn&apos;t yet exit safely</source> <source>%1 didn&apos;t yet exit safely</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2909,7 +2936,7 @@ If you are receiving this error you should request the merchant provide a BIP21
</message> </message>
<message> <message>
<location line="+68"/> <location line="+68"/>
<location filename="../rpcconsole.cpp" line="+1155"/> <location filename="../rpcconsole.cpp" line="+165"/>
<source>Select a peer to view detailed information.</source> <source>Select a peer to view detailed information.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3142,7 +3169,7 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../rpcconsole.cpp" line="-202"/> <location filename="../rpcconsole.cpp" line="-203"/>
<source>In:</source> <source>In:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3314,12 +3341,12 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+78"/> <location line="+79"/>
<source>Executing command without any wallet</source> <source>Executing command without any wallet</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+320"/> <location line="+316"/>
<source>Ctrl+I</source> <source>Ctrl+I</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3339,12 +3366,12 @@ If you are receiving this error you should request the merchant provide a BIP21
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-325"/> <location line="-321"/>
<source>Executing command using &quot;%1&quot; wallet</source> <source>Executing command using &quot;%1&quot; wallet</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-146"/> <location line="-147"/>
<source>Welcome to the %1 RPC console. <source>Welcome to the %1 RPC console.
Use up and down arrows to navigate history, and %2 to clear screen. Use up and down arrows to navigate history, and %2 to clear screen.
Use %3 and %4 to increase or decrease the font size. Use %3 and %4 to increase or decrease the font size.
@ -3356,7 +3383,7 @@ For more information on using this console, type %6.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+156"/> <location line="+157"/>
<source>Executing</source> <source>Executing</source>
<extracomment>A console message indicating an entered command is currently being executed.</extracomment> <extracomment>A console message indicating an entered command is currently being executed.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3491,7 +3518,47 @@ For more information on using this console, type %6.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+125"/> <location line="+46"/>
<source>Base58 (Legacy)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+0"/>
<source>Not recommended due to higher fees and less protection against typos.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Base58 (P2SH-SegWit)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+0"/>
<source>Generates an address compatible with older wallets.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Bech32 (SegWit)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+0"/>
<source>Generates a native segwit address (BIP-173). Some old wallets don&apos;t support it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Bech32m (Taproot)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+0"/>
<source>Bech32m (BIP-350) is an upgrade to Bech32, wallet support is still limited.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+75"/>
<source>Could not unlock wallet.</source> <source>Could not unlock wallet.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3644,7 +3711,7 @@ For more information on using this console, type %6.
<name>SendCoinsDialog</name> <name>SendCoinsDialog</name>
<message> <message>
<location filename="../forms/sendcoinsdialog.ui" line="+14"/> <location filename="../forms/sendcoinsdialog.ui" line="+14"/>
<location filename="../sendcoinsdialog.cpp" line="+755"/> <location filename="../sendcoinsdialog.cpp" line="+765"/>
<source>Send Coins</source> <source>Send Coins</source>
<translation>Send Coins</translation> <translation>Send Coins</translation>
</message> </message>
@ -3831,7 +3898,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation>S&amp;end</translation> <translation>S&amp;end</translation>
</message> </message>
<message> <message>
<location filename="../sendcoinsdialog.cpp" line="-660"/> <location filename="../sendcoinsdialog.cpp" line="-670"/>
<source>Copy quantity</source> <source>Copy quantity</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3913,12 +3980,12 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+66"/> <location line="+67"/>
<source>To review recipient list click &quot;Show Details&quot;</source> <source>To review recipient list click &quot;Show Details&quot;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+60"/> <location line="+62"/>
<source>Sign failed</source> <source>Sign failed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3929,13 +3996,13 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>External signer failure</source> <source>External signer failure</source>
<extracomment>&quot;External signer&quot; means using devices such as hardware wallets.</extracomment> <extracomment>&quot;External signer&quot; means using devices such as hardware wallets.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-34"/> <location line="-36"/>
<source>Save Transaction Data</source> <source>Save Transaction Data</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3946,17 +4013,18 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+8"/>
<source>PSBT saved</source> <source>PSBT saved</source>
<extracomment>Popup message when a PSBT has been saved to a file</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+266"/> <location line="+273"/>
<source>External balance:</source> <source>External balance:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-315"/> <location line="-324"/>
<source>or</source> <source>or</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3966,7 +4034,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-30"/> <location line="-31"/>
<source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source> <source>Please, review your transaction proposal. This will produce a Partially Signed Bitcoin Transaction (PSBT) which you can save or copy and then sign with e.g. an offline %1 wallet, or a PSBT-compatible hardware wallet.</source>
<extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment> <extracomment>Text to inform a user attempting to create a transaction of their current options. At this stage, a user can only create a PSBT. This string is displayed when private keys are disabled and an external signer is not available.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3995,7 +4063,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+5"/>
<source>%1 kvB</source>
<comment>PSBT transaction creation</comment>
<extracomment>When reviewing a newly created PSBT (via Send flow), the transaction fee is shown, with &quot;virtual size&quot; of the transaction displayed for context</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+12"/>
<source>Not signalling Replace-By-Fee, BIP-125.</source> <source>Not signalling Replace-By-Fee, BIP-125.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -4005,12 +4080,29 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+99"/> <location line="+24"/>
<source>Unsigned Transaction</source>
<comment>PSBT copied</comment>
<extracomment>Caption of &quot;PSBT has been copied&quot; messagebox</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The PSBT has been copied to the clipboard. You can also save it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+29"/>
<source>PSBT saved to disk</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+49"/>
<source>Confirm send coins</source> <source>Confirm send coins</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+222"/> <location line="+227"/>
<source>Watch-only balance:</source> <source>Watch-only balance:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -4049,8 +4141,14 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<source>A fee higher than %1 is considered an absurdly high fee.</source> <source>A fee higher than %1 is considered an absurdly high fee.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+74"/>
<location line="+35"/>
<source>%1/kvB</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes"> <message numerus="yes">
<location line="+123"/> <location line="+14"/>
<source>Estimated to begin confirmation within %n block(s).</source> <source>Estimated to begin confirmation within %n block(s).</source>
<translation> <translation>
<numerusform>Estimated to begin confirmation within %n block.</numerusform> <numerusform>Estimated to begin confirmation within %n block.</numerusform>
@ -4493,17 +4591,19 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
</message> </message>
<message> <message>
<location line="-88"/> <location line="-88"/>
<location line="+95"/>
<source>own address</source> <source>own address</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="-95"/>
<location line="+69"/> <location line="+69"/>
<location line="+28"/>
<source>watch-only</source> <source>watch-only</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-67"/> <location line="-95"/>
<source>label</source> <source>label</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -4967,7 +5067,7 @@ Note: Since the fee is calculated on a per-byte basis, a fee rate of &quot;100
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+169"/> <location line="+170"/>
<source>Range:</source> <source>Range:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5122,6 +5222,12 @@ Go to File &gt; Open Wallet to load a wallet.
<source>PSBT copied</source> <source>PSBT copied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+0"/>
<source>Copied to clipboard</source>
<comment>Fee-bump PSBT saved</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+8"/> <location line="+8"/>
<source>Can&apos;t sign transaction.</source> <source>Can&apos;t sign transaction.</source>
@ -5156,7 +5262,7 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished">Export the data in the current tab to a file</translation> <translation type="unfinished">Export the data in the current tab to a file</translation>
</message> </message>
<message> <message>
<location line="+162"/> <location line="+163"/>
<source>Backup Wallet</source> <source>Backup Wallet</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5205,17 +5311,12 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+15"/>
<source>%s request to listen on port %u. This port is considered &quot;bad&quot; and thus it is unlikely that any peer will connect to it. See doc/p2p-bad-ports.md for details and a full list.</source> <source>%s request to listen on port %u. This port is considered &quot;bad&quot; and thus it is unlikely that any peer will connect to it. See doc/p2p-bad-ports.md for details and a full list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+16"/>
<source>-maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+15"/>
<source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source> <source>Cannot downgrade wallet from version %i to version %i. Wallet version unchanged.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5280,22 +5381,12 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+9"/>
<source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source> <source>File %s already exists. If you are sure this is what you want, move it out of the way first.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+9"/>
<source>Invalid amount for -maxtxfee=&lt;amount&gt;: &apos;%s&apos; (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source> <source>Invalid or corrupt peers.dat (%s). If you believe this is a bug, please report it to %s. As a workaround, you can move the file (%s) out of the way (rename, move, or delete) to have a new one created on the next start.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5395,12 +5486,12 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+9"/>
<source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source> <source>Unable to replay blocks. You will need to rebuild the database using -reindex-chainstate.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+10"/>
<source>Unknown wallet file format &quot;%s&quot; provided. Please provide one of &quot;bdb&quot; or &quot;sqlite&quot;.</source> <source>Unknown wallet file format &quot;%s&quot; provided. Please provide one of &quot;bdb&quot; or &quot;sqlite&quot;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5455,7 +5546,7 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Cannot resolve -%s address: &apos;%s&apos;</source> <source>Cannot resolve -%s address: &apos;%s&apos;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5475,12 +5566,22 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-90"/> <location line="-100"/>
<source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source> <source>The -txindex upgrade started by a previous version cannot be completed. Restart with the previous version or run a full -reindex.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-126"/> <location line="-142"/>
<source>%s failed to validate the -assumeutxo snapshot state. This indicates a hardware problem, or a bug in the software, or a bad software modification that allowed an invalid snapshot to be loaded. As a result of this, the node will shut down and stop using any state that was built on the snapshot, resetting the chain height from %d to %d. On the next restart, the node will resume syncing from %d without using any snapshot data. Please report this incident to %s, including how you obtained the snapshot. The invalid snapshot chainstate has been left on disk in case it is helpful in diagnosing the issue that caused this error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+10"/>
<source>%s is set very high! Fees this large could be paid on a single transaction.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<source>-reindex-chainstate option is not compatible with -blockfilterindex. Please temporarily disable blockfilterindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes.</source> <source>-reindex-chainstate option is not compatible with -blockfilterindex. Please temporarily disable blockfilterindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5525,12 +5626,22 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+3"/>
<source>Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable %s.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<source>Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet forbids connections to IPv4/IPv6</source> <source>Incompatible options: -dnsseed=1 was explicitly specified, but -onlynet forbids connections to IPv4/IPv6</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+21"/> <location line="+3"/>
<source>Invalid amount for %s=&lt;amount&gt;: &apos;%s&apos; (must be at least the minrelay fee of %s to prevent stuck transactions)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+18"/>
<source>Outbound connections restricted to CJDNS (-onlynet=cjdns) but -cjdnsreachable is not provided</source> <source>Outbound connections restricted to CJDNS (-onlynet=cjdns) but -cjdnsreachable is not provided</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5560,7 +5671,22 @@ Go to File &gt; Open Wallet to load a wallet.
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+27"/> <location line="+24"/>
<source>Transaction requires one destination of non-0 value, a non-0 feerate, or a pre-selected input</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>UTXO snapshot failed to validate. Restart to resume normal initial block download, or try loading a different snapshot.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<source>Unconfirmed UTXOs are available, but spending them creates a chain of transactions that will be rejected by the mempool</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Unexpected legacy entry in descriptor wallet found. Loading wallet %s <source>Unexpected legacy entry in descriptor wallet found. Loading wallet %s
The wallet might have been tampered with or created with malicious intent. The wallet might have been tampered with or created with malicious intent.
@ -5594,7 +5720,12 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+10"/> <location line="+6"/>
<source>Block verification was interrupted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
<source>Config setting for %s only applied on %s network when in [%s] section.</source> <source>Config setting for %s only applied on %s network when in [%s] section.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5683,6 +5814,11 @@ Unable to restore backup of wallet.</source>
<source>Error opening block database</source> <source>Error opening block database</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+1"/>
<source>Error reading configuration file: %s</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Error reading from database, shutting down.</source> <source>Error reading from database, shutting down.</source>
@ -5873,26 +6009,21 @@ Unable to restore backup of wallet.</source>
<source>Invalid P2P permission: &apos;%s&apos;</source> <source>Invalid P2P permission: &apos;%s&apos;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+1"/>
<source>Invalid amount for %s=&lt;amount&gt;: &apos;%s&apos; (must be at least %s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Invalid amount for %s=&lt;amount&gt;: &apos;%s&apos;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Invalid amount for -%s=&lt;amount&gt;: &apos;%s&apos;</source> <source>Invalid amount for -%s=&lt;amount&gt;: &apos;%s&apos;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+1"/>
<source>Invalid amount for -discardfee=&lt;amount&gt;: &apos;%s&apos;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Invalid amount for -fallbackfee=&lt;amount&gt;: &apos;%s&apos;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Invalid amount for -paytxfee=&lt;amount&gt;: &apos;%s&apos; (must be at least %s)</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Invalid netmask specified in -whitelist: &apos;%s&apos;</source> <source>Invalid netmask specified in -whitelist: &apos;%s&apos;</source>
@ -6024,7 +6155,7 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Signing transaction failed</source> <source>Signing transaction failed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -6048,6 +6179,11 @@ Unable to restore backup of wallet.</source>
<source>Specified blocks directory &quot;%s&quot; does not exist.</source> <source>Specified blocks directory &quot;%s&quot; does not exist.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+1"/>
<source>Specified data directory &quot;%s&quot; does not exist.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Starting network threads</source> <source>Starting network threads</source>
@ -6234,12 +6370,12 @@ Unable to restore backup of wallet.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../bitcoin.cpp" line="-514"/> <location line="-44"/>
<source>Settings file could not be read</source> <source>Settings file could not be read</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+23"/> <location line="+1"/>
<source>Settings file could not be written</source> <source>Settings file could not be written</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

File diff suppressed because it is too large Load diff

View file

@ -31,7 +31,6 @@ PSBTOperationsDialog::PSBTOperationsDialog(
m_client_model(client_model) m_client_model(client_model)
{ {
m_ui->setupUi(this); m_ui->setupUi(this);
setWindowTitle("PSBT Operations");
connect(m_ui->signTransactionButton, &QPushButton::clicked, this, &PSBTOperationsDialog::signTransaction); connect(m_ui->signTransactionButton, &QPushButton::clicked, this, &PSBTOperationsDialog::signTransaction);
connect(m_ui->broadcastTransactionButton, &QPushButton::clicked, this, &PSBTOperationsDialog::broadcastTransaction); connect(m_ui->broadcastTransactionButton, &QPushButton::clicked, this, &PSBTOperationsDialog::broadcastTransaction);

View file

@ -93,11 +93,11 @@ void ReceiveCoinsDialog::setModel(WalletModel *_model)
ui->addressType->setItemData(index, tooltip, Qt::ToolTipRole); ui->addressType->setItemData(index, tooltip, Qt::ToolTipRole);
if (model->wallet().getDefaultAddressType() == type) ui->addressType->setCurrentIndex(index); if (model->wallet().getDefaultAddressType() == type) ui->addressType->setCurrentIndex(index);
}; };
add_address_type(OutputType::LEGACY, "Base58 (Legacy)", "Not recommended due to higher fees and less protection against typos."); add_address_type(OutputType::LEGACY, tr("Base58 (Legacy)"), tr("Not recommended due to higher fees and less protection against typos."));
add_address_type(OutputType::P2SH_SEGWIT, "Base58 (P2SH-SegWit)", "Generates an address compatible with older wallets."); add_address_type(OutputType::P2SH_SEGWIT, tr("Base58 (P2SH-SegWit)"), tr("Generates an address compatible with older wallets."));
add_address_type(OutputType::BECH32, "Bech32 (SegWit)", "Generates a native segwit address (BIP-173). Some old wallets don't support it."); add_address_type(OutputType::BECH32, tr("Bech32 (SegWit)"), tr("Generates a native segwit address (BIP-173). Some old wallets don't support it."));
if (model->wallet().taprootEnabled()) { if (model->wallet().taprootEnabled()) {
add_address_type(OutputType::BECH32M, "Bech32m (Taproot)", "Bech32m (BIP-350) is an upgrade to Bech32, wallet support is still limited."); add_address_type(OutputType::BECH32M, tr("Bech32m (Taproot)"), tr("Bech32m (BIP-350) is an upgrade to Bech32, wallet support is still limited."));
} }
// Set the button to be enabled or disabled based on whether the wallet can give out new addresses. // Set the button to be enabled or disabled based on whether the wallet can give out new addresses.

View file

@ -984,10 +984,11 @@ void RPCConsole::setMempoolSize(long numberOfTxs, size_t dynUsage)
{ {
ui->mempoolNumberTxs->setText(QString::number(numberOfTxs)); ui->mempoolNumberTxs->setText(QString::number(numberOfTxs));
if (dynUsage < 1000000) if (dynUsage < 1000000) {
ui->mempoolSize->setText(QString::number(dynUsage/1000.0, 'f', 2) + " KB"); ui->mempoolSize->setText(QObject::tr("%1 kB").arg(dynUsage / 1000.0, 0, 'f', 2));
else } else {
ui->mempoolSize->setText(QString::number(dynUsage/1000000.0, 'f', 2) + " MB"); ui->mempoolSize->setText(QObject::tr("%1 MB").arg(dynUsage / 1000000.0, 0, 'f', 2));
}
} }
void RPCConsole::on_lineEdit_returnPressed() void RPCConsole::on_lineEdit_returnPressed()

View file

@ -355,7 +355,8 @@ bool SendCoinsDialog::PrepareSendText(QString& question_string, QString& informa
question_string.append("</b>"); question_string.append("</b>");
// append transaction size // append transaction size
question_string.append(" (" + QString::number((double)m_current_transaction->getTransactionSize() / 1000) + " kB): "); //: When reviewing a newly created PSBT (via Send flow), the transaction fee is shown, with "virtual size" of the transaction displayed for context
question_string.append(" (" + tr("%1 kvB", "PSBT transaction creation").arg((double)m_current_transaction->getTransactionSize() / 1000, 0, 'g', 3) + "): ");
// append transaction fee value // append transaction fee value
question_string.append("<span style='color:#aa0000; font-weight:bold;'>"); question_string.append("<span style='color:#aa0000; font-weight:bold;'>");
@ -403,8 +404,9 @@ void SendCoinsDialog::presentPSBT(PartiallySignedTransaction& psbtx)
ssTx << psbtx; ssTx << psbtx;
GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str()); GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str());
QMessageBox msgBox; QMessageBox msgBox;
msgBox.setText("Unsigned Transaction"); //: Caption of "PSBT has been copied" messagebox
msgBox.setInformativeText("The PSBT has been copied to the clipboard. You can also save it."); msgBox.setText(tr("Unsigned Transaction", "PSBT copied"));
msgBox.setInformativeText(tr("The PSBT has been copied to the clipboard. You can also save it."));
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard); msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard);
msgBox.setDefaultButton(QMessageBox::Discard); msgBox.setDefaultButton(QMessageBox::Discard);
switch (msgBox.exec()) { switch (msgBox.exec()) {
@ -432,7 +434,8 @@ void SendCoinsDialog::presentPSBT(PartiallySignedTransaction& psbtx)
std::ofstream out{filename.toLocal8Bit().data(), std::ofstream::out | std::ofstream::binary}; std::ofstream out{filename.toLocal8Bit().data(), std::ofstream::out | std::ofstream::binary};
out << ssTx.str(); out << ssTx.str();
out.close(); out.close();
Q_EMIT message(tr("PSBT saved"), "PSBT saved to disk", CClientUIInterface::MSG_INFORMATION); //: Popup message when a PSBT has been saved to a file
Q_EMIT message(tr("PSBT saved"), tr("PSBT saved to disk"), CClientUIInterface::MSG_INFORMATION);
break; break;
} }
case QMessageBox::Discard: case QMessageBox::Discard:
@ -452,12 +455,14 @@ bool SendCoinsDialog::signWithExternalSigner(PartiallySignedTransaction& psbtx,
} }
if (err == TransactionError::EXTERNAL_SIGNER_NOT_FOUND) { if (err == TransactionError::EXTERNAL_SIGNER_NOT_FOUND) {
//: "External signer" means using devices such as hardware wallets. //: "External signer" means using devices such as hardware wallets.
QMessageBox::critical(nullptr, tr("External signer not found"), "External signer not found"); const QString msg = tr("External signer not found");
QMessageBox::critical(nullptr, msg, msg);
return false; return false;
} }
if (err == TransactionError::EXTERNAL_SIGNER_FAILED) { if (err == TransactionError::EXTERNAL_SIGNER_FAILED) {
//: "External signer" means using devices such as hardware wallets. //: "External signer" means using devices such as hardware wallets.
QMessageBox::critical(nullptr, tr("External signer failure"), "External signer failure"); const QString msg = tr("External signer failure");
QMessageBox::critical(nullptr, msg, msg);
return false; return false;
} }
if (err != TransactionError::OK) { if (err != TransactionError::OK) {
@ -823,7 +828,7 @@ void SendCoinsDialog::updateFeeMinimizedLabel()
if (ui->radioSmartFee->isChecked()) if (ui->radioSmartFee->isChecked())
ui->labelFeeMinimized->setText(ui->labelSmartFee->text()); ui->labelFeeMinimized->setText(ui->labelSmartFee->text());
else { else {
ui->labelFeeMinimized->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), ui->customFee->value()) + "/kvB"); ui->labelFeeMinimized->setText(tr("%1/kvB").arg(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), ui->customFee->value())));
} }
} }
@ -858,7 +863,7 @@ void SendCoinsDialog::updateSmartFeeLabel()
FeeReason reason; FeeReason reason;
CFeeRate feeRate = CFeeRate(model->wallet().getMinimumFee(1000, *m_coin_control, &returned_target, &reason)); CFeeRate feeRate = CFeeRate(model->wallet().getMinimumFee(1000, *m_coin_control, &returned_target, &reason));
ui->labelSmartFee->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), feeRate.GetFeePerK()) + "/kvB"); ui->labelSmartFee->setText(tr("%1/kvB").arg(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), feeRate.GetFeePerK())));
if (reason == FeeReason::FALLBACK) { if (reason == FeeReason::FALLBACK) {
ui->labelSmartFee2->show(); // (Smart fee not initialized yet. This usually takes a few blocks...) ui->labelSmartFee2->show(); // (Smart fee not initialized yet. This usually takes a few blocks...)

View file

@ -248,9 +248,9 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
strHTML += GUIUtil::HtmlEscape(name) + " "; strHTML += GUIUtil::HtmlEscape(name) + " ";
strHTML += GUIUtil::HtmlEscape(EncodeDestination(address)); strHTML += GUIUtil::HtmlEscape(EncodeDestination(address));
if(toSelf == ISMINE_SPENDABLE) if(toSelf == ISMINE_SPENDABLE)
strHTML += " (own address)"; strHTML += " (" + tr("own address") + ")";
else if(toSelf & ISMINE_WATCH_ONLY) else if(toSelf & ISMINE_WATCH_ONLY)
strHTML += " (watch-only)"; strHTML += " (" + tr("watch-only") + ")";
strHTML += "<br>"; strHTML += "<br>";
} }
} }

View file

@ -548,7 +548,7 @@ bool WalletModel::bumpFee(uint256 hash, uint256& new_hash)
CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION); CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION);
ssTx << psbtx; ssTx << psbtx;
GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str()); GUIUtil::setClipboard(EncodeBase64(ssTx.str()).c_str());
Q_EMIT message(tr("PSBT copied"), "Copied to clipboard", CClientUIInterface::MSG_INFORMATION); Q_EMIT message(tr("PSBT copied"), tr("Copied to clipboard", "Fee-bump PSBT saved"), CClientUIInterface::MSG_INFORMATION);
return true; return true;
} }