Sophie

Sophie

distrib > Mandriva > 2009.0 > x86_64 > media > main-testing-src > by-pkgid > 30a076a8e05eadb0c12e901585e77f45 > files > 1

gnome-menus-2.24.0-2mdv2009.0.src.rpm

diff -p -up gnome-menus-2.24.0/libmenu/desktop-entries.c.l10n gnome-menus-2.24.0/libmenu/desktop-entries.c
--- gnome-menus-2.24.0/libmenu/desktop-entries.c.l10n	2008-09-22 23:10:56.000000000 +0200
+++ gnome-menus-2.24.0/libmenu/desktop-entries.c	2008-12-11 16:08:51.000000000 +0100
@@ -22,6 +22,7 @@
 #include "desktop-entries.h"
 
 #include <string.h>
+#include <libintl.h>
 
 #include "menu-util.h"
 
@@ -198,6 +199,26 @@ get_categories_from_key_file (DesktopEnt
   return retval;
 }
 
+static char * 
+get_locale_string (GKeyFile *key_file, const char *desktop_entry_group, const char * key) 
+{
+	char *result, *non_translated;
+	static gboolean l10n_init = FALSE;
+
+	result = g_key_file_get_locale_string (key_file, desktop_entry_group, key, NULL, NULL);
+	non_translated = g_key_file_get_string (key_file, desktop_entry_group, key, NULL);
+	if (non_translated && result && *non_translated != '\0' && strcmp (result, non_translated) == 0) {
+		g_free (result);
+		if (!l10n_init) {
+		        bind_textdomain_codeset ("menu-messages", "UTF-8");
+		}
+		result = g_strdup (dgettext ("menu-messages", non_translated));
+	}
+	g_free (non_translated);
+
+	return result;
+}
+
 static DesktopEntry *
 desktop_entry_load (DesktopEntry *entry)
 {
@@ -283,8 +304,8 @@ desktop_entry_load (DesktopEntry *entry)
 
 #define GET_LOCALE_STRING(n) g_key_file_get_locale_string (key_file, desktop_entry_group, (n), NULL, NULL)
 
-  retval->name       = GET_LOCALE_STRING ("Name");
-  retval->comment    = GET_LOCALE_STRING ("Comment");
+  retval->name       = get_locale_string (key_file, desktop_entry_group, "Name");
+  retval->comment    = get_locale_string (key_file, desktop_entry_group, "Comment");
   retval->icon       = GET_LOCALE_STRING ("Icon");
   retval->flags      = get_flags_from_key_file (retval, key_file, desktop_entry_group);
   retval->categories = get_categories_from_key_file (retval, key_file, desktop_entry_group);
@@ -294,9 +315,9 @@ desktop_entry_load (DesktopEntry *entry)
       retval->exec = g_key_file_get_string (key_file, desktop_entry_group, "Exec", NULL);
       retval->terminal = g_key_file_get_boolean (key_file, desktop_entry_group, "Terminal", NULL);
     }
-  
-#undef GET_LOCALE_STRING
 
+#undef GET_LOCALE_STRING
+  
   menu_verbose ("Desktop entry \"%s\" (%s, %s, %s) flags: NoDisplay=%s, Hidden=%s, ShowInGNOME=%s, TryExecFailed=%s\n",
                 retval->basename,
                 retval->name,