diff mbox series

refs: mark invalid refname message for translation

Message ID 20241220125837.2774153-1-karthik.188@gmail.com (mailing list archive)
State Accepted
Commit 8ddcdc1bb33ccf803461dd2365146f9341bf9312
Headers show
Series refs: mark invalid refname message for translation | expand

Commit Message

Karthik Nayak Dec. 20, 2024, 12:58 p.m. UTC
The error message produced by `transaction_refname_valid()` changes based
on whether the update is a ref update or a reflog update, with the use
of a ternary operator. This breaks translation since the sub-msg is not
marked for translation. Fix this by setting the entire message using a
`if {} else {}` block and marking each message for translation.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
---

Since the reflog migration topic has been merged to 'next', I am sending this 
as an individual patch which applies on top of 'kn/reflog-migration'. 

Junio, I'd also be happy to re-roll the series if that is better.

 refs.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

Comments

Junio C Hamano Dec. 20, 2024, 3:53 p.m. UTC | #1
Karthik Nayak <karthik.188@gmail.com> writes:

> The error message produced by `transaction_refname_valid()` changes based
> on whether the update is a ref update or a reflog update, with the use
> of a ternary operator. This breaks translation since the sub-msg is not
> marked for translation. Fix this by setting the entire message using a
> `if {} else {}` block and marking each message for translation.
>
> Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
> ---
>
> Since the reflog migration topic has been merged to 'next', I am sending this 
> as an individual patch which applies on top of 'kn/reflog-migration'. 

Thanks, that is the most sensible way to fix up a glitch that was
discovered too late ;-)  Will queue.
diff mbox series

Patch

diff --git a/refs.c b/refs.c
index 58e543ce39..9c887427f2 100644
--- a/refs.c
+++ b/refs.c
@@ -1255,14 +1255,22 @@  static int transaction_refname_valid(const char *refname,
 		return 1;
 
 	if (is_pseudo_ref(refname)) {
-		const char *what = flags & REF_LOG_ONLY ? "reflog for pseudoref" : "pseudoref";
-		strbuf_addf(err, _("refusing to update %s '%s'"), what, refname);
+		const char *refusal_msg;
+		if (flags & REF_LOG_ONLY)
+			refusal_msg = _("refusing to update reflog for pseudoref '%s'");
+		else
+			refusal_msg = _("refusing to update pseudoref '%s'");
+		strbuf_addf(err, refusal_msg, refname);
 		return 0;
 	} else if ((new_oid && !is_null_oid(new_oid)) ?
 		 check_refname_format(refname, REFNAME_ALLOW_ONELEVEL) :
 		 !refname_is_safe(refname)) {
-		const char *what = flags & REF_LOG_ONLY ? "reflog with bad name" : "ref with bad name";
-		strbuf_addf(err, _("refusing to update %s '%s'"), what, refname);
+		const char *refusal_msg;
+		if (flags & REF_LOG_ONLY)
+			refusal_msg = _("refusing to update reflog with bad name '%s'");
+		else
+			refusal_msg = _("refusing to update ref with bad name '%s'");
+		strbuf_addf(err, refusal_msg, refname);
 		return 0;
 	}