and lets have lang settings work by unsetting lang and language too if
authorCarsten Haitzler <raster@rasterman.com>
Sat, 20 Aug 2011 05:16:42 +0000 (05:16 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Sat, 20 Aug 2011 05:16:42 +0000 (05:16 +0000)
set.

SVN revision: 62622

src/bin/e_intl.c

index c150f68..88646c7 100644 (file)
@@ -4,6 +4,8 @@ static Ecore_Exe *_e_intl_input_method_exec = NULL;
 static Ecore_Event_Handler *_e_intl_exit_handler = NULL;
 
 static char *_e_intl_orig_lc_all = NULL;
+static char *_e_intl_orig_lang = NULL;
+static char *_e_intl_orig_language = NULL;
 static char *_e_intl_language = NULL;
 
 static char *_e_intl_language_alias = NULL;
@@ -56,6 +58,8 @@ e_intl_init(void)
    e_intl_data_init();
 
    if ((s = getenv("LC_ALL"))) _e_intl_orig_lc_all = strdup(s);
+   if ((s = getenv("LANG"))) _e_intl_orig_lang = strdup(s);
+   if ((s = getenv("LANGUAGE"))) _e_intl_orig_language = strdup(s);
 
    if ((s = getenv("GTK_IM_MODULE"))) _e_intl_orig_gtk_im_module = strdup(s);
    if ((s = getenv("QT_IM_MODULE"))) _e_intl_orig_qt_im_module = strdup(s);
@@ -70,6 +74,8 @@ e_intl_shutdown(void)
 {
    E_FREE(_e_intl_language);
    E_FREE(_e_intl_orig_lc_all);
+   E_FREE(_e_intl_orig_lang);
+   E_FREE(_e_intl_orig_language);
 
    E_FREE(_e_intl_orig_gtk_im_module);
    E_FREE(_e_intl_orig_qt_im_module);
@@ -146,6 +152,7 @@ e_intl_language_set(const char *lang)
 
        if (!lang) lang = getenv("LC_ALL");
        if (!lang) lang = getenv("LANG");
+       if (!lang) lang = getenv("LANGUAGE");
 
        set_envars = 0;
      }
@@ -187,6 +194,8 @@ e_intl_language_set(const char *lang)
        if (set_envars)
          {
             e_util_env_set("LC_ALL", _e_intl_language);
+             e_util_env_set("LANG", NULL);
+             e_util_env_set("LANGUAGE", NULL);
          }
 
        setlocale(LC_ALL, _e_intl_language);