Internationalization -- initial step, make _ return a std::string to prevent memory...
authorWladimir J. van der Laan <laanwj@gmail.com>
Mon, 13 Jun 2011 14:56:37 +0000 (16:56 +0200)
committerWladimir J. van der Laan <laanwj@gmail.com>
Mon, 13 Jun 2011 14:56:37 +0000 (16:56 +0200)
src/externui.h
src/qt/bitcoin.cpp
src/qt/transactiondesc.cpp
src/rpc.cpp
src/util.cpp
src/util.h

index e58ccc2..3243164 100644 (file)
@@ -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
index e003267..a71c348 100644 (file)
@@ -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);
index 4d8a55e..a9e55d5 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "guiutil.h"
 #include "main.h"
+#include "externui.h"
 
 #include <QString>
 
index 530bef4..ca88bec 100644 (file)
@@ -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)
     {
index 6199109..fd4a9e4 100644 (file)
@@ -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)
     {
index 25e1f77..4759e8c 100644 (file)
@@ -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);