Skip to content

Commit 5a4bf3c

Browse files
jenshannoschwalmTurboGit
authored andcommitted
Fix gtk_disable_setlocale() for CLI mode
We don't wanna call gtk_disable_setlocale() if no gui is provided as for darktable-cli as we had called gtk_parse_args() before.
1 parent 0ae5b86 commit 5a4bf3c

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/common/l10n.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ static gchar* _dt_full_locale_name(const char *locale)
7777
#endif
7878
}
7979

80-
static void set_locale(const char *ui_lang, const char *old_env)
80+
static void _set_locale(const char *ui_lang, const char *old_env, const gboolean gui)
8181
{
8282
if(ui_lang && *ui_lang)
8383
{
@@ -88,7 +88,7 @@ static void set_locale(const char *ui_lang, const char *old_env)
8888
g_free(full_locale);
8989
}
9090
g_setenv("LANGUAGE", ui_lang, TRUE);
91-
gtk_disable_setlocale();
91+
if(gui) gtk_disable_setlocale();
9292
}
9393
else if(old_env && *old_env)
9494
g_setenv("LANGUAGE", old_env, TRUE);
@@ -98,7 +98,7 @@ static void set_locale(const char *ui_lang, const char *old_env)
9898
setlocale(LC_ALL, "");
9999
}
100100

101-
static gint sort_languages(gconstpointer a, gconstpointer b)
101+
static gint _sort_languages(gconstpointer a, gconstpointer b)
102102
{
103103
gchar *name_a = g_utf8_casefold(dt_l10n_get_name((const dt_l10n_language_t *)a), -1);
104104
gchar *name_b = g_utf8_casefold(dt_l10n_get_name((const dt_l10n_language_t *)b), -1);
@@ -111,7 +111,7 @@ static gint sort_languages(gconstpointer a, gconstpointer b)
111111
return result;
112112
}
113113

114-
static void get_language_names(GList *languages)
114+
static void _dt_get_language_names(GList *languages)
115115
{
116116
#ifdef HAVE_ISO_CODES
117117

@@ -445,14 +445,14 @@ dt_l10n_t *dt_l10n_init(const gchar *filename, const gboolean init_list)
445445
}
446446

447447
// now try to find language names and translations!
448-
get_language_names(result->languages);
448+
_dt_get_language_names(result->languages);
449449

450450
// set the requested gui language. this has to happen before
451451
// sorting the list as the sort result may depend on the language.
452-
set_locale(ui_lang, old_env);
452+
_set_locale(ui_lang, old_env, TRUE);
453453

454454
// sort the list of languages
455-
result->languages = g_list_sort(result->languages, sort_languages);
455+
result->languages = g_list_sort(result->languages, _sort_languages);
456456

457457
// find the index of the selected and default languages
458458
int i = 0;
@@ -467,7 +467,7 @@ dt_l10n_t *dt_l10n_init(const gchar *filename, const gboolean init_list)
467467
result->selected = result->sys_default;
468468
}
469469
else
470-
set_locale(ui_lang, old_env);
470+
_set_locale(ui_lang, old_env, FALSE);
471471

472472
g_free(ui_lang);
473473

0 commit comments

Comments
 (0)