[gnome-initial-setup] language-page: Rearrange code dealing with locale
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup] language-page: Rearrange code dealing with locale
- Date: Wed, 13 Feb 2013 22:36:54 +0000 (UTC)
commit c1b5e618776d57f2f74d2d55acc6215d10a7f0c8
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Feb 13 17:16:28 2013 -0500
language-page: Rearrange code dealing with locale
We left the locale in an inconsistent state after calling use_language,
but sort of always fixed it up afterwards. This cleans that up so that
use_language doesn't modify the locale ID, meaning that we can safely
call it and then expect cc_common_language_get_current_language to work
properly.
.../pages/language/gis-language-page.c | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
---
diff --git a/gnome-initial-setup/pages/language/gis-language-page.c b/gnome-initial-setup/pages/language/gis-language-page.c
index f387b21..e9ddbdd 100644
--- a/gnome-initial-setup/pages/language/gis-language-page.c
+++ b/gnome-initial-setup/pages/language/gis-language-page.c
@@ -113,13 +113,19 @@ sort_languages (gconstpointer a,
static char *
use_language (char *locale_id)
{
+ char *current_locale_id;
char *use, *language;
+ current_locale_id = g_strdup (setlocale (LC_MESSAGES, NULL));
+
/* Translators: the parameter here is your language's name, like
* "Use English", "Deutsch verwenden", etc. */
setlocale (LC_MESSAGES, locale_id);
use = _("Use %s");
+ setlocale (LC_MESSAGES, current_locale_id);
+ g_free (current_locale_id);
+
language = gdm_get_language_from_name (locale_id, locale_id);
return g_strdup_printf (use, language);
@@ -157,10 +163,8 @@ language_widget_new (char *locale_id,
{
gchar *locale_name;
LanguageWidget *widget = g_new0 (LanguageWidget, 1);
- gchar *current_locale_id = cc_common_language_get_current_language ();
locale_name = use_language (locale_id);
- setlocale (LC_MESSAGES, current_locale_id);
widget->box = padded_label_new (locale_name);
widget->locale_id = g_strdup (locale_id);
@@ -173,7 +177,6 @@ language_widget_new (char *locale_id,
gtk_image_new_from_icon_name ("object-select-symbolic", GTK_ICON_SIZE_MENU),
FALSE, FALSE, 0);
}
- g_free (current_locale_id);
g_object_set_data_full (G_OBJECT (widget->box), "language-widget", widget,
language_widget_free);
@@ -203,7 +206,6 @@ add_languages (GisLanguagePage *page,
GHashTable *initial)
{
GisLanguagePagePrivate *priv = page->priv;
- char *orig_locale_id = cc_common_language_get_current_language ();
priv->adding_languages = TRUE;
@@ -235,9 +237,6 @@ add_languages (GisLanguagePage *page,
gtk_widget_show (priv->language_list);
priv->adding_languages = FALSE;
-
- setlocale (LC_MESSAGES, orig_locale_id);
- g_free (orig_locale_id);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]