diff -Nuard gnome-panel-2.4.1.orig/gnome-panel/ChangeLog gnome-panel-2.4.1/gnome-panel/ChangeLog --- gnome-panel-2.4.1.orig/gnome-panel/ChangeLog 2003-10-14 12:46:22.000000000 +0200 +++ gnome-panel-2.4.1/gnome-panel/ChangeLog 2003-11-28 00:41:15.065892216 +0100 @@ -1,3 +1,10 @@ +2003-11-28 Marcin Krzyzanowski + + * menu.c: (create_applets_menu): + Guess untranslated categories based on translated ones, what give + us better menu order with translated and untranslated (the same) + categories. Fix bug #127732 + 2003-10-13 Owen Taylor * gnome-panel/panel-stock-icons.c (panel_init_stock_icons): diff -Nuard gnome-panel-2.4.1.orig/gnome-panel/menu.c gnome-panel-2.4.1/gnome-panel/menu.c --- gnome-panel-2.4.1.orig/gnome-panel/menu.c 2003-10-14 12:46:30.000000000 +0200 +++ gnome-panel-2.4.1/gnome-panel/menu.c 2003-11-28 00:28:09.436326064 +0100 @@ -2680,10 +2680,10 @@ { int c; - if ((c = strcmp (a->category, b->category))) + if ((c = g_utf8_collate (a->category, b->category))) return c; - return strcmp (a->name, b->name); + return g_utf8_collate (a->name, b->name); } static GSList * @@ -2711,7 +2711,7 @@ { GtkWidget *prev_menu = NULL; const char *prev_category = NULL; - int i; + int i,j,k; const GList *langs_glist; GSList *langs_gslist; GSList *applets = NULL; @@ -2771,6 +2771,20 @@ applets = g_slist_append (applets, applet); } + + /* try to guess translations looking for already translated categories */ + for (j = 0; j < g_slist_length(applets); j++) { + AppletMenuInfo *appletA = (AppletMenuInfo *) g_slist_nth_data (applets,j); + + if (!g_utf8_collate (appletA->category,appletA->untranslated_category)) { + for (k = 0; k < g_slist_length(applets); k++) { + AppletMenuInfo *appletB = (AppletMenuInfo *) g_slist_nth_data (applets,k); + + if (!g_utf8_collate (appletA->untranslated_category,appletB->untranslated_category)) + appletA->category = appletB->category; + } + } + } /* add internal action buttons */ applets = append_internal_applets (applets);