Dimitriy Ryazantcev <dimitriy.ryazantcev@xxxxxxxxx> writes: > Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@xxxxxxxxx> > --- > 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 ... > 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? > } 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"). > } > }