Merge pull request #4505

977df631 Fix some calls to the translation function (Guillaume LE VAILLANT)
This commit is contained in:
Riccardo Spagni 2018-10-07 18:57:26 +02:00
commit 757704f0c7
No known key found for this signature in database
GPG key ID: 55432DF31CCD4FCD
4 changed files with 3624 additions and 2623 deletions

View file

@ -104,7 +104,7 @@ static bool generate_multisig(uint32_t threshold, uint32_t total, const std::str
wallets[n]->decrypt_keys(pwd_container->password()); wallets[n]->decrypt_keys(pwd_container->password());
if (!tools::wallet2::verify_multisig_info(wallets[n]->get_multisig_info(), sk[n], pk[n])) if (!tools::wallet2::verify_multisig_info(wallets[n]->get_multisig_info(), sk[n], pk[n]))
{ {
tools::fail_msg_writer() << tr("Failed to verify multisig info"); tools::fail_msg_writer() << genms::tr("Failed to verify multisig info");
return false; return false;
} }
wallets[n]->encrypt_keys(pwd_container->password()); wallets[n]->encrypt_keys(pwd_container->password());

View file

@ -180,14 +180,14 @@ namespace
auto pwd_container = tools::password_container::prompt(verify, prompt); auto pwd_container = tools::password_container::prompt(verify, prompt);
if (!pwd_container) if (!pwd_container)
{ {
tools::fail_msg_writer() << tr("failed to read wallet password"); tools::fail_msg_writer() << sw::tr("failed to read wallet password");
} }
return pwd_container; return pwd_container;
} }
boost::optional<tools::password_container> default_password_prompter(bool verify) boost::optional<tools::password_container> default_password_prompter(bool verify)
{ {
return password_prompter(verify ? tr("Enter a new password for the wallet") : tr("Wallet password"), verify); return password_prompter(verify ? sw::tr("Enter a new password for the wallet") : sw::tr("Wallet password"), verify);
} }
inline std::string interpret_rpc_response(bool ok, const std::string& status) inline std::string interpret_rpc_response(bool ok, const std::string& status)
@ -265,7 +265,7 @@ namespace
} }
else else
{ {
fail_msg_writer() << tr("invalid argument: must be either 0/1, true/false, y/n, yes/no"); fail_msg_writer() << sw::tr("invalid argument: must be either 0/1, true/false, y/n, yes/no");
return false; return false;
} }
} }
@ -321,18 +321,18 @@ namespace
std::string dnssec_str; std::string dnssec_str;
if (dnssec_valid) if (dnssec_valid)
{ {
dnssec_str = tr("DNSSEC validation passed"); dnssec_str = sw::tr("DNSSEC validation passed");
} }
else else
{ {
dnssec_str = tr("WARNING: DNSSEC validation was unsuccessful, this address may not be correct!"); dnssec_str = sw::tr("WARNING: DNSSEC validation was unsuccessful, this address may not be correct!");
} }
std::stringstream prompt; std::stringstream prompt;
prompt << tr("For URL: ") << url prompt << sw::tr("For URL: ") << url
<< ", " << dnssec_str << std::endl << ", " << dnssec_str << std::endl
<< tr(" Monero Address = ") << addresses[0] << sw::tr(" Monero Address = ") << addresses[0]
<< std::endl << std::endl
<< tr("Is this OK? (Y/n) ") << sw::tr("Is this OK? (Y/n) ")
; ;
// prompt the user for confirmation given the dns query and dnssec status // prompt the user for confirmation given the dns query and dnssec status
std::string confirm_dns_ok = input_line(prompt.str()); std::string confirm_dns_ok = input_line(prompt.str());
@ -342,7 +342,7 @@ namespace
} }
if (!command_line::is_yes(confirm_dns_ok)) if (!command_line::is_yes(confirm_dns_ok))
{ {
std::cout << tr("you have cancelled the transfer request") << std::endl; std::cout << sw::tr("you have cancelled the transfer request") << std::endl;
return {}; return {};
} }
return addresses[0]; return addresses[0];
@ -363,7 +363,7 @@ namespace
uint32_t subaddr_index; uint32_t subaddr_index;
if(!epee::string_tools::get_xtype_from_string(subaddr_index, subaddr_index_str)) if(!epee::string_tools::get_xtype_from_string(subaddr_index, subaddr_index_str))
{ {
fail_msg_writer() << tr("failed to parse index: ") << subaddr_index_str; fail_msg_writer() << sw::tr("failed to parse index: ") << subaddr_index_str;
subaddr_indices.clear(); subaddr_indices.clear();
return false; return false;
} }
@ -376,7 +376,7 @@ namespace
{ {
auto r = tools::parse_subaddress_lookahead(str); auto r = tools::parse_subaddress_lookahead(str);
if (!r) if (!r)
fail_msg_writer() << tr("invalid format for subaddress lookahead; must be <major>:<minor>"); fail_msg_writer() << sw::tr("invalid format for subaddress lookahead; must be <major>:<minor>");
return r; return r;
} }
@ -389,27 +389,27 @@ namespace
} }
catch (const tools::error::daemon_busy&) catch (const tools::error::daemon_busy&)
{ {
fail_msg_writer() << tr("daemon is busy. Please try again later."); fail_msg_writer() << sw::tr("daemon is busy. Please try again later.");
} }
catch (const tools::error::no_connection_to_daemon&) catch (const tools::error::no_connection_to_daemon&)
{ {
fail_msg_writer() << tr("no connection to daemon. Please make sure daemon is running."); fail_msg_writer() << sw::tr("no connection to daemon. Please make sure daemon is running.");
} }
catch (const tools::error::wallet_rpc_error& e) catch (const tools::error::wallet_rpc_error& e)
{ {
LOG_ERROR("RPC error: " << e.to_string()); LOG_ERROR("RPC error: " << e.to_string());
fail_msg_writer() << tr("RPC error: ") << e.what(); fail_msg_writer() << sw::tr("RPC error: ") << e.what();
} }
catch (const tools::error::get_outs_error &e) catch (const tools::error::get_outs_error &e)
{ {
fail_msg_writer() << tr("failed to get random outputs to mix: ") << e.what(); fail_msg_writer() << sw::tr("failed to get random outputs to mix: ") << e.what();
} }
catch (const tools::error::not_enough_unlocked_money& e) catch (const tools::error::not_enough_unlocked_money& e)
{ {
LOG_PRINT_L0(boost::format("not enough money to transfer, available only %s, sent amount %s") % LOG_PRINT_L0(boost::format("not enough money to transfer, available only %s, sent amount %s") %
print_money(e.available()) % print_money(e.available()) %
print_money(e.tx_amount())); print_money(e.tx_amount()));
fail_msg_writer() << tr("Not enough money in unlocked balance"); fail_msg_writer() << sw::tr("Not enough money in unlocked balance");
warn_of_possible_attack = false; warn_of_possible_attack = false;
} }
catch (const tools::error::not_enough_money& e) catch (const tools::error::not_enough_money& e)
@ -417,7 +417,7 @@ namespace
LOG_PRINT_L0(boost::format("not enough money to transfer, available only %s, sent amount %s") % LOG_PRINT_L0(boost::format("not enough money to transfer, available only %s, sent amount %s") %
print_money(e.available()) % print_money(e.available()) %
print_money(e.tx_amount())); print_money(e.tx_amount()));
fail_msg_writer() << tr("Not enough money in unlocked balance"); fail_msg_writer() << sw::tr("Not enough money in unlocked balance");
warn_of_possible_attack = false; warn_of_possible_attack = false;
} }
catch (const tools::error::tx_not_possible& e) catch (const tools::error::tx_not_possible& e)
@ -427,30 +427,30 @@ namespace
print_money(e.tx_amount() + e.fee()) % print_money(e.tx_amount() + e.fee()) %
print_money(e.tx_amount()) % print_money(e.tx_amount()) %
print_money(e.fee())); print_money(e.fee()));
fail_msg_writer() << tr("Failed to find a way to create transactions. This is usually due to dust which is so small it cannot pay for itself in fees, or trying to send more money than the unlocked balance, or not leaving enough for fees"); fail_msg_writer() << sw::tr("Failed to find a way to create transactions. This is usually due to dust which is so small it cannot pay for itself in fees, or trying to send more money than the unlocked balance, or not leaving enough for fees");
warn_of_possible_attack = false; warn_of_possible_attack = false;
} }
catch (const tools::error::not_enough_outs_to_mix& e) catch (const tools::error::not_enough_outs_to_mix& e)
{ {
auto writer = fail_msg_writer(); auto writer = fail_msg_writer();
writer << tr("not enough outputs for specified ring size") << " = " << (e.mixin_count() + 1) << ":"; writer << sw::tr("not enough outputs for specified ring size") << " = " << (e.mixin_count() + 1) << ":";
for (std::pair<uint64_t, uint64_t> outs_for_amount : e.scanty_outs()) for (std::pair<uint64_t, uint64_t> outs_for_amount : e.scanty_outs())
{ {
writer << "\n" << tr("output amount") << " = " << print_money(outs_for_amount.first) << ", " << tr("found outputs to use") << " = " << outs_for_amount.second; writer << "\n" << sw::tr("output amount") << " = " << print_money(outs_for_amount.first) << ", " << sw::tr("found outputs to use") << " = " << outs_for_amount.second;
} }
writer << tr("Please use sweep_unmixable."); writer << sw::tr("Please use sweep_unmixable.");
} }
catch (const tools::error::tx_not_constructed&) catch (const tools::error::tx_not_constructed&)
{ {
fail_msg_writer() << tr("transaction was not constructed"); fail_msg_writer() << sw::tr("transaction was not constructed");
warn_of_possible_attack = false; warn_of_possible_attack = false;
} }
catch (const tools::error::tx_rejected& e) catch (const tools::error::tx_rejected& e)
{ {
fail_msg_writer() << (boost::format(tr("transaction %s was rejected by daemon with status: ")) % get_transaction_hash(e.tx())) << e.status(); fail_msg_writer() << (boost::format(sw::tr("transaction %s was rejected by daemon with status: ")) % get_transaction_hash(e.tx())) << e.status();
std::string reason = e.reason(); std::string reason = e.reason();
if (!reason.empty()) if (!reason.empty())
fail_msg_writer() << tr("Reason: ") << reason; fail_msg_writer() << sw::tr("Reason: ") << reason;
} }
catch (const tools::error::tx_sum_overflow& e) catch (const tools::error::tx_sum_overflow& e)
{ {
@ -459,38 +459,38 @@ namespace
} }
catch (const tools::error::zero_destination&) catch (const tools::error::zero_destination&)
{ {
fail_msg_writer() << tr("one of destinations is zero"); fail_msg_writer() << sw::tr("one of destinations is zero");
warn_of_possible_attack = false; warn_of_possible_attack = false;
} }
catch (const tools::error::tx_too_big& e) catch (const tools::error::tx_too_big& e)
{ {
fail_msg_writer() << tr("failed to find a suitable way to split transactions"); fail_msg_writer() << sw::tr("failed to find a suitable way to split transactions");
warn_of_possible_attack = false; warn_of_possible_attack = false;
} }
catch (const tools::error::transfer_error& e) catch (const tools::error::transfer_error& e)
{ {
LOG_ERROR("unknown transfer error: " << e.to_string()); LOG_ERROR("unknown transfer error: " << e.to_string());
fail_msg_writer() << tr("unknown transfer error: ") << e.what(); fail_msg_writer() << sw::tr("unknown transfer error: ") << e.what();
} }
catch (const tools::error::multisig_export_needed& e) catch (const tools::error::multisig_export_needed& e)
{ {
LOG_ERROR("Multisig error: " << e.to_string()); LOG_ERROR("Multisig error: " << e.to_string());
fail_msg_writer() << tr("Multisig error: ") << e.what(); fail_msg_writer() << sw::tr("Multisig error: ") << e.what();
warn_of_possible_attack = false; warn_of_possible_attack = false;
} }
catch (const tools::error::wallet_internal_error& e) catch (const tools::error::wallet_internal_error& e)
{ {
LOG_ERROR("internal error: " << e.to_string()); LOG_ERROR("internal error: " << e.to_string());
fail_msg_writer() << tr("internal error: ") << e.what(); fail_msg_writer() << sw::tr("internal error: ") << e.what();
} }
catch (const std::exception& e) catch (const std::exception& e)
{ {
LOG_ERROR("unexpected error: " << e.what()); LOG_ERROR("unexpected error: " << e.what());
fail_msg_writer() << tr("unexpected error: ") << e.what(); fail_msg_writer() << sw::tr("unexpected error: ") << e.what();
} }
if (warn_of_possible_attack) if (warn_of_possible_attack)
fail_msg_writer() << tr("There was an error, which could mean the node may be trying to get you to retry creating a transaction, and zero in on which outputs you own. Or it could be a bona fide error. It may be prudent to disconnect from this node, and not try to send a transaction immediately. Alternatively, connect to another node so the original node cannot correlate information."); fail_msg_writer() << sw::tr("There was an error, which could mean the node may be trying to get you to retry creating a transaction, and zero in on which outputs you own. Or it could be a bona fide error. It may be prudent to disconnect from this node, and not try to send a transaction immediately. Alternatively, connect to another node so the original node cannot correlate information.");
} }
bool check_file_overwrite(const std::string &filename) bool check_file_overwrite(const std::string &filename)
@ -500,10 +500,10 @@ namespace
{ {
if (boost::ends_with(filename, ".keys")) if (boost::ends_with(filename, ".keys"))
{ {
fail_msg_writer() << boost::format(tr("File %s likely stores wallet private keys! Use a different file name.")) % filename; fail_msg_writer() << boost::format(sw::tr("File %s likely stores wallet private keys! Use a different file name.")) % filename;
return false; return false;
} }
return command_line::is_yes(input_line((boost::format(tr("File %s already exists. Are you sure to overwrite it? (Y/Yes/N/No): ")) % filename).str())); return command_line::is_yes(input_line((boost::format(sw::tr("File %s already exists. Are you sure to overwrite it? (Y/Yes/N/No): ")) % filename).str()));
} }
return true; return true;
} }
@ -6577,16 +6577,16 @@ static std::string get_human_readable_timespan(std::chrono::seconds seconds)
{ {
uint64_t ts = seconds.count(); uint64_t ts = seconds.count();
if (ts < 60) if (ts < 60)
return std::to_string(ts) + tr(" seconds"); return std::to_string(ts) + sw::tr(" seconds");
if (ts < 3600) if (ts < 3600)
return std::to_string((uint64_t)(ts / 60)) + tr(" minutes"); return std::to_string((uint64_t)(ts / 60)) + sw::tr(" minutes");
if (ts < 3600 * 24) if (ts < 3600 * 24)
return std::to_string((uint64_t)(ts / 3600)) + tr(" hours"); return std::to_string((uint64_t)(ts / 3600)) + sw::tr(" hours");
if (ts < 3600 * 24 * 30.5) if (ts < 3600 * 24 * 30.5)
return std::to_string((uint64_t)(ts / (3600 * 24))) + tr(" days"); return std::to_string((uint64_t)(ts / (3600 * 24))) + sw::tr(" days");
if (ts < 3600 * 24 * 365.25) if (ts < 3600 * 24 * 365.25)
return std::to_string((uint64_t)(ts / (3600 * 24 * 30.5))) + tr(" months"); return std::to_string((uint64_t)(ts / (3600 * 24 * 30.5))) + sw::tr(" months");
return tr("a long time"); return sw::tr("a long time");
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
bool simple_wallet::show_transfers(const std::vector<std::string> &args_) bool simple_wallet::show_transfers(const std::vector<std::string> &args_)
@ -8096,7 +8096,7 @@ int main(int argc, char* argv[])
if (!command.empty()) if (!command.empty())
{ {
if (!w.process_command(command)) if (!w.process_command(command))
fail_msg_writer() << tr("Unknown command: ") << command.front(); fail_msg_writer() << sw::tr("Unknown command: ") << command.front();
w.stop(); w.stop();
w.deinit(); w.deinit();
} }

View file

@ -258,7 +258,7 @@ std::unique_ptr<tools::wallet2> make_basic(const boost::program_options::variabl
trusted_daemon = false; trusted_daemon = false;
if (tools::is_local_address(daemon_address)) if (tools::is_local_address(daemon_address))
{ {
MINFO(tr("Daemon is local, assuming trusted")); MINFO(tools::wallet2::tr("Daemon is local, assuming trusted"));
trusted_daemon = true; trusted_daemon = true;
} }
} }
@ -310,7 +310,7 @@ boost::optional<tools::password_container> get_password(const boost::program_opt
THROW_WALLET_EXCEPTION_IF(!password_prompter, tools::error::wallet_internal_error, tools::wallet2::tr("no password specified; use --prompt-for-password to prompt for a password")); THROW_WALLET_EXCEPTION_IF(!password_prompter, tools::error::wallet_internal_error, tools::wallet2::tr("no password specified; use --prompt-for-password to prompt for a password"));
return password_prompter(verify ? tr("Enter a new password for the wallet") : tr("Wallet password"), verify); return password_prompter(verify ? tools::wallet2::tr("Enter a new password for the wallet") : tools::wallet2::tr("Wallet password"), verify);
} }
std::pair<std::unique_ptr<tools::wallet2>, tools::password_container> generate_from_json(const std::string& json_file, const boost::program_options::variables_map& vm, bool unattended, const options& opts, const std::function<boost::optional<tools::password_container>(const char *, bool)> &password_prompter) std::pair<std::unique_ptr<tools::wallet2>, tools::password_container> generate_from_json(const std::string& json_file, const boost::program_options::variables_map& vm, bool unattended, const options& opts, const std::function<boost::optional<tools::password_container>(const char *, bool)> &password_prompter)

File diff suppressed because it is too large Load diff