On Sat, Mar 30, 2024 at 11:43:40PM -0700, Junio C Hamano wrote: > Rubén Justo <rjusto@xxxxxxxxx> writes: > > >> > for (cp = buf.buf; *cp; cp = np) { > >> > np = strchrnul(cp, '\n'); > >> > - fprintf(stderr, _("%shint: %.*s%s\n"), > >> > + fprintf(stderr, _("%shint:%s%.*s%s\n"), > >> > advise_get_color(ADVICE_COLOR_HINT), > >> > + (np == cp) ? "" : " ", > >> > (int)(np - cp), cp, > >> > advise_get_color(ADVICE_COLOR_RESET)); > > > > Thinking again on this I wonder, while we're here, if we could go further > > and move the "hint" literal to the args, to ease the translation work: > > - fprintf(stderr, _("%shint:%s%.*s%s\n"), > > + fprintf(stderr, "%s%s:%s%.*s%s\n", > > advise_get_color(ADVICE_COLOR_HINT), > > + _("hint"), > > (np == cp) ? "" : " ", > > (int)(np - cp), cp, > > advise_get_color(ADVICE_COLOR_RESET)); > > It is not guaranteed that any and all languages want to use a colon > immediately after translation of "hint"; the current message string > with or without my patch allows translators adjust that part to the > target language, but your version will force them to always use only > a colon there. Is that an improvement? I somehow do not think so. I was just thinking if leaving the format open to the translation is a sane option. Maybe we can move the colon to the literal in the args, too. In any case, the patch is OK as it is.