Comment 15 for bug 197763

Revision history for this message
Oliver Gerlich (ogerlich) wrote :

The problem seems to be caused by the gettext support for .desktop files (01_gettext-desktopfiles.patch in glib2.0). More detailed, in source package gnome-menus in desktop-entries.c (function desktop_entry_load()), the function g_key_file_get_locale_string() from glib2.0 is used to get the icon name from /usr/share/applications/seahorse.desktop . In German locale, the gettext patch then causes that function to translate the icon name "seahorse" to "Seahorse", which is then not found as icon...

A workaround is to remove or disable the X-Ubuntu-Gettext-Domain line in seahorse.desktop.
A better solution might be to modify gnome-menus to use g_key_file_get_string() to get the icon name as untranslated string. This has the drawback that desktop file lines like "Icon[de]=seahorse-german" (to get a locale-specific icon) would not work anymore (is this actually used somewhere?). Also, the Desktop Entry Spec states that the Icon value is a "localestring", so g_key_file_get_locale_string() is actually the correct function to use...
The "Right Way" might be to add a flag to g_key_file_get_locale_string() so it loads the icon name as described in its documentation but without translating it with gettext... Not sure if this is possible, though, with regard to compatibility.