Re: [PATCH] advice: omit trailing whitespace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 31, 2024 at 03:20:22PM -0700, Junio C Hamano wrote:
> Rubén Justo <rjusto@xxxxxxxxx> writes:
> 
> >> > > 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.
> >
> > Just for the record, zh_CN (Chinese) and zh_TW (Traditional Chinese)
> > do not use ':' on its translation, but ':'
> >
> > So, if we go the way I proposed we'll need to move the ':' too.  I
> > still think it's an improvement.  But, optional to this series.
> 
> It is making it even worse.
> 
> Giving larger unit to work with to translators is usually a better
> for i18n than chopping a single logical message into multiple pieces
> and paste them together in the code, as your untranslated
> format-string (e.g., "%s%s:%s%.*s%s\n" we see above) will force the
> word order in the final output.
> 
> I think the patch at the beginning of the thread is more than
> serviceable, but if we wanted to improve on it, we should go in the
> opposite direction, e.g.
> 
> 	if (np == cp)
> 		fprintf(stderr, _("%shint:%s\n"),
> 			advise_get_color(ADVICE_COLOR_HINT),
> 			advise_get_color(ADVICE_COLOR_RESET));
> 	else
> 		fprintf(stderr, _("%shint: %.*s%s\n"),
> 			advise_get_color(ADVICE_COLOR_HINT),
> 			(int)(np - cp), cp,
> 			advise_get_color(ADVICE_COLOR_RESET));
> 
> to give translators flexibility to choose what kind of space to use
> (including "none") after "hint:".

diff --git a/advice.c b/advice.c
index a18bfe776f..a625316725 100644
--- a/advice.c
+++ b/advice.c
@@ -104,9 +104,9 @@ static void vadvise(const char *advice, int display_instructions,

        for (cp = buf.buf; *cp; cp = np) {
                np = strchrnul(cp, '\n');
-               fprintf(stderr, _("%shint:%s%.*s%s\n"),
+               fprintf(stderr, "%s%s%s%.*s%s\n",
                        advise_get_color(ADVICE_COLOR_HINT),
-                       (np == cp) ? "" : " ",
+                       (np == cp) ? _("hint:") : _("hint: "),
                        (int)(np - cp), cp,
                        advise_get_color(ADVICE_COLOR_RESET));
                if (*np)

;)

> 
> I am not going to do that, though, until/unless somebody complains
> and says "there is no inter-word spaces and it is more customary not
> to have a space after the translation of 'hint:' in my language".




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux