Re: [RFC/PATCH] sequencer: do not translate reflog messages
- From
- Phillip Wood <phillip.wood123@gmail.com>
- Date
- Aug 12, 2022, 19:21 UTC
- Message-ID
- <333bbaa9-d484-7c20-90d6-e64edf8a8248@gmail.com>
- In-Reply-To
- <b8ab40b2b0e3e5d762b414329ad2f4552f935d28.1660318162.git.git@grubix.eu>
Hi Michael
On 12/08/2022 16:38, Michael J Gruber wrote:
Show 44 quoted lines
> 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 <git@grubix.eu>
> ---
> 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
Show 12 quoted lines
> }
> 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 ||