diff options
author | Christopher James Lahey <clahey@ximian.com> | 2001-04-11 07:33:25 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2001-04-11 07:33:25 +0800 |
commit | 8350463f8446783935dee97d9dc54e7d17c277aa (patch) | |
tree | 4ba270eac3a19e63c7dab7556e814a64e02d2de7 /widgets/misc | |
parent | 1991d205daa7f5b5754ba67328996c904dc26ecd (diff) | |
download | gsoc2013-evolution-8350463f8446783935dee97d9dc54e7d17c277aa.tar.gz gsoc2013-evolution-8350463f8446783935dee97d9dc54e7d17c277aa.tar.zst gsoc2013-evolution-8350463f8446783935dee97d9dc54e7d17c277aa.zip |
New function to translate a string and then convert it to utf8. Acts just
2001-04-10 Christopher James Lahey <clahey@ximian.com>
* gal/widgets/e-unicode.c, gal/widgets/e-unicode.h
(e_xml_get_translated_utf8_string_prop_by_name): New function to
translate a string and then convert it to utf8. Acts just like
e_xml_get_translated_string and then calls
e_utf_from_locale_string on it.
* gal/util/e-xml-utils.c: Changed e_xml_get_translated_string to
take a string with no underscore at the beginning and search for
both that prop and the same prop with the underscore prepended.
If it finds it without the underscore, it returns it. If it finds
it with the underscore, it translates.
* gal/util/e-xml-utils.c, gal/util/e-xml-utils.h: Reformatted
these a bit.
svn path=/trunk/; revision=9216
Diffstat (limited to 'widgets/misc')
-rw-r--r-- | widgets/misc/e-unicode.c | 34 | ||||
-rw-r--r-- | widgets/misc/e-unicode.h | 4 |
2 files changed, 37 insertions, 1 deletions
diff --git a/widgets/misc/e-unicode.c b/widgets/misc/e-unicode.c index fe16cb2102..04b5c8f802 100644 --- a/widgets/misc/e-unicode.c +++ b/widgets/misc/e-unicode.c @@ -9,6 +9,10 @@ */ #include <config.h> + +#include "e-unicode.h" + +#include "gal/util/e-i18n.h" #include <ctype.h> #include <string.h> #include <stdio.h> @@ -18,8 +22,8 @@ #include <gdk/gdkx.h> #include <gdk/gdkkeysyms.h> #include <gtk/gtkmenuitem.h> -#include "e-unicode.h" #include "e-font.h" +#include <gnome-xml/xmlmemory.h> #define FONT_TESTING #define MAX_DECOMP 8 @@ -2960,3 +2964,31 @@ e_stripped_char (unicode_char_t ch) return 0; } + +gchar * +e_xml_get_translated_utf8_string_prop_by_name (const xmlNode *parent, const xmlChar *prop_name) +{ + xmlChar *prop; + gchar *ret_val = NULL; + gchar *combined_name; + + g_return_val_if_fail (parent != NULL, 0); + g_return_val_if_fail (prop_name != NULL, 0); + + prop = xmlGetProp ((xmlNode *) parent, prop_name); + if (prop != NULL) { + ret_val = e_utf8_from_locale_string (prop); + xmlFree (prop); + return ret_val; + } + + combined_name = g_strdup_printf("_%s", prop_name); + prop = xmlGetProp ((xmlNode *) parent, combined_name); + if (prop != NULL) { + ret_val = e_utf8_from_locale_string (gettext (prop)); + xmlFree (prop); + } + g_free(combined_name); + + return ret_val; +} diff --git a/widgets/misc/e-unicode.h b/widgets/misc/e-unicode.h index db12ef72ec..f9eb0a9ae6 100644 --- a/widgets/misc/e-unicode.h +++ b/widgets/misc/e-unicode.h @@ -18,6 +18,7 @@ #include <gtk/gtkmenu.h> #include <gtk/gtkwidget.h> #include <libgnome/gnome-defs.h> +#include <gnome-xml/tree.h> BEGIN_GNOME_DECLS @@ -81,6 +82,9 @@ gchar * e_utf8_xml1_encode (const gchar *text); gint e_unichar_to_utf8 (gint c, gchar *outbuf); guint32 gdk_keyval_to_unicode (guint keysym); +gchar *e_xml_get_translated_utf8_string_prop_by_name (const xmlNode *parent, + const xmlChar *prop_name); + END_GNOME_DECLS #endif |