rpc: Don't translate warning messages

But keep translating them in the GUI.
This - necessarily - requires duplication of a few messages.
Alternative take on #7134, that keeps the translations from being wiped.

Also document GetWarnings() input argument.

Fixes #5895.
This commit is contained in:
Wladimir J. van der Laan 2015-12-01 09:47:13 +01:00
parent 30c2d8c635
commit aabc897801
3 changed files with 23 additions and 10 deletions

View file

@ -3979,29 +3979,34 @@ std::string GetWarnings(const std::string& strFor)
int nPriority = 0; int nPriority = 0;
string strStatusBar; string strStatusBar;
string strRPC; string strRPC;
string strGUI;
if (!CLIENT_VERSION_IS_RELEASE) if (!CLIENT_VERSION_IS_RELEASE) {
strStatusBar = _("This is a pre-release test build - use at your own risk - do not use for mining or merchant applications"); strStatusBar = "This is a pre-release test build - use at your own risk - do not use for mining or merchant applications";
strGUI = _("This is a pre-release test build - use at your own risk - do not use for mining or merchant applications");
}
if (GetBoolArg("-testsafemode", DEFAULT_TESTSAFEMODE)) if (GetBoolArg("-testsafemode", DEFAULT_TESTSAFEMODE))
strStatusBar = strRPC = "testsafemode enabled"; strStatusBar = strRPC = strGUI = "testsafemode enabled";
// Misc warnings like out of disk space and clock is wrong // Misc warnings like out of disk space and clock is wrong
if (strMiscWarning != "") if (strMiscWarning != "")
{ {
nPriority = 1000; nPriority = 1000;
strStatusBar = strMiscWarning; strStatusBar = strGUI = strMiscWarning;
} }
if (fLargeWorkForkFound) if (fLargeWorkForkFound)
{ {
nPriority = 2000; nPriority = 2000;
strStatusBar = strRPC = _("Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues."); strStatusBar = strRPC = "Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.";
strGUI = _("Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues.");
} }
else if (fLargeWorkInvalidChainFound) else if (fLargeWorkInvalidChainFound)
{ {
nPriority = 2000; nPriority = 2000;
strStatusBar = strRPC = _("Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade."); strStatusBar = strRPC = "Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.";
strGUI = _("Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade.");
} }
// Alerts // Alerts
@ -4013,12 +4018,14 @@ std::string GetWarnings(const std::string& strFor)
if (alert.AppliesToMe() && alert.nPriority > nPriority) if (alert.AppliesToMe() && alert.nPriority > nPriority)
{ {
nPriority = alert.nPriority; nPriority = alert.nPriority;
strStatusBar = alert.strStatusBar; strStatusBar = strGUI = alert.strStatusBar;
} }
} }
} }
if (strFor == "statusbar") if (strFor == "gui")
return strGUI;
else if (strFor == "statusbar")
return strStatusBar; return strStatusBar;
else if (strFor == "rpc") else if (strFor == "rpc")
return strRPC; return strRPC;

View file

@ -206,7 +206,13 @@ void ThreadScriptCheck();
void PartitionCheck(bool (*initialDownloadCheck)(), CCriticalSection& cs, const CBlockIndex *const &bestHeader, int64_t nPowTargetSpacing); void PartitionCheck(bool (*initialDownloadCheck)(), CCriticalSection& cs, const CBlockIndex *const &bestHeader, int64_t nPowTargetSpacing);
/** Check whether we are doing an initial block download (synchronizing from disk or network) */ /** Check whether we are doing an initial block download (synchronizing from disk or network) */
bool IsInitialBlockDownload(); bool IsInitialBlockDownload();
/** Format a string that describes several potential problems detected by the core */ /** Format a string that describes several potential problems detected by the core.
* strFor can have three values:
* - "rpc": get critical warnings, which should put the client in safe mode if non-empty
* - "statusbar": get all warnings
* - "gui": get all warnings, translated (where possible) for GUI
* This function only returns the highest priority warning of the set selected by strFor.
*/
std::string GetWarnings(const std::string& strFor); std::string GetWarnings(const std::string& strFor);
/** Retrieve a transaction (from memory pool, or from disk, if possible) */ /** Retrieve a transaction (from memory pool, or from disk, if possible) */
bool GetTransaction(const uint256 &hash, CTransaction &tx, const Consensus::Params& params, uint256 &hashBlock, bool fAllowSlow = false); bool GetTransaction(const uint256 &hash, CTransaction &tx, const Consensus::Params& params, uint256 &hashBlock, bool fAllowSlow = false);

View file

@ -158,7 +158,7 @@ enum BlockSource ClientModel::getBlockSource() const
QString ClientModel::getStatusBarWarnings() const QString ClientModel::getStatusBarWarnings() const
{ {
return QString::fromStdString(GetWarnings("statusbar")); return QString::fromStdString(GetWarnings("gui"));
} }
OptionsModel *ClientModel::getOptionsModel() OptionsModel *ClientModel::getOptionsModel()