34#include <gwenhywfar/debug.h>
35#include <gwenhywfar/misc.h>
36#include <gwenhywfar/pathmanager.h>
37#include <gwenhywfar/gwenhywfar.h>
60struct gwen_i18n_tabletype {
66static struct gwen_i18n_tabletype gwen_i18n___localetable[]= {
67 {
"German_Germany",
"de_DE" },
68 {
"English_UK",
"en_GB" },
69 {
"English_US",
"en_US" },
70 {
"French_France",
"fr_FR" },
76static const char *gwen_i18n_transwinlocale(
const char *s)
80 struct gwen_i18n_tabletype *tt;
85 tt=gwen_i18n___localetable;
86 while (tt->win_name) {
87 if (strcasecmp(tt->win_name, cs)==0) {
98 tt=gwen_i18n___localetable;
99 while (tt->win_name) {
100 if (strcasecmp(tt->win_name, cs)==0) {
112 tt=gwen_i18n___localetable;
113 while (tt->win_name) {
114 if (strcasecmp(tt->win_name, cs)==0) {
134 const char *localedir;
185 const char *realLocale;
192 realLocale=setlocale(LC_ALL, s);
193 if (realLocale==
NULL) {
201 t=gwen_i18n_transwinlocale(realLocale);
212 cs=strdup(realLocale);
264 s=dgettext(txtdom, text);
265 if (strcmp(s, text)==0)
271 return dgettext(txtdom, text);
287 if (
NULL==bindtextdomain(txtdom, folder)) {
302 if (
NULL==bind_textdomain_codeset(txtdom, cs)) {
#define DBG_INFO(dbg_logger, format,...)
#define DBG_ERROR(dbg_logger, format,...)
#define DBG_WARN(dbg_logger, format,...)
#define GWEN_ERROR_GENERIC
#define GWEN_ERROR_NOT_SUPPORTED
#define GWEN_PM_LOCALEDIR
int GWEN_I18N_ModuleInit(void)
int GWEN_I18N_ModuleFini(void)
int GWEN_I18N_SetLocale(const char *s)
GWEN_STRINGLIST * GWEN_I18N_GetCurrentLocaleList(void)
int GWEN_I18N_BindTextDomain_Codeset(const char *txtdom, const char *cs)
int GWEN_I18N_BindTextDomain_Dir(const char *txtdom, const char *folder)
const char * GWEN_I18N_Translate(const char *txtdom, const char *text)
const char * GWEN_I18N_GetCurrentLocale(void)
static GWEN_STRINGLIST * gwen_i18n__localelist
static char * gwen_i18n__currentlocale
GWEN_STRINGLIST * GWEN_PathManager_GetPaths(const char *destLib, const char *pathName)
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
unsigned int GWEN_StringList_Count(const GWEN_STRINGLIST *sl)
void GWEN_StringList_Clear(GWEN_STRINGLIST *sl)
int GWEN_StringList_AppendString(GWEN_STRINGLIST *sl, const char *s, int take, int checkDouble)
const char * GWEN_StringList_FirstString(const GWEN_STRINGLIST *l)
GWEN_STRINGLIST * GWEN_StringList_new(void)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST