git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] sideband: mark "remote error:" prefix for translation

From
Jeff King <peff@peff.net>
Date
Aug 7, 2020, 08:56 UTC
Message-ID
<20200807085649.GA34210@coredump.intra.peff.net>
In-Reply-To
<xmqqwo2dnjk5.fsf@gitster.c.googlers.com>
On Wed, Aug 05, 2020 at 09:28:42AM -0700, Junio C Hamano wrote:
Show 11 quoted lines
> Jeff King <peff@peff.net> writes:
> 
> > By the way, grepping for "remote error:" shows that when we get an error
> > over sideband 3 we produce the same message but _don't_ translate it.
> > That seems inconsistent.
> 
> IOW
> 
>     die(_("remote error: %s"), buf + 1);
> 
> in sideband.c?  I think it makes sense.

Yes. Patch is below so we don't forget about it. I'm not sure if we ought to be going further, though. The "remote:" prefix for sideband 2 isn't translated either. It would be easy to do so, but it's much more lego-like. We don't have "remote: %s" ever as a string. We just have "remote:", and then we maybe_colorize_sideband() the result.

Would that be annoying for translators, especially with RTL languages? Do people actually want to see "remote:" (or "remote error:" for that matter) translated, or does mixing translated and untranslated messages on one line end up more confusing? I'm out of my element here, as I wouldn't ever use the translations myself.

Show 6 quoted lines
> IIRC, the current thinking is to let the remote side localize their
> message before sending them over the wire and we'll worry about how
> we let the receiving end tell what l10n it wants later.  So "remote
> error:" prefix may have to be translated on receiving end and the
> remainder of the line, which is already localized, can just be
> interpolated.

Yeah, that part makes sense. The local client shouldn't be translating what it gets from the server (and won't, because it is filled in via the %s). Adding a capability for preferred language would be easy, though I imagine it might be irritating in practice. As a server admin, I want to see everything in the C locale; but what gets shown to users and what might get dumped into server logs is not well specified in Git. I have a feeling that just setting LANG based on the user's request would be a bit broad.

Anyway, here's the patch. It doesn't seem to cause any test failures, even with GETTEXT_POISON. :)

-- >8 --
Subject: [PATCH] sideband: mark "remote error:" prefix for translation

A Git client may produce a "remote error:" message (along with whatever error the other side sent us) in two places:

  - when we see an ERR packet
  - when we're using a sideband and see sideband 3

We can't reliably translate the message the other side sent us, but we can do so for our own prefix. However, we translate only the ERR-packet case but not the sideband-3 case. Let's make them consistent (by marking both for translation).

Signed-off-by: Jeff King <peff@peff.net>
---
I really just care about consistency between the two spots, so swapping
this to translate neither would be to me, too. I guess this does create
inconsistency with "remote: " though. Not sure if it's incremental
forward progress, or just a bad idea. ;)
 sideband.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sideband.c b/sideband.c
index ef851113c4..0a60662fa6 100644
--- a/sideband.c
+++ b/sideband.c
@@ -147,7 +147,7 @@ int demultiplex_sideband(const char *me, char *buf, int len,
 	switch (band) {
 	case 3:
 		if (die_on_error)
-			die("remote error: %s", buf + 1);
+			die(_("remote error: %s"), buf + 1);
 		strbuf_addf(scratch, "%s%s", scratch->len ? "\n" : "",
 			    DISPLAY_PREFIX);
 		maybe_colorize_sideband(scratch, buf + 1, len);
-- 
2.28.0.520.g10e2ce7e11
Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 11 in “racy test failure in tb/upload-pack-filters”
  1. Jeff KingAug 5, 2020
  2. SZEDER GáborAug 5, 2020
  3. Jeff KingAug 5, 2020
  4. Taylor BlauAug 5, 2020
  5. Junio C HamanoAug 5, 2020
  6. sideband: mark "remote error:" prefix for translationJeff King, Aug 7, 2020
  7. Junio C HamanoAug 7, 2020
  8. Martin ÅgrenAug 5, 2020
  9. Jeff KingAug 5, 2020
  10. Martin ÅgrenAug 5, 2020
  11. Taylor BlauAug 5, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.