diff options
Diffstat (limited to 'src/gettext.h')
-rw-r--r-- | src/gettext.h | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/gettext.h b/src/gettext.h index 73b9f8986..0e6ee0fd5 100644 --- a/src/gettext.h +++ b/src/gettext.h @@ -1,4 +1,8 @@ -#ifdef USE_GETTEXT +#ifndef GETTEXT_HEADER +#include "config.h" // for USE_GETTEXT +#include <iostream> + +#if USE_GETTEXT #include <libintl.h> #else #define gettext(String) String @@ -8,6 +12,17 @@ #define gettext_noop(String) String #define N_(String) gettext_noop (String) +inline void init_gettext(const char *path) { +#if USE_GETTEXT + // don't do this if MSVC compiler is used, it gives an assertion fail + #ifndef _MSC_VER + setlocale(LC_MESSAGES, ""); + #endif + bindtextdomain(PROJECT_NAME, path); + textdomain(PROJECT_NAME); +#endif +} + inline wchar_t* chartowchar_t(const char *str) { size_t l = strlen(str)+1; @@ -15,3 +30,20 @@ inline wchar_t* chartowchar_t(const char *str) mbstowcs(nstr, str, l); return nstr; } + +inline wchar_t* wgettext(const char *str) +{ + return chartowchar_t(gettext(str)); +} + +inline void changeCtype(const char *l) +{ + char *ret = NULL; + ret = setlocale(LC_CTYPE, l); + if(ret == NULL) + std::cout<<"locale could not be set"<<std::endl; + else + std::cout<<"locale has been set to:"<<ret<<std::endl; +} +#define GETTEXT_HEADER +#endif |