From 35037d76eca3d220ba9749f83d7c3d07362a9bd5 Mon Sep 17 00:00:00 2001 From: Thomas Wood Date: Sun, 9 Jan 2005 01:21:07 +0000 Subject: [PATCH] Load translated XML description elements if available 2005-01-08 Thomas Wood * gnome-wp-xml.c (gnome_wp_xml_load_xml): Load translated XML description elements if available Fixes #160700 --- capplets/background/ChangeLog | 7 +++++++ capplets/background/gnome-wp-xml.c | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) 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 + + * gnome-wp-xml.c (gnome_wp_xml_load_xml): Load translated XML + description elements if available + + Fixes #160700 + 2005-01-08 Rodney Dawes * 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) {