aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc/e-error.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/misc/e-error.c')
-rw-r--r--widgets/misc/e-error.c73
1 files changed, 16 insertions, 57 deletions
diff --git a/widgets/misc/e-error.c b/widgets/misc/e-error.c
index a456802be4..0caceb37d1 100644
--- a/widgets/misc/e-error.c
+++ b/widgets/misc/e-error.c
@@ -133,44 +133,6 @@ map_type(const char *name)
return 3;
}
-static const GList *lang_list;
-
-/* Finds the right node for the current language. */
-static xmlNodePtr
-find_node(xmlNodePtr base, const char *name)
-{
- const GList *l;
- xmlNodePtr scan, langc=NULL;
-
- if (lang_list == NULL)
- lang_list = gnome_i18n_get_language_list("LC_MESSAGES");
-
- /* This is, like, way shitful, very slow, terribly inefficient ... sigh */
- for (l=lang_list;l;l=l->next) {
- const char *lang = l->data;
-
- for (scan = base;scan;scan=scan->next) {
- if (!strcmp(scan->name, name)) {
- char *xmllang = xmlGetProp(scan, "xml:lang");
-
- if (xmllang) {
- if (!strcmp(xmllang, lang)) {
- xmlFree(xmllang);
- return scan;
- }
- xmlFree(xmllang);
- } else {
- langc = scan;
- if (strcmp(lang, "C") == 0)
- return scan;
- }
- }
- }
- }
-
- return langc;
-}
-
/*
XML format:
@@ -254,26 +216,23 @@ ee_load(const char *path)
xmlFree(tmp);
}
- node = find_node(error->children, "primary");
- if (node && (tmp = xmlNodeGetContent(node))) {
- e->primary = g_strdup(tmp);
- xmlFree(tmp);
- }
-
- node = find_node(error->children, "secondary");
- if (node && (tmp = xmlNodeGetContent(node))) {
- e->secondary = g_strdup(tmp);
- xmlFree(tmp);
- }
-
- node = find_node(error->children, "title");
- if (node && (tmp = xmlNodeGetContent(node))) {
- e->title = g_strdup(tmp);
- xmlFree(tmp);
- }
-
for (scan = error->children;scan;scan=scan->next) {
- if (!strcmp(scan->name, "button")) {
+ if (!strcmp(scan->name, "primary")) {
+ if ((tmp = xmlNodeGetContent(scan))) {
+ e->primary = g_strdup(_(tmp));
+ xmlFree(tmp);
+ }
+ } else if (!strcmp(scan->name, "secondary")) {
+ if ((tmp = xmlNodeGetContent(node))) {
+ e->secondary = g_strdup(_(tmp));
+ xmlFree(tmp);
+ }
+ } else if (!strcmp(scan->name, "title")) {
+ if ((tmp = xmlNodeGetContent(node))) {
+ e->title = g_strdup(_(tmp));
+ xmlFree(tmp);
+ }
+ } else if (!strcmp(scan->name, "button")) {
struct _e_error_button *b;
b = g_malloc0(sizeof(*b));