aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2011-06-13 16:56:37 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2011-06-13 16:56:37 +0200
commit39cf857db9b926c47f545cba1d7113267260c40e (patch)
tree8aa3a7fbfa8079e7837650c8c3f0e9032ba87df4
parente83474f2ebbae84394f0b86cfea977d3024bd33f (diff)
Internationalization -- initial step, make _ return a std::string to prevent memory leaks
-rw-r--r--src/externui.h1
-rw-r--r--src/qt/bitcoin.cpp8
-rw-r--r--src/qt/transactiondesc.cpp1
-rw-r--r--src/rpc.cpp4
-rw-r--r--src/util.cpp10
-rw-r--r--src/util.h8
6 files changed, 20 insertions, 12 deletions
diff --git a/src/externui.h b/src/externui.h
index e58ccc2242..3243164c10 100644
--- a/src/externui.h
+++ b/src/externui.h
@@ -41,5 +41,6 @@ extern bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption,
extern void CalledSetStatusBar(const std::string& strText, int nField);
extern void UIThreadCall(boost::function0<void> fn);
extern void MainFrameRepaint();
+extern std::string _(const char* psz);
#endif
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index e003267426..a71c348254 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -87,6 +87,14 @@ void MainFrameRepaint()
{
}
+/*
+ Translate string to current locale using Qt.
+ */
+std::string _(const char* psz)
+{
+ return QCoreApplication::translate("bitcoin-core", psz).toStdString();
+}
+
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp
index 4d8a55e99a..a9e55d5a6a 100644
--- a/src/qt/transactiondesc.cpp
+++ b/src/qt/transactiondesc.cpp
@@ -2,6 +2,7 @@
#include "guiutil.h"
#include "main.h"
+#include "externui.h"
#include <QString>
diff --git a/src/rpc.cpp b/src/rpc.cpp
index 530bef4a43..ca88bec91b 100644
--- a/src/rpc.cpp
+++ b/src/rpc.cpp
@@ -40,13 +40,13 @@ Object JSONRPCError(int code, const string& message)
}
-void PrintConsole(const char* format, ...)
+void PrintConsole(const std::string &format, ...)
{
char buffer[50000];
int limit = sizeof(buffer);
va_list arg_ptr;
va_start(arg_ptr, format);
- int ret = _vsnprintf(buffer, limit, format, arg_ptr);
+ int ret = _vsnprintf(buffer, limit, format.c_str(), arg_ptr);
va_end(arg_ptr);
if (ret < 0 || ret >= limit)
{
diff --git a/src/util.cpp b/src/util.cpp
index 6199109289..fd4a9e459c 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -255,8 +255,7 @@ int my_snprintf(char* buffer, size_t limit, const char* format, ...)
return ret;
}
-
-string strprintf(const char* format, ...)
+string strprintf(const std::string &format, ...)
{
char buffer[50000];
char* p = buffer;
@@ -266,7 +265,7 @@ string strprintf(const char* format, ...)
{
va_list arg_ptr;
va_start(arg_ptr, format);
- ret = _vsnprintf(p, limit, format, arg_ptr);
+ ret = _vsnprintf(p, limit, format.c_str(), arg_ptr);
va_end(arg_ptr);
if (ret >= 0 && ret < limit)
break;
@@ -283,14 +282,13 @@ string strprintf(const char* format, ...)
return str;
}
-
-bool error(const char* format, ...)
+bool error(const std::string &format, ...)
{
char buffer[50000];
int limit = sizeof(buffer);
va_list arg_ptr;
va_start(arg_ptr, format);
- int ret = _vsnprintf(buffer, limit, format, arg_ptr);
+ int ret = _vsnprintf(buffer, limit, format.c_str(), arg_ptr);
va_end(arg_ptr);
if (ret < 0 || ret >= limit)
{
diff --git a/src/util.h b/src/util.h
index 25e1f77fd7..4759e8c1ce 100644
--- a/src/util.h
+++ b/src/util.h
@@ -140,14 +140,14 @@ inline int myclosesocket(SOCKET& hSocket)
return ret;
}
#define closesocket(s) myclosesocket(s)
-
+#if 0
#ifndef GUI
inline const char* _(const char* psz)
{
return psz;
}
#endif
-
+#endif
@@ -177,8 +177,8 @@ void RandAddSeed();
void RandAddSeedPerfmon();
int OutputDebugStringF(const char* pszFormat, ...);
int my_snprintf(char* buffer, size_t limit, const char* format, ...);
-std::string strprintf(const char* format, ...);
-bool error(const char* format, ...);
+std::string strprintf(const std::string &format, ...);
+bool error(const std::string &format, ...);
void LogException(std::exception* pex, const char* pszThread);
void PrintException(std::exception* pex, const char* pszThread);
void PrintExceptionContinue(std::exception* pex, const char* pszThread);