Implement new shot name generation using a persistent index.
[neverball] / share / lang.c
index 03aaf7c..48a13ae 100644 (file)
  */
 
 #include <string.h>
-#include <stdlib.h>
 #include <locale.h>
+#include <stdlib.h>
+#include <stdio.h>
 
 #include "lang.h"
 
 /*---------------------------------------------------------------------------*/
 
+#define DEFAULT_CODESET "UTF-8"
+
+/*---------------------------------------------------------------------------*/
+
 void lang_init(const char *domain, const char *default_dir)
 {
+#if ENABLE_NLS
     char *dir = getenv("NEVERBALL_LOCALE");
 
     setlocale(LC_ALL, "");
+    setlocale(LC_NUMERIC, "C");
 
     bindtextdomain(domain, dir ? dir : default_dir);
-    bind_textdomain_codeset(domain, "UTF-8");
+    bind_textdomain_codeset(domain, DEFAULT_CODESET);
     textdomain(domain);
+#else
+    return;
+#endif
 }
 
 const char *sgettext(const char *msgid)
 {
+#if ENABLE_NLS
     const char *msgval = gettext(msgid);
+#else
+    const char *msgval = msgid;
+#endif
 
     if (msgval == msgid)
     {
@@ -45,4 +59,19 @@ const char *sgettext(const char *msgid)
     return msgval;
 }
 
+const char *get_local_text(const char *msgid)
+{
+#if ENABLE_NLS
+    char *msgstr, *domain = textdomain(NULL);
+
+    bind_textdomain_codeset(domain, "");
+    msgstr = gettext(msgid);
+    bind_textdomain_codeset(domain, DEFAULT_CODESET);
+
+    return msgstr;
+#else
+    return msgid;
+#endif
+}
+
 /*---------------------------------------------------------------------------*/