summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Src/MsgHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/Common/Src/MsgHandler.cpp')
-rw-r--r--Source/Core/Common/Src/MsgHandler.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/Source/Core/Common/Src/MsgHandler.cpp b/Source/Core/Common/Src/MsgHandler.cpp
index 4fb34b6791..d851ec0b74 100644
--- a/Source/Core/Common/Src/MsgHandler.cpp
+++ b/Source/Core/Common/Src/MsgHandler.cpp
@@ -25,15 +25,25 @@ bool DefaultMsgHandler(const char* caption, const char* text, bool yes_no, int S
static MsgAlertHandler msg_handler = DefaultMsgHandler;
static bool AlertEnabled = true;
+const char* DefaultStringTranslator(const char* text);
+static StringTranslator str_translator = DefaultStringTranslator;
+
/* Select which of these functions that are used for message boxes. If
- wxWidgets is enabled we will use wxMsgAlert() that is defined in main.cpp */
+ wxWidgets is enabled we will use wxMsgAlert() that is defined in Main.cpp */
void RegisterMsgAlertHandler(MsgAlertHandler handler)
{
msg_handler = handler;
}
+// Select translation function. For wxWidgets use wxStringTranslator in Main.cpp
+void RegisterStringTranslator(StringTranslator translator)
+{
+ str_translator = translator;
+}
+
// enable/disable the alert handler
-void SetEnableAlert(bool enable) {
+void SetEnableAlert(bool enable)
+{
AlertEnabled = enable;
}
@@ -45,9 +55,11 @@ bool MsgAlert(const char* caption, bool yes_no, int Style, const char* format, .
char buffer[2048];
bool ret = true;
+ const char *tr_format = str_translator(format);
+
va_list args;
va_start(args, format);
- CharArrayFromFormatV(buffer, 2047, format, args);
+ CharArrayFromFormatV(buffer, 2047, tr_format, args);
va_end(args);
ERROR_LOG(MASTER_LOG, "%s: %s", caption, buffer);
@@ -74,3 +86,10 @@ bool DefaultMsgHandler(const char* caption, const char* text, bool yes_no, int S
return true;
#endif
}
+
+// Default (non) translator
+const char* DefaultStringTranslator(const char* text)
+{
+ return text;
+}
+