From: Phillip Wood Date: Fri, 12 Aug 2022 19:21:04 GMT Subject: Re: [RFC/PATCH] sequencer: do not translate reflog messages Message-ID: <333bbaa9-d484-7c20-90d6-e64edf8a8248@gmail.com> In-Reply-To: Hi Michael On 12/08/2022 16:38, Michael J Gruber wrote: > Traditionally, reflog messages were never translated, in particular not > on storage. > > Due to the switch of more parts of git to the sequencer, old changes in > the sequencer code may lead to recent changes in git's behaviour. E.g.: > c28cbc5ea6 ("sequencer: mark action_name() for translation", 2016-10-21) > marked several uses of `action_name()` for translation. Recently, this > lead to a partially translated reflog: > > `rebase: fast-forward` is translated (e.g. in de to `Rebase: Vorspulen`) > whereas other reflog entries such as `rebase (pick):` remain > untranslated as they should be. > > Change the relevant line in the sequencer so that this reflog entry > remains untranslated, as well. > > Signed-off-by: Michael J Gruber > --- > The patch also changes `action_name()` not to translate the names This > makes no difference for `rebase: fast-forward` (I don't quite grok why > so far) but in any case, the callers mark the result of `action_name()` > (or do not mark it) so that the result itself should not be translated. > The full test suite passes either way. > > RFC for my lack of full grasp of the relevant code paths. > > sequencer.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/sequencer.c b/sequencer.c > index 5f22b7cd37..b456489590 100644 > --- a/sequencer.c > +++ b/sequencer.c > @@ -395,11 +395,11 @@ static const char *action_name(const struct replay_opts *opts) > { > switch (opts->action) { > case REPLAY_REVERT: > - return N_("revert"); > + return "revert"; > case REPLAY_PICK: > - return N_("cherry-pick"); > + return "cherry-pick"; > case REPLAY_INTERACTIVE_REBASE: > - return N_("rebase"); > + return "rebase"; Removing the N_() stops these strings from being extracted for translation, but there are several callers left that are still using _() to get the (now non-existent) translated string. I only had a quick look but I think we should remove the _() from all the callers of action_name(). Best Wishes Phillip > } > die(_("unknown action: %d"), opts->action); > } > @@ -575,7 +575,7 @@ static int fast_forward_to(struct repository *r, > if (checkout_fast_forward(r, from, to, 1)) > return -1; /* the callee should have complained already */ > > - strbuf_addf(&sb, _("%s: fast-forward"), _(action_name(opts))); > + strbuf_addf(&sb, "%s: fast-forward", action_name(opts)); > > transaction = ref_transaction_begin(&err); > if (!transaction ||