Refactor gettext init
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sat, 23 Jul 2011 14:38:37 +0000 (16:38 +0200)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sun, 24 Jul 2011 14:52:59 +0000 (16:52 +0200)
Put the gettext init code in a macro and define it appropriately
depending on whether gettext is actually available or not.

src/gettext.h
src/main.cpp

index e74b4eb96a4f28e2898e5b1d7668b222f6c4ffd4..751b83774e49c1791db40d8e1214f53d2c07c1cd 100644 (file)
@@ -1,21 +1,21 @@
-#ifdef GETTEXT_FOUND
-#ifdef USE_GETTEXT
+#if defined(GETTEXT_FOUND) && defined(USE_GETTEXT)
 #include <libintl.h>
 #else
 #define gettext(String) String
-#define bindtextdomain(domain, dir) /* */
-#define textdomain(domain) /* */
-#endif
-#else
-#define gettext(String) String
-#define bindtextdomain(domain, dir) /* */
-#define textdomain(domain) /* */
 #endif
 
 #define _(String) gettext(String)
 #define gettext_noop(String) String
 #define N_(String) gettext_noop (String)
 
+inline void init_gettext(const char *path) {
+#if USE_GETTEXT
+       setlocale(LC_MESSAGES, "");
+       bindtextdomain(PROJECT_NAME, path);
+       textdomain(PROJECT_NAME);
+#endif
+}
+
 inline wchar_t* chartowchar_t(const char *str)
 {
        size_t l = strlen(str)+1;
index 2f48d229f1f755fc252764a745542b77593d8152..bdfbc35f7d5ea6d93314b1f97909228c1a2db227 100644 (file)
@@ -1132,11 +1132,7 @@ int main(int argc, char *argv[])
        // Create user data directory\r
        fs::CreateDir(porting::path_userdata);\r
 \r
-#ifdef LC_MESSAGES\r
-       setlocale(LC_MESSAGES, "");
-       bindtextdomain(PROJECT_NAME, (porting::path_userdata+"/locale").c_str());\r
-       textdomain(PROJECT_NAME);\r
-#endif\r
+       init_gettext((porting::path_userdata+"/locale").c_str());\r
 \r
        // Initialize debug streams\r
 #ifdef RUN_IN_PLACE\r