Reading through menus: why there are so many repetitions

This is worthy of a topic in its own right. It’s a good question, with a slightly strange answer for now.

In MyPaint, menu entries which are commands must have a label that makes sense out of context, because they may be presented outside the menu. This can mean repetitions. So we say “Layer → Copy Layer to Clipboard”, or even “Layer → New Layer Below → New Vector Layer Below…”!

The canonical styleguide-approved answer is that the “path” through a menu is supposed to read as a whole, so that when the user drills through the menu, they read the whole sense from short fragments. So other programs might say “Layer → Copy to Clipboard”, or “Layer → New Below → Vector…”.

However MyPaint cannot do this since GTK took away the ability to change shortcuts directly from the menus. We had to write our own accelerator editor for keystroke shortcuts, and this meant making some compromises. The accel editor doesn’t know about path: it just presents everything in one big list. So now you’ll see contexts in Weblate like

Context: Menu→Color (labels), Accel Editor (labels)

This is supposed to mean that its associated string will appear in two places: the Color menu, and the preferences window’s keyboard accelerator editor. Or even,

Context: Menu→Window (labels), Toolbar (labels), Accel Editor (labels)

whose string can theoretically appear in three places.

I hope the results aren’t too broken in languages with a functioning case system or highly inflected ones. If it’s any consolation, the menus are a compromise and a jumbled word salad even in the source language (which is US English written by a German, a Norwegian, and a Briton).

The situation should improve when/if MyPaint switches over to the newer GtkApplication and GMenu sytem of making and exposing commands.

Uhmmm, its gonna be a thesis work, I see… ))
Well, I dont think i can utilise this knowledge for now without a case study, so lets wait until
the translation would be quickly and smoothly incorporated into present builds, need to see it at work.