diff --git a/app/widgets/gimplanguagestore.c b/app/widgets/gimplanguagestore.c index 5b93bb5cb5..9347419a6b 100644 --- a/app/widgets/gimplanguagestore.c +++ b/app/widgets/gimplanguagestore.c @@ -31,6 +31,8 @@ #include "gimplanguagestore-data.h" #endif +#include "gimp-intl.h" + static void gimp_language_store_constructed (GObject *object); @@ -83,10 +85,24 @@ gimp_language_store_constructed (GObject *object) #ifdef HAVE_ISO_CODES for (gint i = 0; i < GIMP_ALL_LANGS_SIZE; i++) { - GimpLanguageDef def = GimpAllLanguages[i]; + GimpLanguageDef def = GimpAllLanguages[i]; + gchar *localized_name = g_strdup (dgettext ("iso_639_3", def.name)); + gchar *semicolon; + + /* there might be several language names; use the first one */ + semicolon = strchr (localized_name, ';'); + + if (semicolon) + { + gchar *temp = localized_name; + + localized_name = g_strndup (localized_name, semicolon - localized_name); + g_free (temp); + } GIMP_LANGUAGE_STORE_GET_CLASS (object)->add (GIMP_LANGUAGE_STORE (object), - def.name, def.code); + localized_name, def.code); + g_free (localized_name); } #endif } diff --git a/tools/gen-languages.c b/tools/gen-languages.c index 7c140b2348..8bcd949a09 100644 --- a/tools/gen-languages.c +++ b/tools/gen-languages.c @@ -490,9 +490,7 @@ iso_codes_parser_entry (IsoCodesParser *parser, if (lang && *lang && code && *code) { - gchar *semicolon; - gchar *localized_name = g_strdup (dgettext ("iso_639_3", lang)); - gboolean save_anyway = FALSE; + gboolean save_anyway = FALSE; /* If the language is in our base table, we save its standard English name. */ if (g_hash_table_contains (parser->base_lang_list, code)) @@ -501,21 +499,12 @@ iso_codes_parser_entry (IsoCodesParser *parser, save_anyway = TRUE; } - /* there might be several language names; use the first one */ - semicolon = strchr (localized_name, ';'); - - if (semicolon) - { - gchar *temp = localized_name; - localized_name = g_strndup (localized_name, semicolon - localized_name); - g_free (temp); - } - /* In any case, we save the name in user-set language for all lang - * with part 1 or part 2 code, or for the few language with no - * part 1|2 code but for which we have a localization. + /* In any case, we save the name in US English for all lang with + * part 1 or part 2 code, or for the few language with no part 1|2 + * code but for which we have a localization. */ if (has_part12 || save_anyway) - g_hash_table_insert (all_lang_list, g_strdup (code), localized_name); + g_hash_table_insert (all_lang_list, g_strdup (code), g_strdup (lang)); } }