diff options
author | Thomas Wood <thos@gnome.org> | 2005-01-09 01:21:07 +0000 |
---|---|---|
committer | Rodney Dawes <dobey@src.gnome.org> | 2005-01-09 01:21:07 +0000 |
commit | 35037d76eca3d220ba9749f83d7c3d07362a9bd5 (patch) | |
tree | fd4f7aeabf9e944c3b8dfb3e83c1541825ed514a | |
parent | bbf89d121b7ba4bacf655fc00e3bfd938f956454 (diff) | |
download | gnome-control-center-35037d76eca3d220ba9749f83d7c3d07362a9bd5.tar.gz |
Load translated XML description elements if available
2005-01-08 Thomas Wood <thos@gnome.org>
* gnome-wp-xml.c (gnome_wp_xml_load_xml): Load translated XML
description elements if available
Fixes #160700
-rw-r--r-- | capplets/background/ChangeLog | 7 | ||||
-rw-r--r-- | capplets/background/gnome-wp-xml.c | 19 |
2 files changed, 25 insertions, 1 deletions
diff --git a/capplets/background/ChangeLog b/capplets/background/ChangeLog index 4113786db..8ac762829 100644 --- a/capplets/background/ChangeLog +++ b/capplets/background/ChangeLog @@ -1,3 +1,10 @@ +2005-01-08 Thomas Wood <thos@gnome.org> + + * gnome-wp-xml.c (gnome_wp_xml_load_xml): Load translated XML + description elements if available + + Fixes #160700 + 2005-01-08 Rodney Dawes <dobey@novell.com> * gnome-wp-capplet.c (wallpaper_properties_init): Fix the leaks diff --git a/capplets/background/gnome-wp-xml.c b/capplets/background/gnome-wp-xml.c index 5be3ebb37..12d7832aa 100644 --- a/capplets/background/gnome-wp-xml.c +++ b/capplets/background/gnome-wp-xml.c @@ -94,8 +94,13 @@ static void gnome_wp_xml_load_xml (GnomeWPCapplet * capplet, const gchar * filename) { xmlDoc * wplist; xmlNode * root, * list, * wpa; + gchar * nodelang; + const gchar ** syslangs; GdkColor color1, color2; GnomeWPItem * item; + gint i; + + syslangs = g_get_language_names (); wplist = xmlParseFile (filename); @@ -118,7 +123,19 @@ static void gnome_wp_xml_load_xml (GnomeWPCapplet * capplet, } } else if (!strcmp (wpa->name, "name")) { if (wpa->last != NULL) { - wp->name = g_strdup (g_strstrip (wpa->last->content)); + nodelang = xmlNodeGetLang (wpa->last); + + if (wp->name == NULL && nodelang == NULL) { + wp->name = g_strdup (g_strstrip (wpa->last->content)); + } else { + for (i = 0; syslangs[i] != NULL; i++) { + if (!strcmp (syslangs[i], nodelang)) { + wp->name = g_strdup (g_strstrip (wpa->last->content)); + } + } + } + + xmlFree (nodelang); } } else if (!strcmp (wpa->name, "imguri")) { if (wpa->last != NULL) { |