> But we could also leverage the kind of hacky implementation of message > contexts in GNU gettext. Message contexts were introduced in a manner that > did not require a modification of the format of .mo resp. .gmo files. It was > simply assumed/stipulated that message ids must not contain the control > character end-of-transmission (ASCII 004), and that was then solemnly > declared the separator between a message id and a message context. Therefore, > these two calls should be equivalent (not 100 % sure though): > > C_(”noun”, ”Move) > _(”noun\004Move”)
To give truth the honour … I vaguely remember that the convention ”noun|Move” predates the introduction of message contexts into GNU gettext. It was considered useful, only that the wonky pipe separator (’|’) was replaced by the safer choice end-of-transmission ’\004’. But be prepared for an old man's memory to be clouded.
