summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-02-25 21:20:35 +0000
committerRay Strode <halfline@src.gnome.org>2008-02-25 21:20:35 +0000
commitcdcb55912330732844ee2f301c887721cf654f74 (patch)
tree8bc606336cd9e06637a50e503415e811fd1015e4
parentd2c1566cef7db90d21a7afbda8e66bbf8454409d (diff)
downloadgdm-cdcb55912330732844ee2f301c887721cf654f74.tar.gz
Move some duplicated code for pulling language/territory names out into a
2008-02-25 Ray Strode <rstrode@redhat.com> * gui/simple-greeter/gdm-languages.c: (get_first_item_in_semicolon_list), (get_translated_language), (get_translated_territory): Move some duplicated code for pulling language/territory names out into a common function svn path=/trunk/; revision=5856
-rw-r--r--ChangeLog10
-rw-r--r--gui/simple-greeter/gdm-languages.c32
2 files changed, 33 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 729c770c..3d44a1e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2008-02-25 Ray Strode <rstrode@redhat.com>
+ * gui/simple-greeter/gdm-languages.c:
+ (get_first_item_in_semicolon_list),
+ (get_translated_language),
+ (get_translated_territory):
+ Move some duplicated code for pulling
+ language/territory names out into a common
+ function
+
+2008-02-25 Ray Strode <rstrode@redhat.com>
+
* gui/simple-greeter/gdm-language-option-widget.c
(gdm_language_option_widget_set_current_language_name):
Normalize language name before adding to the list, so
diff --git a/gui/simple-greeter/gdm-languages.c b/gui/simple-greeter/gdm-languages.c
index efdd9a73..130cf698 100644
--- a/gui/simple-greeter/gdm-languages.c
+++ b/gui/simple-greeter/gdm-languages.c
@@ -455,6 +455,24 @@ get_language (const char *code)
}
static char *
+get_first_item_in_semicolon_list (const char *list)
+{
+ char **items;
+ char *item;
+
+ /* Some entries in iso codes have multiple values, separated
+ * by semicolons. Not really sure which one to pick, so
+ * we just arbitrarily pick the first one.
+ */
+ items = g_strsplit (list, "; ", 2);
+
+ item = g_strdup (items[0]);
+ g_strfreev (items);
+
+ return item;
+}
+
+static char *
get_translated_language (const char *code,
const char *locale)
{
@@ -472,14 +490,13 @@ get_translated_language (const char *code,
old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
setlocale (LC_MESSAGES, locale);
translated_name = dgettext ("iso_639", language);
+
+ name = get_first_item_in_semicolon_list (translated_name);
+
setlocale (LC_MESSAGES, old_locale);
g_free (old_locale);
- names = g_strsplit (translated_name, "; ", 2);
-
- name = g_strdup (names[0]);
- g_strfreev (names);
- }
+ }
return name;
}
@@ -523,10 +540,7 @@ get_translated_territory (const char *code,
setlocale (LC_MESSAGES, old_locale);
g_free (old_locale);
- territories = g_strsplit (translated_territory, "; ", 2);
-
- name = g_strdup (territories[0]);
- g_strfreev (territories);
+ name = get_first_item_in_semicolon_list (translated_territory);
}
return name;