describe: use Q_() for pluralization of commit and tag counts
PATCH 1/1 describe: use Q_() for pluralization of commit and tag counts
From: Raj Ojha <[email protected]>
In describe_commit(), debug messages print the number of commits traversed and the number of candidate tags found using basic _() localization format strings:
_("traversed %lu commits\n")
_("found %i tags; gave up search at %s\n")
Because these messages display an integer count of items, using _() fails to account for languages whose pluralization rules differ from English (such as languages with multiple plural forms).
Replace these calls with Q_() to allow gettext (ngettext()) to choose the grammatically appropriate singular or plural string depending on the integer count.
---
describe: use Q_() for pluralization of commit and tag counts
In describe_commit(), debug messages print the number of commits traversed and the number of candidate tags found using basic _() localization format strings:
_("traversed %lu commits\n")
_("found %i tags; gave up search at %s\n")
Because these messages display an integer count of items, using _() fails to account for languages whose pluralization rules differ from English (such as languages with multiple plural forms).
Replace these calls with Q_() to allow gettext (ngettext()) to choose the grammatically appropriate singular or plural string depending on the integer count.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2257%2FRajojha-1%2Fdescribe-q-pluralize-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2257/Rajojha-1/describe-q-pluralize-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/2257
builtin/describe.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
builtin/describe.c +8 -2
@@ -481,10 +481,16 @@ static void describe_commit(struct commit *cmit, struct strbuf *dst) label_width,_ (prio_names[t->name->prio]), t->depth, t->name->path); } -fprintf (stderr,_ ("traversed %lu commits\n" ), seen_commits); +fprintf (stderr, +Q_ ("traversed %lu commit\n" , +"traversed %lu commits\n" , + seen_commits), + seen_commits);if (gave_up_on) {fprintf (stderr, -_ ("found %i tags; gave up search at %s\n" ), +Q_ ("found %i tag; gave up search at %s\n" , +"found %i tags; gave up search at %s\n" , + max_candidates), max_candidates,oid_to_hex (&gave_up_on->object.oid)); }
base-commit: 6de20f6092dcf9bdb1c8efe03db4b70c82b423dd
Signature · 1 line
gitgitgadget
Quoted 13 lines · Raj Ojha via GitGitGadget
From: Raj Ojha <[email protected]>
In
describe_commit(), debug messages print the number of commits traversed and the number of candidate tags found using basic_()localization format strings:
_("traversed %lu commits\n")
_("found %i tags; gave up search at %s\n")Because these messages display an integer count of items, using
_()fails to account for languages whose pluralization rules differ from English (such as languages with multiple plural forms).
Quoted 6 lines
Replace these calls with
Q_()to allow gettext (ngettext()) to choose the grammatically appropriate singular or plural string depending on the integer count.Signed-off-by Raj Ojha <[email protected]>---
Is this convergent evolution or something? The similarity to
https://lore.kernel.org/git/[email protected]/
is striking.
It's not like anybody who sent a change on a piece of code automatically owns the area to be improved, but we would love to see more collaboration and a better use of the lore archive to find similar effort being made before people send patches.
https://lore.kernel.org/git/?q=describe+Q_
Quoted 10 lines
describe: use
Q_()for pluralization of commit and tag countsIn
describe_commit(), debug messages print the number of commits traversed and the number of candidate tags found using basic_()localization format strings:
_("traversed %lu commits\n")
_("found %i tags; gave up search at %s\n")
Quoted 7 lines
Because these messages display an integer count of items, using
_()fails to account for languages whose pluralization rules differ from English (such as languages with multiple plural forms).Replace these calls with
Q_()to allow gettext (ngettext()) to choose the grammatically appropriate singular or plural string depending on the integer count.
You do not want to repeat your log message below the three-dash line. It wastes everybody's time.
Quoted 13 lines
builtin/describe.c +4
-1@@ -481,10 +481,16 @@ static void describe_commit(struct commit *cmit, struct strbuf *dst) label_width,_ (prio_names[t->name->prio]), t->depth, t->name->path); } -fprintf (stderr,_ ("traversed %lu commits\n" ), seen_commits); + fprintf(stderr, + Q_("traversed %lu commit\n", + "traversed %lu commits\n", + seen_commits),
builtin/describe.c static void describe_commit(struct commit *cmit, struct strbuf *dst) · line 496
Quoted 10 lines
builtin/describe.c +4
-1+ seen_commits);if (gave_up_on) {fprintf (stderr, -_ ("found %i tags; gave up search at %s\n" ), +Q_ ("found %i tag; gave up search at %s\n" , +"found %i tags; gave up search at %s\n" , + max_candidates), max_candidates,oid_to_hex (&gave_up_on->object.oid)); }
Both the log message and patch text look cleanly done.
Thanks.
Quoted 7 lines · Raj Ojha via GitGitGadget
In
describe_commit(), debug messages print the number of commits traversed and the number of candidate tags found using basic_()localization format strings:
_("traversed %lu commits\n")
_("found %i tags; gave up search at %s\n")
i wonder why _debug_ messages are i18n'd in the first place? their target audience would usually be the git developers. or is this just a misnomer?
Quoted 11 lines · Oswald Buddenhagen
Quoted 7 lines · Raj Ojha via GitGitGadget
In
describe_commit(), debug messages print the number of commits traversed and the number of candidate tags found using basic_()localization format strings:
_("traversed %lu commits\n")
_("found %i tags; gave up search at %s\n")i wonder why _debug_ messages are i18n'd in the first place? their target audience would usually be the git developers. or is this just a misnomer?
Funny that great minds think alike.
https://lore.kernel.org/git/[email protected]/
which led to
https://lore.kernel.org/git/[email protected]/
;-)