X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fgettext.h;h=54470cb0d863fc03ea25f04e2c5e9ca3bfd82649;hb=43ebec2be1949aa5eac127df7cb902d37e4e461b;hp=7f5f56e49979e7adea70cfdbb23500509fb64771;hpb=3882536d40656564b31c20008b55dfd77e848304;p=minetest.git diff --git a/src/gettext.h b/src/gettext.h index 7f5f56e49..54470cb0d 100644 --- a/src/gettext.h +++ b/src/gettext.h @@ -1,12 +1,49 @@ +#ifndef GETTEXT_HEADER +#include "config.h" // for USE_GETTEXT +#include "log.h" + +#if USE_GETTEXT #include +#else +#define gettext(String) String +#endif + #define _(String) gettext(String) #define gettext_noop(String) String #define N_(String) gettext_noop (String) -inline wchar_t* chartowchar_t(char *str) +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; wchar_t* nstr = new wchar_t[l]; 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) + infostream<<"locale could not be set"<