threads / patch / 51358

patchl10n: localizable upload progress messages

Subject: [PATCH] l10n: localizable upload progress messages

## tl;dr

4 messages between Jun 21, 2019 and Jun 24, 2019. Diffs are folded; open one to read it.

replies: 3people: 3as markdown or json

Dimitriy Ryazantcev· Jun 21, 2019, 18:50 UTC · lore
Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
---
 progress.c | 3 ++-
 strbuf.c   | 8 ++++----
 2 files changed, 6 insertions(+), 5 deletions(-)
Show changes to 2 files +6 −5

progress.c, strbuf.c

diff --git a/progress.c b/progress.c
index a2e8cf64a8..3d47c06495 100644
--- a/progress.c
+++ b/progress.c
@@ -151,7 +151,8 @@ static void throughput_string(struct strbuf *buf, uint64_t total,
 	strbuf_humanise_bytes(buf, total);
 	strbuf_addstr(buf, " | ");
 	strbuf_humanise_bytes(buf, rate * 1024);
-	strbuf_addstr(buf, "/s");
+	/* TRANSLATORS: per second */
+	strbuf_addstr(buf, _("/s"));
 }
 
 void display_throughput(struct progress *progress, uint64_t total)
diff --git a/strbuf.c b/strbuf.c
index 0e18b259ce..c309df1f5e 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -814,19 +814,19 @@ void strbuf_addstr_urlencode(struct strbuf *sb, const char *s,
 void strbuf_humanise_bytes(struct strbuf *buf, off_t bytes)
 {
 	if (bytes > 1 << 30) {
-		strbuf_addf(buf, "%u.%2.2u GiB",
+		strbuf_addf(buf, _("%u.%2.2u GiB"),
 			    (unsigned)(bytes >> 30),
 			    (unsigned)(bytes & ((1 << 30) - 1)) / 10737419);
 	} else if (bytes > 1 << 20) {
 		unsigned x = bytes + 5243;  /* for rounding */
-		strbuf_addf(buf, "%u.%2.2u MiB",
+		strbuf_addf(buf, _("%u.%2.2u MiB"),
 			    x >> 20, ((x & ((1 << 20) - 1)) * 100) >> 20);
 	} else if (bytes > 1 << 10) {
 		unsigned x = bytes + 5;  /* for rounding */
-		strbuf_addf(buf, "%u.%2.2u KiB",
+		strbuf_addf(buf, _("%u.%2.2u KiB"),
 			    x >> 10, ((x & ((1 << 10) - 1)) * 100) >> 10);
 	} else {
-		strbuf_addf(buf, "%u bytes", (unsigned)bytes);
+		strbuf_addf(buf, _("%u bytes"), (unsigned)bytes);
 	}
 }
 
-- 
2.22.0
Junio C Hamano· Jun 21, 2019, 19:18 UTC · re: Dimitriy Ryazantcev · lore

Re: [PATCH] l10n: localizable upload progress messages

Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com> writes:
Show 18 quoted lines
> Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
> ---
>  progress.c | 3 ++-
>  strbuf.c   | 8 ++++----
>  2 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/progress.c b/progress.c
> index a2e8cf64a8..3d47c06495 100644
> --- a/progress.c
> +++ b/progress.c
> @@ -151,7 +151,8 @@ static void throughput_string(struct strbuf *buf, uint64_t total,
>  	strbuf_humanise_bytes(buf, total);
>  	strbuf_addstr(buf, " | ");
>  	strbuf_humanise_bytes(buf, rate * 1024);
> -	strbuf_addstr(buf, "/s");
> +	/* TRANSLATORS: per second */
> +	strbuf_addstr(buf, _("/s"));
>  }

Hpmh, if it is OK to assume that in all human languages it is OK to express the reate as <number> followed by translated "per second", without allowing the order from getting changed, then ...

Show 5 quoted lines
>  	if (bytes > 1 << 30) {
> -		strbuf_addf(buf, "%u.%2.2u GiB",
> +		strbuf_addf(buf, _("%u.%2.2u GiB"),
>  			    (unsigned)(bytes >> 30),
>  			    (unsigned)(bytes & ((1 << 30) - 1)) / 10737419);

wouldn't it make more sense to split GiB, MiB, KiB and "bytes" units out of these messages, and ask only these unit names, without the %u.%2.2u number formats, to get translated by the localization team?

Show 13 quoted lines
>  	} else if (bytes > 1 << 20) {
>  		unsigned x = bytes + 5243;  /* for rounding */
> -		strbuf_addf(buf, "%u.%2.2u MiB",
> +		strbuf_addf(buf, _("%u.%2.2u MiB"),
>  			    x >> 20, ((x & ((1 << 20) - 1)) * 100) >> 20);
>  	} else if (bytes > 1 << 10) {
>  		unsigned x = bytes + 5;  /* for rounding */
> -		strbuf_addf(buf, "%u.%2.2u KiB",
> +		strbuf_addf(buf, _("%u.%2.2u KiB"),
>  			    x >> 10, ((x & ((1 << 10) - 1)) * 100) >> 10);
>  	} else {
> -		strbuf_addf(buf, "%u bytes", (unsigned)bytes);
> +		strbuf_addf(buf, _("%u bytes"), (unsigned)bytes);

This needs the Q_() to deal with plural (i.e. in en, between "byte" and "bytes").

>  	}
>  }
Duy Nguyen· Jun 22, 2019, 03:10 UTC · re: Junio C Hamano · lore

Re: [PATCH] l10n: localizable upload progress messages

On Sat, Jun 22, 2019 at 2:18 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 25 quoted lines
>
> Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com> writes:
>
> > Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
> > ---
> >  progress.c | 3 ++-
> >  strbuf.c   | 8 ++++----
> >  2 files changed, 6 insertions(+), 5 deletions(-)
> >
> > diff --git a/progress.c b/progress.c
> > index a2e8cf64a8..3d47c06495 100644
> > --- a/progress.c
> > +++ b/progress.c
> > @@ -151,7 +151,8 @@ static void throughput_string(struct strbuf *buf, uint64_t total,
> >       strbuf_humanise_bytes(buf, total);
> >       strbuf_addstr(buf, " | ");
> >       strbuf_humanise_bytes(buf, rate * 1024);
> > -     strbuf_addstr(buf, "/s");
> > +     /* TRANSLATORS: per second */
> > +     strbuf_addstr(buf, _("/s"));
> >  }
>
> Hpmh, if it is OK to assume that in all human languages it is OK to
> express the reate as <number> followed by translated "per second",
> without allowing the order from getting changed, then ...

Probably not (but I don't know any language that is not ok with this). I would just add strbuf_humanise_rate() that prints "GiB/s", "MiB/s"... Then we probably should print "bytes/second". This will print "bytes/s" which looks just weird.

Show 9 quoted lines
> >       if (bytes > 1 << 30) {
> > -             strbuf_addf(buf, "%u.%2.2u GiB",
> > +             strbuf_addf(buf, _("%u.%2.2u GiB"),
> >                           (unsigned)(bytes >> 30),
> >                           (unsigned)(bytes & ((1 << 30) - 1)) / 10737419);
>
> wouldn't it make more sense to split GiB, MiB, KiB and "bytes" units
> out of these messages, and ask only these unit names, without the
> %u.%2.2u number formats, to get translated by the localization team?

That assumes all languages will print the unit after the number. I guess that is ok and it helps share code if we add strbuf_humanise_rate() above because only the unit part changes.

-- 
Duy
Junio C Hamano· Jun 24, 2019, 17:11 UTC · re: Duy Nguyen · lore

Re: [PATCH] l10n: localizable upload progress messages

Duy Nguyen <pclouds@gmail.com> writes:
Show 22 quoted lines
>> Hpmh, if it is OK to assume that in all human languages it is OK to
>> express the reate as <number> followed by translated "per second",
>> without allowing the order from getting changed, then ...
>
> Probably not (but I don't know any language that is not ok with this).
> I would just add strbuf_humanise_rate() that prints "GiB/s",
> "MiB/s"... Then we probably should print "bytes/second". This will
> print "bytes/s" which looks just weird.
>
>> >       if (bytes > 1 << 30) {
>> > -             strbuf_addf(buf, "%u.%2.2u GiB",
>> > +             strbuf_addf(buf, _("%u.%2.2u GiB"),
>> >                           (unsigned)(bytes >> 30),
>> >                           (unsigned)(bytes & ((1 << 30) - 1)) / 10737419);
>>
>> wouldn't it make more sense to split GiB, MiB, KiB and "bytes" units
>> out of these messages, and ask only these unit names, without the
>> %u.%2.2u number formats, to get translated by the localization team?
>
> That assumes all languages will print the unit after the number. I
> guess that is ok and it helps share code if we add
> strbuf_humanise_rate() above because only the unit part changes.

I think this is the direction I expected the discussion to go in. It seems that the other subthread went the other way, though.

← back to recent threads