2011-07-30 05:44:45 -04:00
|
|
|
#ifndef GETTEXT_HEADER
|
2011-07-24 13:13:30 -04:00
|
|
|
#include "config.h" // for USE_GETTEXT
|
2012-03-10 21:15:45 -05:00
|
|
|
#include "log.h"
|
2011-07-24 13:13:30 -04:00
|
|
|
|
2011-07-24 07:58:51 -04:00
|
|
|
#if USE_GETTEXT
|
2011-07-20 10:51:19 -04:00
|
|
|
#include <libintl.h>
|
2011-07-21 01:53:13 -04:00
|
|
|
#else
|
|
|
|
#define gettext(String) String
|
2011-07-23 16:36:11 -04:00
|
|
|
#endif
|
2011-07-21 01:53:13 -04:00
|
|
|
|
2011-07-20 10:51:19 -04:00
|
|
|
#define _(String) gettext(String)
|
|
|
|
#define gettext_noop(String) String
|
|
|
|
#define N_(String) gettext_noop (String)
|
|
|
|
|
2011-07-23 10:38:37 -04:00
|
|
|
inline void init_gettext(const char *path) {
|
|
|
|
#if USE_GETTEXT
|
2011-07-31 08:28:07 -04:00
|
|
|
// don't do this if MSVC compiler is used, it gives an assertion fail
|
|
|
|
#ifndef _MSC_VER
|
2011-07-30 17:05:40 -04:00
|
|
|
setlocale(LC_MESSAGES, "");
|
|
|
|
#endif
|
2011-07-23 10:38:37 -04:00
|
|
|
bindtextdomain(PROJECT_NAME, path);
|
|
|
|
textdomain(PROJECT_NAME);
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
2011-07-21 01:53:13 -04:00
|
|
|
inline wchar_t* chartowchar_t(const char *str)
|
2011-07-20 10:51:19 -04:00
|
|
|
{
|
|
|
|
size_t l = strlen(str)+1;
|
|
|
|
wchar_t* nstr = new wchar_t[l];
|
|
|
|
mbstowcs(nstr, str, l);
|
|
|
|
return nstr;
|
|
|
|
}
|
2011-07-30 04:14:58 -04:00
|
|
|
|
2011-07-31 03:03:19 -04:00
|
|
|
inline wchar_t* wgettext(const char *str)
|
|
|
|
{
|
|
|
|
return chartowchar_t(gettext(str));
|
|
|
|
}
|
|
|
|
|
2011-07-30 04:14:58 -04:00
|
|
|
inline void changeCtype(const char *l)
|
|
|
|
{
|
|
|
|
char *ret = NULL;
|
|
|
|
ret = setlocale(LC_CTYPE, l);
|
|
|
|
if(ret == NULL)
|
2012-03-10 21:15:45 -05:00
|
|
|
infostream<<"locale could not be set"<<std::endl;
|
2011-07-30 04:14:58 -04:00
|
|
|
else
|
2012-03-10 21:15:45 -05:00
|
|
|
infostream<<"locale has been set to:"<<ret<<std::endl;
|
2011-07-30 04:14:58 -04:00
|
|
|
}
|
2011-07-30 05:44:45 -04:00
|
|
|
#define GETTEXT_HEADER
|
|
|
|
#endif
|