Hi,

it looks like the `_()` Gtk2 macro does some magic under the hood to 
automatically extract a message context separated by a pipe symbol. I wasn’t 
aware of that.

> Index: gtkgame.c
> ===================================================================
> RCS file: /sources/gnubg/gnubg/gtkgame.c,v
> retrieving revision 1.1012
> diff -u -r1.1012 gtkgame.c
> --- gtkgame.c 30 Dec 2023 20:36:15 -0000      1.1012
> +++ gtkgame.c 12 Feb 2024 16:26:51 -0000
> @@ -4025,7 +4025,7 @@
>      CMD_ACTION_CALLBACK_FROMID(CMD_ANALYSE_MATCH) },
> 
>     { "ClearAnalysisMenuAction", NULL, N_("Clear analysis"), NULL, NULL, 
> G_CALLBACK(NULL) },
> -    { "ClearAnalysisMoveAction", GTK_STOCK_CLEAR, N_("noun|Move"), NULL, 
> NULL,
> +    { "ClearAnalysisMoveAction", GTK_STOCK_CLEAR, N_("Move"), NULL, NULL,
>      CMD_ACTION_CALLBACK_FROMID(CMD_ANALYSE_CLEAR_MOVE) },
>     { "ClearAnalysisGameAction", GTK_STOCK_CLEAR, N_("_Game"), NULL, NULL,
>      CMD_ACTION_CALLBACK_FROMID(CMD_ANALYSE_CLEAR_GAME) },
> @@ -4036,7 +4036,7 @@
>     { "CMarkCubeMenuAction", NULL, N_("Cube"), NULL, NULL, G_CALLBACK(NULL) },
>     { "CMarkCubeClearAction", NULL, N_("Clear"), NULL, NULL, 
> CMD_ACTION_CALLBACK_FROMID(CMD_CMARK_CUBE_CLEAR) },
>     { "CMarkCubeShowAction", NULL, N_("Show"), NULL, NULL, 
> CMD_ACTION_CALLBACK_FROMID(CMD_CMARK_CUBE_SHOW) },
> -    { "CMarkMoveMenuAction", NULL, N_("noun|Move"), NULL, NULL, 
> G_CALLBACK(NULL) },
> +    { "CMarkMoveMenuAction", NULL, N_("Move"), NULL, NULL, G_CALLBACK(NULL) 
> },
>     { "CMarkMoveClearAction", NULL, N_("Clear"), NULL, NULL, 
> CMD_ACTION_CALLBACK_FROMID(CMD_CMARK_MOVE_CLEAR) },
>     { "CMarkMoveShowAction", NULL, N_("Show"), NULL, NULL, 
> CMD_ACTION_CALLBACK_FROMID(CMD_CMARK_MOVE_SHOW) },
>     { "CMarkGameMenuAction", NULL, N_("Game"), NULL, NULL, G_CALLBACK(NULL) },

This structure is passed to `gtk_action_group_add_actions()` and the 
pipe-separated message context apparently doesn’t work here. So the patch is 
valid.

But in all other cases, where ”noun|Move” was used that syntax seems to work 
and I wouldn’t patch those locations. Although, I couldn’t find all of the 
strings in the GUI so I might be wrong.

Cheers,
Guido



Reply via email to