From fb61301d037660e7ff56caa1d49dd2c7c959b15d Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Mon, 22 Feb 2016 16:51:16 +0300
Subject: Add support for warn_missing_translation configuration option.

---
 src/Makefile.am   |  2 ++
 src/emap/config.c | 25 +++++++++++++++++++++++++
 src/emap/config.h | 10 ++++++++++
 src/emap/init.c   |  2 ++
 src/emap/lang.c   |  3 ++-
 5 files changed, 41 insertions(+), 1 deletion(-)
 create mode 100644 src/emap/config.c
 create mode 100644 src/emap/config.h

diff --git a/src/Makefile.am b/src/Makefile.am
index c32927f..b7278ac 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -36,6 +36,8 @@ MAP_SRC = emap/atcommand.c \
     emap/battleground.h \
     emap/clif.c \
     emap/clif.h \
+    emap/config.c \
+    emap/config.h \
     emap/craft.c \
     emap/craft.h \
     emap/craftconf.c \
diff --git a/src/emap/config.c b/src/emap/config.c
new file mode 100644
index 0000000..f6c43ee
--- /dev/null
+++ b/src/emap/config.c
@@ -0,0 +1,25 @@
+// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// Copyright (c) 2014 - 2015 Evol developers
+
+#include "common/hercules.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "common/HPMi.h"
+#include "common/memmgr.h"
+#include "common/mapindex.h"
+#include "common/mmo.h"
+#include "common/socket.h"
+#include "common/strlib.h"
+
+#include "ecommon/config.h"
+
+bool warn_missing_translation = false;
+
+void config_warn_missing_translation(const char *key __attribute__ ((unused)),
+                                     const char *val)
+{
+    warn_missing_translation = config_switch(val) ? true : false;
+}
diff --git a/src/emap/config.h b/src/emap/config.h
new file mode 100644
index 0000000..27117b5
--- /dev/null
+++ b/src/emap/config.h
@@ -0,0 +1,10 @@
+// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// Copyright (c) 2014 - 2015 Evol developers
+
+#ifndef EVOL_MAP_CONFIG
+#define EVOL_MAP_CONFIG
+
+void config_warn_missing_translation(const char *key, const char *val);
+extern bool warn_missing_translation;
+
+#endif  // EVOL_MAP_CONFIG
diff --git a/src/emap/init.c b/src/emap/init.c
index 9a5ca02..5e9deef 100644
--- a/src/emap/init.c
+++ b/src/emap/init.c
@@ -46,6 +46,7 @@
 #include "emap/atcommand.h"
 #include "emap/battleground.h"
 #include "emap/clif.h"
+#include "emap/config.h"
 #include "emap/craft.h"
 #include "emap/craftconf.h"
 #include "emap/itemdb.h"
@@ -268,6 +269,7 @@ HPExport void server_preinit (void)
     addMapInterConf("default_map", config_default_map);
     addMapInterConf("default_x", config_default_x);
     addMapInterConf("default_y", config_default_y);
+    addMapInterConf("warn_missing_translation", config_warn_missing_translation);
 
     addHookPre("quest->read_db_sub", equest_read_db_sub);
     addGroupPermission("send_gm", permission_send_gm_flag);
diff --git a/src/emap/lang.c b/src/emap/lang.c
index e50b50f..60259da 100644
--- a/src/emap/lang.c
+++ b/src/emap/lang.c
@@ -15,6 +15,7 @@
 #include "map/npc.h"
 #include "map/pc.h"
 
+#include "emap/config.h"
 #include "emap/lang.h"
 #include "emap/data/session.h"
 #include "emap/struct/sessionext.h"
@@ -175,7 +176,7 @@ const char* lang_trans(const char *str, int lng, int flg)
 
     if (!strings[lng])
     {
-        if (flg)
+        if (warn_missing_translation && flg)
             printf ("no lang string (%s) for: %s\n", lang_langs[lng], str);
         return str;
     }
-- 
cgit v1.2.3-70-g09d2