diff --git a/.gitignore b/.gitignore
index 182d36f..b9fe459 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,4 @@ workspace.code-workspace
*.mak
*.plist
zcashd
+res/*.qm
\ No newline at end of file
diff --git a/application.qrc b/application.qrc
index 7bb111d..5ccc0f8 100644
--- a/application.qrc
+++ b/application.qrc
@@ -11,4 +11,9 @@
res/zcashdlogo.gif
res/logobig.gif
+
+ res/zec_qt_wallet_es.qm
+ res/zec_qt_wallet_fr.qm
+ res/zec_qt_wallet_de.qm
+
diff --git a/res/zec_qt_wallet_de.ts b/res/zec_qt_wallet_de.ts
new file mode 100644
index 0000000..8e191aa
--- /dev/null
+++ b/res/zec_qt_wallet_de.ts
@@ -0,0 +1,1089 @@
+
+
+
+
+ BalancesTableModel
+
+
+ Address
+
+
+
+
+ Amount
+
+
+
+
+ ConnectionDialog
+
+
+ zec-qt-wallet
+
+
+
+
+ Starting Up
+
+
+
+
+ MainWindow
+
+
+ zec-qt-wallet
+
+
+
+
+ Balance
+
+
+
+
+ Summary
+
+
+
+
+ Shielded
+
+
+
+
+ Transparent
+
+
+
+
+ Total
+
+
+
+
+ Some transactions are not yet confirmed
+
+
+
+
+ Address Balances
+
+
+
+
+
+ Send
+
+
+
+
+ From
+
+
+
+
+
+ Address Balance
+
+
+
+
+ Send To
+
+
+
+
+ Recipient
+
+
+
+
+
+
+
+
+ Address
+
+
+
+
+
+ Address Book
+
+
+
+
+
+
+
+ Amount
+
+
+
+
+ Max Available
+
+
+
+
+
+
+
+ Memo
+
+
+
+
+ Add Recipient
+
+
+
+
+
+ Miner Fee
+
+
+
+
+ 0
+
+
+
+
+ Cancel
+
+
+
+
+ Receive
+
+
+
+
+ Address Type
+
+
+
+
+ z-Addr(Sapling)
+
+
+
+
+ t-Addr
+
+
+
+
+ z-Addr(Sprout)
+
+
+
+
+ New Address
+
+
+
+
+ Label
+
+
+
+
+ Update Label
+
+
+
+
+ Optional
+
+
+
+
+ Export Private Key
+
+
+
+
+ Transactions
+
+
+
+
+ zcashd
+
+
+
+
+ You are currently not mining
+
+
+
+
+
+
+
+ Loading...
+
+
+
+
+ Block height
+
+
+
+
+ Network solution rate
+
+
+
+
+ Connections
+
+
+
+
+
+
+ |
+
+
+
+
+ &File
+
+
+
+
+ &Help
+
+
+
+
+ &Apps
+
+
+
+
+ &Edit
+
+
+
+
+ E&xit
+
+
+
+
+ &About
+
+
+
+
+ &Settings
+
+
+
+
+ Ctrl+P
+
+
+
+
+ &Donate
+
+
+
+
+ Check github.com for &updates
+
+
+
+
+ Sapling &turnstile
+
+
+
+
+ Ctrl+A, Ctrl+T
+
+
+
+
+ &Import private key
+
+
+
+
+ &Export all private keys
+
+
+
+
+ &z-board.net
+
+
+
+
+ Ctrl+A, Ctrl+Z
+
+
+
+
+ Address &book
+
+
+
+
+ Ctrl+B
+
+
+
+
+ &Backup wallet.dat
+
+
+
+
+ Thanks for supporting zec-qt-wallet!
+
+
+
+
+ Donate 0.01
+
+
+
+
+ to support zec-qt-wallet
+
+
+
+
+ You are on testnet, your post won't actually appear on z-board.net
+
+
+
+
+ You need a sapling address with available balance to post
+
+
+
+
+ Computing Tx:
+
+
+
+
+ The keys were imported. It may take several minutes to rescan the blockchain. Until then, functionality may be limited
+
+
+
+
+ Private key import rescan finished
+
+
+
+
+ Please paste your private keys (z-Addr or t-Addr) here, one per line
+
+
+
+
+ The keys will be imported into your connected zcashd node
+
+
+
+
+ No wallet.dat
+
+
+
+
+ Couldn't find the wallet.dat on this computer
+
+
+
+
+ You need to back it up from the machine zcashd is running on
+
+
+
+
+ Backup wallet.dat
+
+
+
+
+ Couldn't backup
+
+
+
+
+ Couldn't backup the wallet.dat file.
+
+
+
+
+ You need to back it up manually.
+
+
+
+
+ These are all the private keys for all the addresses in your wallet
+
+
+
+
+ Private key for
+
+
+
+
+ Save File
+
+
+
+
+ Unable to open file
+
+
+
+
+
+ Copy address
+
+
+
+
+
+
+ Copied to clipboard
+
+
+
+
+ Get private key
+
+
+
+
+ Shield balance to Sapling
+
+
+
+
+
+ View on block explorer
+
+
+
+
+ Migrate to Sapling
+
+
+
+
+ Copy txid
+
+
+
+
+ View Memo
+
+
+
+
+ Created new t-Addr
+
+
+
+
+ Recipient
+
+
+
+
+ z
+
+
+
+
+ Only z-addresses can have memos
+
+
+
+
+ Memos can only be used with z-addresses
+
+
+
+
+ The memo field can only be used with a z-address.
+
+
+
+
+
+
+doesn't look like a z-address
+
+
+
+
+ Change from
+
+
+
+
+ Transaction Error
+
+
+
+
+ From Address is Invalid
+
+
+
+
+ Recipient Address
+
+
+
+
+ is Invalid
+
+
+
+
+ MemoDialog
+
+
+
+ Memo
+
+
+
+
+ PrivKey
+
+
+ Private Key
+
+
+
+
+ QObject
+
+
+ Attempting autoconnect
+
+
+
+
+ Starting embedded zcashd
+
+
+
+
+ Embedded zcashd started up, trying autoconnect in 1 sec
+
+
+
+
+ zcashd is daemon=1. Waiting for it to start up
+
+
+
+
+ zcashd is set to run as daemon
+
+
+
+
+ Waiting for zcashd
+
+
+
+
+ Unknown problem while trying to start zcashd
+
+
+
+
+ You have zcashd set to start as a daemon, which can cause problems with zec-qt-wallet
+
+.Please remove the following line from your zcash.conf and restart zec-qt-wallet
+daemon=1
+
+
+
+
+ Couldn't start the embedded zcashd.
+
+Please try restarting.
+
+If you previously started zcashd with custom arguments, you might need to reset zcash.conf.
+
+If all else fails, please run zcashd manually.
+
+
+
+
+ The process returned)
+
+
+
+
+ Not using embedded and couldn't connect to zcashd
+
+
+
+
+ Couldn't connect to zcashd configured in zcash.conf.
+
+Not starting embedded zcashd because --no-embedded was passed
+
+
+
+
+ Creating file
+
+
+
+
+ Could not create zcash.conf, returning
+
+
+
+
+ Adding params to download queue
+
+
+
+
+ All Downloads done
+
+
+
+
+ All Downloads Finished Successfully!
+
+
+
+
+ already exists, skipping
+
+
+
+
+ Couldn't open
+
+
+
+
+ for writing
+
+
+
+
+ Couldn't download params. Please check the help site for more info.
+
+
+
+
+ Downloading to
+
+
+
+
+
+
+ Downloading
+
+
+
+
+ more remaining )
+
+
+
+
+ MB of
+
+
+
+
+ MB at
+
+
+
+
+ Finished downloading
+
+
+
+
+ failed
+
+
+
+
+ failed. Please check the help site for more info
+
+
+
+
+ Trying to start embedded zcashd
+
+
+
+
+ zcashd error
+
+
+
+
+
+ Can't find zcashd at
+
+
+
+
+ A manual connection was requested, but the settings are not configured.
+
+Please set the host/port and user/password in the Edit->Settings menu.
+
+
+
+
+ Could not connect to zcashd configured in settings.
+
+Please set the host/port and user/password in the Edit->Settings menu.
+
+
+
+
+ Authentication failed
+
+
+
+
+ Authentication failed. The username / password you specified was not accepted by zcashd. Try changing it in the Edit->Settings menu
+
+
+
+
+ Your zcashd is starting up. Please wait.
+
+
+
+
+ Waiting for zcashd to come online.
+
+
+
+
+ Connection Error
+
+
+
+
+
+ Found zcashconf at
+
+
+
+
+ Creating params location at
+
+
+
+
+ Found Zcash params directory at
+
+
+
+
+ Unknown error
+
+
+
+
+ Transaction Error
+
+
+
+
+ There was an error sending the transaction. The error was:
+
+
+
+
+ No Connection
+
+
+
+
+ Settings
+
+
+ Settings
+
+
+
+
+ zcashd connection
+
+
+
+
+ Host
+
+
+
+
+ Port
+
+
+
+
+ RPC Username
+
+
+
+
+ RPC Password
+
+
+
+
+ Options
+
+
+
+
+ Shielded transactions are saved locally and shown in the transactions tab. If you uncheck this, shielded transactions will not appear in the transactions tab.
+
+
+
+
+ Clear History
+
+
+
+
+ Remember shielded transactions
+
+
+
+
+ Allow custom fees
+
+
+
+
+ Allow overriding the default fees when sending transactions. Enabling this option may compromise your privacy since fees are transparent.
+
+
+
+
+ Normally, change from t-Addresses goes to another t-Address. Checking this option will send the change to your shielded sapling address instead. Check this option to increase your privacy.
+
+
+
+
+ Shield change from t-Addresses to your sapling address
+
+
+
+
+ Turnstile
+
+
+
+ Turnstile Migration
+
+
+
+
+ Migrate over
+
+
+
+
+ From
+
+
+
+
+ <html><head/><body><p>Funds from Sprout z-Addresses (which start with "zc") need to be moved to the upgraded Sapling z-Addresses (which start with "zs"). The funds cannot be moved directly, but need to be sent through intermediate "transparent" addresses in privacy-preserving way.</p><p>This migration can be done automatically for you.</p></body></html>
+
+
+
+
+ To
+
+
+
+
+ Balance
+
+
+
+
+ Miner Fees
+
+
+
+
+ Total Balance
+
+
+
+
+ TurnstileProgress
+
+
+ Turnstile Migration Progress
+
+
+
+
+ From
+
+
+
+
+ To
+
+
+
+
+ Please ensure you have your wallet.dat backed up!
+
+
+
+
+ Next Transaction in 4 hours
+
+
+
+
+ Migration Progress
+
+
+
+
+ about
+
+
+ About
+
+
+
+
+ addressBook
+
+
+ Address Book
+
+
+
+
+ Add New Address
+
+
+
+
+ Address (z-Addr or t-Addr)
+
+
+
+
+ Label
+
+
+
+
+ Add to Address Book
+
+
+
+
+ confirm
+
+
+ Confirm Transaction
+
+
+
+
+ From
+
+
+
+
+ To
+
+
+
+
+ You are sending a transaction while your node is still syncing. This may not work.
+
+
+
+
+ You are using a custom fee. Since fees are transparent, you are giving up some privacy. Please use this only if you know what you are doing!
+
+
+
+
+ zboard
+
+
+ Post to z-board.net
+
+
+
+
+ Total Fee
+
+
+
+
+ Memo
+
+
+
+
+ (optional)
+
+
+
+
+ Send From
+
+
+
+
+ Post As:
+
+
+
+
+ <html><head/><body><p>ZBoard: Fully anonymous and untraceable chat messages based on the ZCash blockchain. <a href="http://www.z-board.net/"><span style=" text-decoration: underline; color:#0000ff;">http://www.z-board.net/</span></a></p></body></html>
+
+
+
+
+ Warning
+
+
+
+
+ Posting to Board
+
+
+
+
diff --git a/res/zec_qt_wallet_es.ts b/res/zec_qt_wallet_es.ts
new file mode 100644
index 0000000..08bd3c0
--- /dev/null
+++ b/res/zec_qt_wallet_es.ts
@@ -0,0 +1,1089 @@
+
+
+
+
+ BalancesTableModel
+
+
+ Address
+
+
+
+
+ Amount
+
+
+
+
+ ConnectionDialog
+
+
+ zec-qt-wallet
+
+
+
+
+ Starting Up
+
+
+
+
+ MainWindow
+
+
+ zec-qt-wallet
+
+
+
+
+ Balance
+
+
+
+
+ Summary
+
+
+
+
+ Shielded
+
+
+
+
+ Transparent
+
+
+
+
+ Total
+
+
+
+
+ Some transactions are not yet confirmed
+
+
+
+
+ Address Balances
+
+
+
+
+
+ Send
+
+
+
+
+ From
+
+
+
+
+
+ Address Balance
+
+
+
+
+ Send To
+
+
+
+
+ Recipient
+
+
+
+
+
+
+
+
+ Address
+
+
+
+
+
+ Address Book
+
+
+
+
+
+
+
+ Amount
+
+
+
+
+ Max Available
+
+
+
+
+
+
+
+ Memo
+
+
+
+
+ Add Recipient
+
+
+
+
+
+ Miner Fee
+
+
+
+
+ 0
+
+
+
+
+ Cancel
+
+
+
+
+ Receive
+
+
+
+
+ Address Type
+
+
+
+
+ z-Addr(Sapling)
+
+
+
+
+ t-Addr
+
+
+
+
+ z-Addr(Sprout)
+
+
+
+
+ New Address
+
+
+
+
+ Label
+
+
+
+
+ Update Label
+
+
+
+
+ Optional
+
+
+
+
+ Export Private Key
+
+
+
+
+ Transactions
+
+
+
+
+ zcashd
+
+
+
+
+ You are currently not mining
+
+
+
+
+
+
+
+ Loading...
+
+
+
+
+ Block height
+
+
+
+
+ Network solution rate
+
+
+
+
+ Connections
+
+
+
+
+
+
+ |
+
+
+
+
+ &File
+
+
+
+
+ &Help
+
+
+
+
+ &Apps
+
+
+
+
+ &Edit
+
+
+
+
+ E&xit
+
+
+
+
+ &About
+
+
+
+
+ &Settings
+
+
+
+
+ Ctrl+P
+
+
+
+
+ &Donate
+
+
+
+
+ Check github.com for &updates
+
+
+
+
+ Sapling &turnstile
+
+
+
+
+ Ctrl+A, Ctrl+T
+
+
+
+
+ &Import private key
+
+
+
+
+ &Export all private keys
+
+
+
+
+ &z-board.net
+
+
+
+
+ Ctrl+A, Ctrl+Z
+
+
+
+
+ Address &book
+
+
+
+
+ Ctrl+B
+
+
+
+
+ &Backup wallet.dat
+
+
+
+
+ Thanks for supporting zec-qt-wallet!
+
+
+
+
+ Donate 0.01
+
+
+
+
+ to support zec-qt-wallet
+
+
+
+
+ You are on testnet, your post won't actually appear on z-board.net
+
+
+
+
+ You need a sapling address with available balance to post
+
+
+
+
+ Computing Tx:
+
+
+
+
+ The keys were imported. It may take several minutes to rescan the blockchain. Until then, functionality may be limited
+
+
+
+
+ Private key import rescan finished
+
+
+
+
+ Please paste your private keys (z-Addr or t-Addr) here, one per line
+
+
+
+
+ The keys will be imported into your connected zcashd node
+
+
+
+
+ No wallet.dat
+
+
+
+
+ Couldn't find the wallet.dat on this computer
+
+
+
+
+ You need to back it up from the machine zcashd is running on
+
+
+
+
+ Backup wallet.dat
+
+
+
+
+ Couldn't backup the wallet.dat file.
+
+
+
+
+ Couldn't backup
+
+
+
+
+ You need to back it up manually.
+
+
+
+
+ These are all the private keys for all the addresses in your wallet
+
+
+
+
+ Private key for
+
+
+
+
+ Save File
+
+
+
+
+ Unable to open file
+
+
+
+
+
+ Copy address
+
+
+
+
+
+
+ Copied to clipboard
+
+
+
+
+ Get private key
+
+
+
+
+ Shield balance to Sapling
+
+
+
+
+
+ View on block explorer
+
+
+
+
+ Migrate to Sapling
+
+
+
+
+ Copy txid
+
+
+
+
+ View Memo
+
+
+
+
+ Created new t-Addr
+
+
+
+
+ Recipient
+
+
+
+
+ z
+
+
+
+
+ Only z-addresses can have memos
+
+
+
+
+ Memos can only be used with z-addresses
+
+
+
+
+ The memo field can only be used with a z-address.
+
+
+
+
+
+
+doesn't look like a z-address
+
+
+
+
+ Change from
+
+
+
+
+ Transaction Error
+
+
+
+
+ From Address is Invalid
+
+
+
+
+ Recipient Address
+
+
+
+
+ is Invalid
+
+
+
+
+ MemoDialog
+
+
+
+ Memo
+
+
+
+
+ PrivKey
+
+
+ Private Key
+
+
+
+
+ QObject
+
+
+ No Connection
+
+
+
+
+ Attempting autoconnect
+
+
+
+
+ Starting embedded zcashd
+
+
+
+
+ Embedded zcashd started up, trying autoconnect in 1 sec
+
+
+
+
+ zcashd is daemon=1. Waiting for it to start up
+
+
+
+
+ zcashd is set to run as daemon
+
+
+
+
+ Waiting for zcashd
+
+
+
+
+ Unknown problem while trying to start zcashd
+
+
+
+
+ You have zcashd set to start as a daemon, which can cause problems with zec-qt-wallet
+
+.Please remove the following line from your zcash.conf and restart zec-qt-wallet
+daemon=1
+
+
+
+
+ Couldn't start the embedded zcashd.
+
+Please try restarting.
+
+If you previously started zcashd with custom arguments, you might need to reset zcash.conf.
+
+If all else fails, please run zcashd manually.
+
+
+
+
+ The process returned)
+
+
+
+
+ Not using embedded and couldn't connect to zcashd
+
+
+
+
+ Couldn't connect to zcashd configured in zcash.conf.
+
+Not starting embedded zcashd because --no-embedded was passed
+
+
+
+
+ Creating file
+
+
+
+
+ Could not create zcash.conf, returning
+
+
+
+
+ Adding params to download queue
+
+
+
+
+ All Downloads done
+
+
+
+
+ All Downloads Finished Successfully!
+
+
+
+
+ already exists, skipping
+
+
+
+
+ Couldn't open
+
+
+
+
+ for writing
+
+
+
+
+ Couldn't download params. Please check the help site for more info.
+
+
+
+
+ Downloading to
+
+
+
+
+
+
+ Downloading
+
+
+
+
+ more remaining )
+
+
+
+
+ MB of
+
+
+
+
+ MB at
+
+
+
+
+ Finished downloading
+
+
+
+
+ failed
+
+
+
+
+ failed. Please check the help site for more info
+
+
+
+
+ Trying to start embedded zcashd
+
+
+
+
+ zcashd error
+
+
+
+
+
+ Can't find zcashd at
+
+
+
+
+ A manual connection was requested, but the settings are not configured.
+
+Please set the host/port and user/password in the Edit->Settings menu.
+
+
+
+
+ Could not connect to zcashd configured in settings.
+
+Please set the host/port and user/password in the Edit->Settings menu.
+
+
+
+
+ Authentication failed
+
+
+
+
+ Authentication failed. The username / password you specified was not accepted by zcashd. Try changing it in the Edit->Settings menu
+
+
+
+
+ Your zcashd is starting up. Please wait.
+
+
+
+
+ Waiting for zcashd to come online.
+
+
+
+
+ Connection Error
+
+
+
+
+
+ Found zcashconf at
+
+
+
+
+ Creating params location at
+
+
+
+
+ Found Zcash params directory at
+
+
+
+
+ Unknown error
+
+
+
+
+ Transaction Error
+
+
+
+
+ There was an error sending the transaction. The error was:
+
+
+
+
+ Settings
+
+
+ Settings
+
+
+
+
+ zcashd connection
+
+
+
+
+ Host
+
+
+
+
+ Port
+
+
+
+
+ RPC Username
+
+
+
+
+ RPC Password
+
+
+
+
+ Options
+
+
+
+
+ Shielded transactions are saved locally and shown in the transactions tab. If you uncheck this, shielded transactions will not appear in the transactions tab.
+
+
+
+
+ Clear History
+
+
+
+
+ Remember shielded transactions
+
+
+
+
+ Allow custom fees
+
+
+
+
+ Allow overriding the default fees when sending transactions. Enabling this option may compromise your privacy since fees are transparent.
+
+
+
+
+ Normally, change from t-Addresses goes to another t-Address. Checking this option will send the change to your shielded sapling address instead. Check this option to increase your privacy.
+
+
+
+
+ Shield change from t-Addresses to your sapling address
+
+
+
+
+ Turnstile
+
+
+
+ Turnstile Migration
+
+
+
+
+ Migrate over
+
+
+
+
+ From
+
+
+
+
+ <html><head/><body><p>Funds from Sprout z-Addresses (which start with "zc") need to be moved to the upgraded Sapling z-Addresses (which start with "zs"). The funds cannot be moved directly, but need to be sent through intermediate "transparent" addresses in privacy-preserving way.</p><p>This migration can be done automatically for you.</p></body></html>
+
+
+
+
+ To
+
+
+
+
+ Balance
+
+
+
+
+ Miner Fees
+
+
+
+
+ Total Balance
+
+
+
+
+ TurnstileProgress
+
+
+ Turnstile Migration Progress
+
+
+
+
+ From
+
+
+
+
+ To
+
+
+
+
+ Please ensure you have your wallet.dat backed up!
+
+
+
+
+ Next Transaction in 4 hours
+
+
+
+
+ Migration Progress
+
+
+
+
+ about
+
+
+ About
+
+
+
+
+ addressBook
+
+
+ Address Book
+
+
+
+
+ Add New Address
+
+
+
+
+ Address (z-Addr or t-Addr)
+
+
+
+
+ Label
+
+
+
+
+ Add to Address Book
+
+
+
+
+ confirm
+
+
+ Confirm Transaction
+
+
+
+
+ From
+
+
+
+
+ To
+
+
+
+
+ You are sending a transaction while your node is still syncing. This may not work.
+
+
+
+
+ You are using a custom fee. Since fees are transparent, you are giving up some privacy. Please use this only if you know what you are doing!
+
+
+
+
+ zboard
+
+
+ Post to z-board.net
+
+
+
+
+ Total Fee
+
+
+
+
+ Memo
+
+
+
+
+ (optional)
+
+
+
+
+ Send From
+
+
+
+
+ Post As:
+
+
+
+
+ <html><head/><body><p>ZBoard: Fully anonymous and untraceable chat messages based on the ZCash blockchain. <a href="http://www.z-board.net/"><span style=" text-decoration: underline; color:#0000ff;">http://www.z-board.net/</span></a></p></body></html>
+
+
+
+
+ Warning
+
+
+
+
+ Posting to Board
+
+
+
+
diff --git a/res/zec_qt_wallet_fr.ts b/res/zec_qt_wallet_fr.ts
new file mode 100644
index 0000000..8f4bb65
--- /dev/null
+++ b/res/zec_qt_wallet_fr.ts
@@ -0,0 +1,1089 @@
+
+
+
+
+ BalancesTableModel
+
+
+ Address
+
+
+
+
+ Amount
+
+
+
+
+ ConnectionDialog
+
+
+ zec-qt-wallet
+
+
+
+
+ Starting Up
+
+
+
+
+ MainWindow
+
+
+ zec-qt-wallet
+
+
+
+
+ Balance
+
+
+
+
+ Summary
+
+
+
+
+ Shielded
+
+
+
+
+ Transparent
+
+
+
+
+ Total
+
+
+
+
+ Some transactions are not yet confirmed
+
+
+
+
+ Address Balances
+
+
+
+
+
+ Send
+
+
+
+
+ From
+
+
+
+
+
+ Address Balance
+
+
+
+
+ Send To
+
+
+
+
+ Recipient
+
+
+
+
+
+
+
+
+ Address
+
+
+
+
+
+ Address Book
+
+
+
+
+
+
+
+ Amount
+
+
+
+
+ Max Available
+
+
+
+
+
+
+
+ Memo
+
+
+
+
+ Add Recipient
+
+
+
+
+
+ Miner Fee
+
+
+
+
+ 0
+
+
+
+
+ Cancel
+
+
+
+
+ Receive
+
+
+
+
+ Address Type
+
+
+
+
+ z-Addr(Sapling)
+
+
+
+
+ t-Addr
+
+
+
+
+ z-Addr(Sprout)
+
+
+
+
+ New Address
+
+
+
+
+ Label
+
+
+
+
+ Update Label
+
+
+
+
+ Optional
+
+
+
+
+ Export Private Key
+
+
+
+
+ Transactions
+
+
+
+
+ zcashd
+
+
+
+
+ You are currently not mining
+
+
+
+
+
+
+
+ Loading...
+
+
+
+
+ Block height
+
+
+
+
+ Network solution rate
+
+
+
+
+ Connections
+
+
+
+
+
+
+ |
+
+
+
+
+ &File
+
+
+
+
+ &Help
+
+
+
+
+ &Apps
+
+
+
+
+ &Edit
+
+
+
+
+ E&xit
+
+
+
+
+ &About
+
+
+
+
+ &Settings
+
+
+
+
+ Ctrl+P
+
+
+
+
+ &Donate
+
+
+
+
+ Check github.com for &updates
+
+
+
+
+ Sapling &turnstile
+
+
+
+
+ Ctrl+A, Ctrl+T
+
+
+
+
+ &Import private key
+
+
+
+
+ &Export all private keys
+
+
+
+
+ &z-board.net
+
+
+
+
+ Ctrl+A, Ctrl+Z
+
+
+
+
+ Address &book
+
+
+
+
+ Ctrl+B
+
+
+
+
+ &Backup wallet.dat
+
+
+
+
+ Thanks for supporting zec-qt-wallet!
+
+
+
+
+ Donate 0.01
+
+
+
+
+ to support zec-qt-wallet
+
+
+
+
+ You are on testnet, your post won't actually appear on z-board.net
+
+
+
+
+ You need a sapling address with available balance to post
+
+
+
+
+ Computing Tx:
+
+
+
+
+ The keys were imported. It may take several minutes to rescan the blockchain. Until then, functionality may be limited
+
+
+
+
+ Private key import rescan finished
+
+
+
+
+ Please paste your private keys (z-Addr or t-Addr) here, one per line
+
+
+
+
+ The keys will be imported into your connected zcashd node
+
+
+
+
+ No wallet.dat
+
+
+
+
+ Couldn't find the wallet.dat on this computer
+
+
+
+
+ You need to back it up from the machine zcashd is running on
+
+
+
+
+ Backup wallet.dat
+
+
+
+
+ Couldn't backup
+
+
+
+
+ Couldn't backup the wallet.dat file.
+
+
+
+
+ You need to back it up manually.
+
+
+
+
+ These are all the private keys for all the addresses in your wallet
+
+
+
+
+ Private key for
+
+
+
+
+ Save File
+
+
+
+
+ Unable to open file
+
+
+
+
+
+ Copy address
+
+
+
+
+
+
+ Copied to clipboard
+
+
+
+
+ Get private key
+
+
+
+
+ Shield balance to Sapling
+
+
+
+
+
+ View on block explorer
+
+
+
+
+ Migrate to Sapling
+
+
+
+
+ Copy txid
+
+
+
+
+ View Memo
+
+
+
+
+ Created new t-Addr
+
+
+
+
+ Recipient
+
+
+
+
+ z
+
+
+
+
+ Only z-addresses can have memos
+
+
+
+
+ Memos can only be used with z-addresses
+
+
+
+
+ The memo field can only be used with a z-address.
+
+
+
+
+
+
+doesn't look like a z-address
+
+
+
+
+ Change from
+
+
+
+
+ Transaction Error
+
+
+
+
+ From Address is Invalid
+
+
+
+
+ Recipient Address
+
+
+
+
+ is Invalid
+
+
+
+
+ MemoDialog
+
+
+
+ Memo
+
+
+
+
+ PrivKey
+
+
+ Private Key
+
+
+
+
+ QObject
+
+
+ Attempting autoconnect
+
+
+
+
+ Starting embedded zcashd
+
+
+
+
+ Embedded zcashd started up, trying autoconnect in 1 sec
+
+
+
+
+ zcashd is daemon=1. Waiting for it to start up
+
+
+
+
+ zcashd is set to run as daemon
+
+
+
+
+ Waiting for zcashd
+
+
+
+
+ Unknown problem while trying to start zcashd
+
+
+
+
+ You have zcashd set to start as a daemon, which can cause problems with zec-qt-wallet
+
+.Please remove the following line from your zcash.conf and restart zec-qt-wallet
+daemon=1
+
+
+
+
+ Couldn't start the embedded zcashd.
+
+Please try restarting.
+
+If you previously started zcashd with custom arguments, you might need to reset zcash.conf.
+
+If all else fails, please run zcashd manually.
+
+
+
+
+ The process returned)
+
+
+
+
+ Not using embedded and couldn't connect to zcashd
+
+
+
+
+ Couldn't connect to zcashd configured in zcash.conf.
+
+Not starting embedded zcashd because --no-embedded was passed
+
+
+
+
+ Creating file
+
+
+
+
+ Could not create zcash.conf, returning
+
+
+
+
+ Adding params to download queue
+
+
+
+
+ All Downloads done
+
+
+
+
+ All Downloads Finished Successfully!
+
+
+
+
+ already exists, skipping
+
+
+
+
+ Couldn't open
+
+
+
+
+ for writing
+
+
+
+
+ Couldn't download params. Please check the help site for more info.
+
+
+
+
+ Downloading to
+
+
+
+
+
+
+ Downloading
+
+
+
+
+ more remaining )
+
+
+
+
+ MB of
+
+
+
+
+ MB at
+
+
+
+
+ Finished downloading
+
+
+
+
+ failed
+
+
+
+
+ failed. Please check the help site for more info
+
+
+
+
+ Trying to start embedded zcashd
+
+
+
+
+ zcashd error
+
+
+
+
+
+ Can't find zcashd at
+
+
+
+
+ A manual connection was requested, but the settings are not configured.
+
+Please set the host/port and user/password in the Edit->Settings menu.
+
+
+
+
+ Could not connect to zcashd configured in settings.
+
+Please set the host/port and user/password in the Edit->Settings menu.
+
+
+
+
+ Authentication failed
+
+
+
+
+ Authentication failed. The username / password you specified was not accepted by zcashd. Try changing it in the Edit->Settings menu
+
+
+
+
+ Your zcashd is starting up. Please wait.
+
+
+
+
+ Waiting for zcashd to come online.
+
+
+
+
+ Connection Error
+
+
+
+
+
+ Found zcashconf at
+
+
+
+
+ Creating params location at
+
+
+
+
+ Found Zcash params directory at
+
+
+
+
+ Unknown error
+
+
+
+
+ Transaction Error
+
+
+
+
+ There was an error sending the transaction. The error was:
+
+
+
+
+ No Connection
+
+
+
+
+ Settings
+
+
+ Settings
+
+
+
+
+ zcashd connection
+
+
+
+
+ Host
+
+
+
+
+ Port
+
+
+
+
+ RPC Username
+
+
+
+
+ RPC Password
+
+
+
+
+ Options
+
+
+
+
+ Shielded transactions are saved locally and shown in the transactions tab. If you uncheck this, shielded transactions will not appear in the transactions tab.
+
+
+
+
+ Clear History
+
+
+
+
+ Remember shielded transactions
+
+
+
+
+ Allow custom fees
+
+
+
+
+ Allow overriding the default fees when sending transactions. Enabling this option may compromise your privacy since fees are transparent.
+
+
+
+
+ Normally, change from t-Addresses goes to another t-Address. Checking this option will send the change to your shielded sapling address instead. Check this option to increase your privacy.
+
+
+
+
+ Shield change from t-Addresses to your sapling address
+
+
+
+
+ Turnstile
+
+
+
+ Turnstile Migration
+
+
+
+
+ Migrate over
+
+
+
+
+ From
+
+
+
+
+ <html><head/><body><p>Funds from Sprout z-Addresses (which start with "zc") need to be moved to the upgraded Sapling z-Addresses (which start with "zs"). The funds cannot be moved directly, but need to be sent through intermediate "transparent" addresses in privacy-preserving way.</p><p>This migration can be done automatically for you.</p></body></html>
+
+
+
+
+ To
+
+
+
+
+ Balance
+
+
+
+
+ Miner Fees
+
+
+
+
+ Total Balance
+
+
+
+
+ TurnstileProgress
+
+
+ Turnstile Migration Progress
+
+
+
+
+ From
+
+
+
+
+ To
+
+
+
+
+ Please ensure you have your wallet.dat backed up!
+
+
+
+
+ Next Transaction in 4 hours
+
+
+
+
+ Migration Progress
+
+
+
+
+ about
+
+
+ About
+
+
+
+
+ addressBook
+
+
+ Address Book
+
+
+
+
+ Add New Address
+
+
+
+
+ Address (z-Addr or t-Addr)
+
+
+
+
+ Label
+
+
+
+
+ Add to Address Book
+
+
+
+
+ confirm
+
+
+ Confirm Transaction
+
+
+
+
+ From
+
+
+
+
+ To
+
+
+
+
+ You are sending a transaction while your node is still syncing. This may not work.
+
+
+
+
+ You are using a custom fee. Since fees are transparent, you are giving up some privacy. Please use this only if you know what you are doing!
+
+
+
+
+ zboard
+
+
+ Post to z-board.net
+
+
+
+
+ Total Fee
+
+
+
+
+ Memo
+
+
+
+
+ (optional)
+
+
+
+
+ Send From
+
+
+
+
+ Post As:
+
+
+
+
+ <html><head/><body><p>ZBoard: Fully anonymous and untraceable chat messages based on the ZCash blockchain. <a href="http://www.z-board.net/"><span style=" text-decoration: underline; color:#0000ff;">http://www.z-board.net/</span></a></p></body></html>
+
+
+
+
+ Warning
+
+
+
+
+ Posting to Board
+
+
+
+
diff --git a/src/connection.cpp b/src/connection.cpp
index a36cab6..7215527 100644
--- a/src/connection.cpp
+++ b/src/connection.cpp
@@ -38,7 +38,7 @@ void ConnectionLoader::doAutoConnect(bool tryEzcashdStart) {
// Priority 2: Try to connect to detect zcash.conf and connect to it.
auto config = autoDetectZcashConf();
- main->logger->write("Attempting autoconnect");
+ main->logger->write(QObject::tr("Attempting autoconnect"));
if (config.get() != nullptr) {
auto connection = makeConnection(config);
@@ -47,7 +47,7 @@ void ConnectionLoader::doAutoConnect(bool tryEzcashdStart) {
// Refused connection. So try and start embedded zcashd
if (Settings::getInstance()->useEmbedded()) {
if (tryEzcashdStart) {
- this->showInformation("Starting embedded zcashd");
+ this->showInformation(QObject::tr("Starting embedded zcashd"));
if (this->startEmbeddedZcashd()) {
// Embedded zcashd started up. Wait a second and then refresh the connection
main->logger->write("Embedded zcashd started up, trying autoconnect in 1 sec");
@@ -57,7 +57,7 @@ void ConnectionLoader::doAutoConnect(bool tryEzcashdStart) {
// zcashd is configured to run as a daemon, so we must wait for a few seconds
// to let it start up.
main->logger->write("zcashd is daemon=1. Waiting for it to start up");
- this->showInformation("zcashd is set to run as daemon", "Waiting for zcashd");
+ this->showInformation(QObject::tr("zcashd is set to run as daemon"), QObject::tr("Waiting for zcashd"));
QTimer::singleShot(5000, [=]() { doAutoConnect(/* don't attempt to start ezcashd */ false); });
} else {
// Something is wrong.
@@ -72,15 +72,15 @@ void ConnectionLoader::doAutoConnect(bool tryEzcashdStart) {
main->logger->write("Couldn't start embedded zcashd for unknown reason");
QString explanation;
if (config->zcashDaemon) {
- explanation = QString() % "You have zcashd set to start as a daemon, which can cause problems "
+ explanation = QString() % QObject::tr("You have zcashd set to start as a daemon, which can cause problems "
"with zec-qt-wallet\n\n."
"Please remove the following line from your zcash.conf and restart zec-qt-wallet\n"
- "daemon=1";
+ "daemon=1");
} else {
- explanation = QString() % "Couldn't start the embedded zcashd.\n\n" %
- "Please try restarting.\n\nIf you previously started zcashd with custom arguments, you might need to reset zcash.conf.\n\n" %
- "If all else fails, please run zcashd manually." %
- (ezcashd ? "The process returned:\n\n" % ezcashd->errorString() : QString(""));
+ explanation = QString() % QObject::tr("Couldn't start the embedded zcashd.\n\n"
+ "Please try restarting.\n\nIf you previously started zcashd with custom arguments, you might need to reset zcash.conf.\n\n"
+ "If all else fails, please run zcashd manually.") %
+ (ezcashd ? QObject::tr("The process returned") + ":\n\n" % ezcashd->errorString() : QString(""));
}
this->showError(explanation);
@@ -88,8 +88,8 @@ void ConnectionLoader::doAutoConnect(bool tryEzcashdStart) {
} else {
// zcash.conf exists, there's no connection, and the user asked us not to start zcashd. Error!
main->logger->write("Not using embedded and couldn't connect to zcashd");
- QString explanation = QString() % "Couldn't connect to zcashd configured in zcash.conf.\n\n" %
- "Not starting embedded zcashd because --no-embedded was passed";
+ QString explanation = QString() % QObject::tr("Couldn't connect to zcashd configured in zcash.conf.\n\n"
+ "Not starting embedded zcashd because --no-embedded was passed");
this->showError(explanation);
}
});
@@ -180,7 +180,7 @@ void ConnectionLoader::doNextDownload(std::function cb) {
client->deleteLater();
main->logger->write("All Downloads done");
- this->showInformation("All Downloads Finished Successfully!");
+ this->showInformation(QObject::tr("All Downloads Finished Successfully!"));
cb();
return;
}
@@ -203,7 +203,7 @@ void ConnectionLoader::doNextDownload(std::function cb) {
if (!currentOutput->open(QIODevice::WriteOnly)) {
main->logger->write("Couldn't open " + currentOutput->fileName() + " for writing");
- this->showError("Couldn't download params. Please check the help site for more info.");
+ this->showError(QObject::tr("Couldn't download params. Please check the help site for more info."));
}
main->logger->write("Downloading to " + filename);
qDebug() << "Downloading " << url << " to " << filename;
@@ -229,8 +229,8 @@ void ConnectionLoader::doNextDownload(std::function cb) {
}
this->showInformation(
- "Downloading " % filename % (filesRemaining > 1 ? " ( +" % QString::number(filesRemaining) % " more remaining )" : QString("")),
- QString::number(done/1024/1024, 'f', 0) % "MB of " % QString::number(total/1024/1024, 'f', 0) + "MB at " % QString::number(speed, 'f', 2) % unit);
+ QObject::tr("Downloading ") % filename % (filesRemaining > 1 ? " ( +" % QString::number(filesRemaining) % QObject::tr(" more remaining )") : QString("")),
+ QString::number(done/1024/1024, 'f', 0) % QObject::tr("MB of ") % QString::number(total/1024/1024, 'f', 0) + QObject::tr("MB at ") % QString::number(speed, 'f', 2) % unit);
});
// Download Finished
@@ -245,7 +245,7 @@ void ConnectionLoader::doNextDownload(std::function cb) {
if (currentDownload->error()) {
main->logger->write("Downloading " + filename + " failed");
- this->showError("Downloading " + filename + " failed. Please check the help site for more info");
+ this->showError(QObject::tr("Downloading ") + filename + QObject::tr(" failed. Please check the help site for more info"));
} else {
doNextDownload(cb);
}
@@ -269,7 +269,7 @@ bool ConnectionLoader::startEmbeddedZcashd() {
if (ezcashd != nullptr) {
if (ezcashd->state() == QProcess::NotRunning) {
if (!processStdErrOutput.isEmpty()) {
- QMessageBox::critical(main, "zcashd error", "zcashd said: " + processStdErrOutput,
+ QMessageBox::critical(main, QObject::tr("zcashd error"), "zcashd said: " + processStdErrOutput,
QMessageBox::Ok);
}
return false;
@@ -336,8 +336,8 @@ void ConnectionLoader::doManualConnect() {
if (!config) {
// Nothing configured, show an error
QString explanation = QString()
- % "A manual connection was requested, but the settings are not configured.\n\n"
- % "Please set the host/port and user/password in the Edit->Settings menu.";
+ % QObject::tr("A manual connection was requested, but the settings are not configured.\n\n"
+ "Please set the host/port and user/password in the Edit->Settings menu.");
showError(explanation);
doRPCSetConnection(nullptr);
@@ -348,8 +348,8 @@ void ConnectionLoader::doManualConnect() {
auto connection = makeConnection(config);
refreshZcashdState(connection, [=] () {
QString explanation = QString()
- % "Could not connect to zcashd configured in settings.\n\n"
- % "Please set the host/port and user/password in the Edit->Settings menu.";
+ % QObject::tr("Could not connect to zcashd configured in settings.\n\n"
+ "Please set the host/port and user/password in the Edit->Settings menu.");
showError(explanation);
doRPCSetConnection(nullptr);
@@ -407,9 +407,9 @@ void ConnectionLoader::refreshZcashdState(Connection* connection, std::function<
refused();
} else if (err == QNetworkReply::NetworkError::AuthenticationRequiredError) {
main->logger->write("Authentication failed");
- QString explanation = QString()
- % "Authentication failed. The username / password you specified was "
- % "not accepted by zcashd. Try changing it in the Edit->Settings menu";
+ QString explanation = QString() %
+ QObject::tr("Authentication failed. The username / password you specified was "
+ "not accepted by zcashd. Try changing it in the Edit->Settings menu");
this->showError(explanation);
} else if (err == QNetworkReply::NetworkError::InternalServerError &&
@@ -423,7 +423,7 @@ void ConnectionLoader::refreshZcashdState(Connection* connection, std::function<
if (dots > 3)
dots = 0;
}
- this->showInformation("Your zcashd is starting up. Please wait.", status);
+ this->showInformation(QObject::tr("Your zcashd is starting up. Please wait."), status);
main->logger->write("Waiting for zcashd to come online.");
// Refresh after one second
QTimer::singleShot(1000, [=]() { this->refreshZcashdState(connection, refused); });
@@ -444,7 +444,7 @@ void ConnectionLoader::showError(QString explanation) {
rpc->setEZcashd(nullptr);
rpc->noConnection();
- QMessageBox::critical(main, "Connection Error", explanation, QMessageBox::Ok);
+ QMessageBox::critical(main, QObject::tr("Connection Error"), explanation, QMessageBox::Ok);
d->close();
}
@@ -663,7 +663,7 @@ void Connection::showTxError(const QString& error) {
return;
shown = true;
- QMessageBox::critical(main, "Transaction Error", "There was an error sending the transaction. The error was: \n\n"
+ QMessageBox::critical(main, QObject::tr("Transaction Error"), QObject::tr("There was an error sending the transaction. The error was:") + "\n\n"
+ error, QMessageBox::StandardButton::Ok);
shown = false;
}
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index ed46021..48cea1e 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -627,7 +627,7 @@ void MainWindow::importPrivKey() {
pui.buttonBox->button(QDialogButtonBox::Save)->setVisible(false);
pui.helpLbl->setText(QString() %
- "Please paste your private keys (z-Addr or t-Addr) here, one per line.\n" %
+ tr("Please paste your private keys (z-Addr or t-Addr) here, one per line") % ".\n" %
tr("The keys will be imported into your connected zcashd node"));
if (d.exec() == QDialog::Accepted && !pui.privKeyTxt->toPlainText().trimmed().isEmpty()) {
@@ -667,17 +667,17 @@ void MainWindow::backupWalletDat() {
QFile wallet(zcashdir.filePath("wallet.dat"));
if (!wallet.exists()) {
- QMessageBox::critical(this, "No wallet.dat", tr("Couldn't find the wallet.dat on this computer.\n") +
+ QMessageBox::critical(this, tr("No wallet.dat"), tr("Couldn't find the wallet.dat on this computer") + "\n" +
tr("You need to back it up from the machine zcashd is running on"), QMessageBox::Ok);
return;
}
- QUrl backupName = QFileDialog::getSaveFileUrl(this, "Backup wallet.dat", backupDefaultName, "Data file (*.dat)");
+ QUrl backupName = QFileDialog::getSaveFileUrl(this, tr("Backup wallet.dat"), backupDefaultName, "Data file (*.dat)");
if (backupName.isEmpty())
return;
if (!wallet.copy(backupName.toLocalFile())) {
- QMessageBox::critical(this, "Couldn't backup", tr("Couldn't backup the wallet.dat file.") +
+ QMessageBox::critical(this, tr("Couldn't backup"), tr("Couldn't backup the wallet.dat file.") +
tr("You need to back it up manually."), QMessageBox::Ok);
}
}
diff --git a/src/scripts/dotranslations.sh b/src/scripts/dotranslations.sh
new file mode 100755
index 0000000..fb7acd2
--- /dev/null
+++ b/src/scripts/dotranslations.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+if [ -z $QT_STATIC ]; then
+ echo "QT_STATIC is not set. Please set it to the base directory of a statically compiled Qt";
+ exit 1;
+fi
+
+rm -f res/*.qm
+$QT_STATIC/bin/lrelease zec-qt-wallet.pro
+
+# Then update the qt base translations. First, get all languages
+ls res/*.qm | awk -F '[_.]' '{print $4}' | while read -r language ; do
+ $QT_STATIC/bin/lconvert -o res/zec_$language.qm $QT_STATIC/translations/qtbase_$language.qm res/zec_qt_wallet_$language.qm
+ mv res/zec_$language.qm res/zec_qt_wallet_$language.qm
+done
diff --git a/src/scripts/mkmacdmg.sh b/src/scripts/mkmacdmg.sh
index 355d9e4..4ffa69d 100755
--- a/src/scripts/mkmacdmg.sh
+++ b/src/scripts/mkmacdmg.sh
@@ -34,9 +34,14 @@ rm -f artifacts/macOS-zec-qt-wallet-v$APP_VERSION.dmg
echo "[OK]"
-echo -n "Building..............."
+echo -n "Configuring............"
# Build
$QT_PATH/bin/qmake zec-qt-wallet.pro CONFIG+=release >/dev/null
+QT_STATIC=$QT_STATIC src/scripts/dotranslations.sh >/dev/null
+echo "[OK]"
+
+
+echo -n "Building..............."
make -j4 >/dev/null
echo "[OK]"
diff --git a/src/scripts/mkrelease.sh b/src/scripts/mkrelease.sh
index 86c2f97..c8f46c7 100755
--- a/src/scripts/mkrelease.sh
+++ b/src/scripts/mkrelease.sh
@@ -61,6 +61,7 @@ echo "[Building on" `lsb_release -r`"]"
echo -n "Configuring............"
$QT_STATIC/bin/qmake zec-qt-wallet.pro -spec linux-clang CONFIG+=release > /dev/null
#Mingw seems to have trouble with precompiled headers, so strip that option from the .pro file
+QT_STATIC=$QT_STATIC src/scripts/dotranslations.sh >/dev/null
echo "[OK]"
diff --git a/src/sendtab.cpp b/src/sendtab.cpp
index 309e3a5..38fd1dc 100644
--- a/src/sendtab.cpp
+++ b/src/sendtab.cpp
@@ -145,7 +145,7 @@ void MainWindow::addAddressSection() {
int itemNumber = ui->sendToWidgets->children().size() - 1;
auto verticalGroupBox = new QGroupBox(ui->sendToWidgets);
- verticalGroupBox->setTitle(QString("Recipient ") % QString::number(itemNumber));
+ verticalGroupBox->setTitle(QString(tr("Recipient ")) % QString::number(itemNumber));
verticalGroupBox->setObjectName(QString("AddressGroupBox") % QString::number(itemNumber));
auto sendAddressLayout = new QVBoxLayout(verticalGroupBox);
sendAddressLayout->setSpacing(6);
@@ -154,12 +154,12 @@ void MainWindow::addAddressSection() {
auto horizontalLayout_12 = new QHBoxLayout();
horizontalLayout_12->setSpacing(6);
auto label_4 = new QLabel(verticalGroupBox);
- label_4->setText("Address");
+ label_4->setText(tr("Address"));
horizontalLayout_12->addWidget(label_4);
auto Address1 = new QLineEdit(verticalGroupBox);
Address1->setObjectName(QString("Address") % QString::number(itemNumber));
- Address1->setPlaceholderText("Address");
+ Address1->setPlaceholderText(tr("Address"));
QObject::connect(Address1, &QLineEdit::textChanged, [=] (auto text) {
this->addressChanged(itemNumber, text);
});
@@ -169,7 +169,7 @@ void MainWindow::addAddressSection() {
auto addressBook1 = new QPushButton(verticalGroupBox);
addressBook1->setObjectName(QStringLiteral("AddressBook") % QString::number(itemNumber));
- addressBook1->setText("Address Book");
+ addressBook1->setText(tr("Address Book"));
QObject::connect(addressBook1, &QPushButton::clicked, [=] () {
AddressBook::open(this, Address1);
});
@@ -182,11 +182,11 @@ void MainWindow::addAddressSection() {
horizontalLayout_13->setSpacing(6);
auto label_6 = new QLabel(verticalGroupBox);
- label_6->setText("Amount");
+ label_6->setText(tr("Amount"));
horizontalLayout_13->addWidget(label_6);
auto Amount1 = new QLineEdit(verticalGroupBox);
- Amount1->setPlaceholderText("Amount");
+ Amount1->setPlaceholderText(tr("Amount"));
Amount1->setObjectName(QString("Amount") % QString::number(itemNumber));
Amount1->setBaseSize(QSize(200, 0));
// Create the validator for send to/amount fields
@@ -207,7 +207,7 @@ void MainWindow::addAddressSection() {
auto MemoBtn1 = new QPushButton(verticalGroupBox);
MemoBtn1->setObjectName(QString("MemoBtn") % QString::number(itemNumber));
- MemoBtn1->setText("Memo");
+ MemoBtn1->setText(tr("Memo"));
// Connect Memo Clicked button
QObject::connect(MemoBtn1, &QPushButton::clicked, [=] () {
this->memoButtonClicked(itemNumber);
@@ -251,7 +251,7 @@ void MainWindow::setMemoEnabled(int number, bool enabled) {
memoBtn->setToolTip("");
} else {
memoBtn->setEnabled(false);
- memoBtn->setToolTip("Only z-addresses can have memos");
+ memoBtn->setToolTip(tr("Only z-addresses can have memos"));
}
}
@@ -259,8 +259,8 @@ void MainWindow::memoButtonClicked(int number) {
// Memos can only be used with zAddrs. So check that first
auto addr = ui->sendToWidgets->findChild(QString("Address") + QString::number(number));
if (!AddressBook::addressFromAddressLabel(addr->text()).startsWith("z")) {
- QMessageBox msg(QMessageBox::Critical, "Memos can only be used with z-addresses",
- "The memo field can only be used with a z-address.\n" + addr->text() + "\ndoesn't look like a z-address",
+ QMessageBox msg(QMessageBox::Critical, tr("Memos can only be used with z-addresses"),
+ tr("The memo field can only be used with a z-address.\n") + addr->text() + tr("\ndoesn't look like a z-address"),
QMessageBox::Ok, this);
msg.exec();
@@ -414,7 +414,7 @@ Tx MainWindow::createTxFromSendPage() {
double change = rpc->getAllBalances()->value(tx.fromAddr) - totalAmt - tx.fee;
if (Settings::getDecimalString(change) != "0") {
- QString changeMemo = "Change from " + tx.fromAddr;
+ QString changeMemo = tr("Change from ") + tx.fromAddr;
tx.toAddrs.push_back(ToFields{ *saplingAddr, change, changeMemo, changeMemo.toUtf8().toHex() });
}
}
@@ -517,7 +517,7 @@ bool MainWindow::confirmTx(Tx tx) {
auto labelMinerFee = new QLabel(confirm.sendToAddrs);
labelMinerFee->setObjectName(QStringLiteral("labelMinerFee"));
confirm.gridLayout->addWidget(labelMinerFee, row, 0, 1, 1);
- labelMinerFee->setText("Miner Fee");
+ labelMinerFee->setText(tr("Miner Fee"));
auto minerFee = new QLabel(confirm.sendToAddrs);
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
@@ -566,7 +566,7 @@ void MainWindow::sendButton() {
QString error = doSendTxValidations(tx);
if (!error.isEmpty()) {
// Something went wrong, so show an error and exit
- QMessageBox msg(QMessageBox::Critical, "Transaction Error", error,
+ QMessageBox msg(QMessageBox::Critical, tr("Transaction Error"), error,
QMessageBox::Ok, this);
msg.exec();
@@ -593,12 +593,12 @@ void MainWindow::sendButton() {
}
QString MainWindow::doSendTxValidations(Tx tx) {
- if (!Settings::isValidAddress(tx.fromAddr)) return QString("From Address is Invalid");
+ if (!Settings::isValidAddress(tx.fromAddr)) return QString(tr("From Address is Invalid"));
for (auto toAddr : tx.toAddrs) {
if (!Settings::isValidAddress(toAddr.addr)) {
QString addr = (toAddr.addr.length() > 100 ? toAddr.addr.left(100) + "..." : toAddr.addr);
- return QString("Recipient Address ") % addr % " is Invalid";
+ return QString(tr("Recipient Address ")) % addr % tr(" is Invalid");
}
}
diff --git a/zec-qt-wallet.pro b/zec-qt-wallet.pro
index dde32bf..deadd17 100644
--- a/zec-qt-wallet.pro
+++ b/zec-qt-wallet.pro
@@ -86,9 +86,15 @@ FORMS += \
src/zboard.ui \
src/addressbook.ui
+
+TRANSLATIONS = res/zec_qt_wallet_es.ts \
+ res/zec_qt_wallet_fr.ts \
+ res/zec_qt_wallet_de.ts
+
win32: RC_ICONS = res/icon.ico
ICON = res/logo.icns
+
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin