From 5acd848f79b248511c298ae6321417e1488dc696 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Thu, 18 Oct 2012 16:34:40 +0200 Subject: Initial version of language selector GUI --- src/common/cfgfiles.c | 4 ++++ src/common/xchat.c | 5 +++++ src/common/xchat.h | 1 + 3 files changed, 10 insertions(+) (limited to 'src/common') diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c index 4ac47f58..09b91423 100644 --- a/src/common/cfgfiles.c +++ b/src/common/cfgfiles.c @@ -451,6 +451,9 @@ const struct prefs vars[] = { {"gui_input_style", P_OFFINT (style_inputbox), TYPE_BOOL}, {"gui_join_dialog", P_OFFINT (gui_join_dialog), TYPE_BOOL}, {"gui_lagometer", P_OFFINT (lagometer), TYPE_INT}, +#ifdef WIN32 + {"gui_lang", P_OFFSET (gui_lang), TYPE_STR}, +#endif {"gui_mode_buttons", P_OFFINT (chanmodebuttons), TYPE_BOOL}, #ifdef WIN32 {"gui_one_instance", P_OFFINT (gui_one_instance), TYPE_BOOL}, @@ -746,6 +749,7 @@ load_config (void) prefs.timestamp = 1; #ifdef WIN32 prefs.identd = 1; + strcpy (prefs.gui_lang, g_getenv ("LC_ALL") ? g_getenv ("LC_ALL") : "en_US"); #endif strcpy (prefs.spell_langs, g_getenv ("LC_ALL") ? g_getenv ("LC_ALL") : "en_US"); strcpy (prefs.stamp_format, "[%H:%M:%S] "); diff --git a/src/common/xchat.c b/src/common/xchat.c index 17bad663..77650a03 100644 --- a/src/common/xchat.c +++ b/src/common/xchat.c @@ -951,6 +951,7 @@ main (int argc, char *argv[]) int ret; #ifdef WIN32 + char hexchat_lang[13]; /* LC_ALL= plus 5 chars of gui_lang and trailing \0 */ HANDLE mutex; #endif @@ -971,6 +972,10 @@ main (int argc, char *argv[]) load_config (); #ifdef WIN32 + /* we MUST do this after load_config () otherwise it would fail */ + snprintf (hexchat_lang, 12, "LC_ALL=%s", prefs.gui_lang); + putenv (hexchat_lang); + if (prefs.gui_one_instance && !portable_mode ()) { DWORD error; diff --git a/src/common/xchat.h b/src/common/xchat.h index 7767d709..06b29494 100644 --- a/src/common/xchat.h +++ b/src/common/xchat.h @@ -117,6 +117,7 @@ struct xchatprefs char font_normal[4 * FONTNAMELEN + 1]; char font_main[FONTNAMELEN + 1]; char font_alternative[3 * FONTNAMELEN + 1]; + char gui_lang[6]; /* Just enough for xx_YY plus trailing \0 */ #else char font_normal[FONTNAMELEN + 1]; #endif -- cgit 1.4.1