summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Wood <thos@gnome.org>2005-01-09 01:21:07 +0000
committerRodney Dawes <dobey@src.gnome.org>2005-01-09 01:21:07 +0000
commit35037d76eca3d220ba9749f83d7c3d07362a9bd5 (patch)
treefd4f7aeabf9e944c3b8dfb3e83c1541825ed514a
parentbbf89d121b7ba4bacf655fc00e3bfd938f956454 (diff)
downloadgnome-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/ChangeLog7
-rw-r--r--capplets/background/gnome-wp-xml.c19
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) {