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 &quot;zc&quot;) need to be moved to the upgraded Sapling z-Addresses (which start with &quot;zs&quot;). The funds cannot be moved directly, but need to be sent through intermediate &quot;transparent&quot; 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 &quot;zc&quot;) need to be moved to the upgraded Sapling z-Addresses (which start with &quot;zs&quot;). The funds cannot be moved directly, but need to be sent through intermediate &quot;transparent&quot; 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 &quot;zc&quot;) need to be moved to the upgraded Sapling z-Addresses (which start with &quot;zs&quot;). The funds cannot be moved directly, but need to be sent through intermediate &quot;transparent&quot; 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