Use singular number when appropriate
Hi,
I thought about using the dual, but wasn't sure how many languages
support it.
Best,
David.
--
David Fetter <david(at)fetter(dot)org> http://fetter.org/
Phone: +1 415 235 3778
Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate
Attachments:
v1-0001-Singular-number-when-appropriate.patchtext/x-diff; charset=us-asciiDownload
From 1fd595576c5972d8604adf77d1959008daebacb0 Mon Sep 17 00:00:00 2001
From: David Fetter <david@fetter.org>
Date: Mon, 14 Jun 2021 21:51:20 -0700
Subject: [PATCH v1] Singular number when appropriate
---
src/test/regress/pg_regress.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git src/test/regress/pg_regress.c src/test/regress/pg_regress.c
index 05296f7ee1..d6f9e829e8 100644
--- src/test/regress/pg_regress.c
+++ src/test/regress/pg_regress.c
@@ -2641,25 +2641,31 @@ regression_main(int argc, char *argv[],
*/
if (fail_count == 0 && fail_ignore_count == 0)
snprintf(buf, sizeof(buf),
- _(" All %d tests passed. "),
- success_count);
+ _(" %s %d test%s passed. "),
+ success_count == 1 ? "The" : "All",
+ success_count,
+ success_count == 1 ? "" : "s");
else if (fail_count == 0) /* fail_count=0, fail_ignore_count>0 */
snprintf(buf, sizeof(buf),
- _(" %d of %d tests passed, %d failed test(s) ignored. "),
+ _(" %d of %d test%s passed, %d failed test%s ignored. "),
success_count,
success_count + fail_ignore_count,
- fail_ignore_count);
+ success_count == 1 ? "" : "s",
+ fail_ignore_count,
+ fail_ignore_count == 1 ? "" : "s");
else if (fail_ignore_count == 0) /* fail_count>0 && fail_ignore_count=0 */
snprintf(buf, sizeof(buf),
- _(" %d of %d tests failed. "),
+ _(" %d of %d test%s failed. "),
fail_count,
- success_count + fail_count);
+ success_count + fail_count,
+ fail_count == 1 ? "" : "s");
else
/* fail_count>0 && fail_ignore_count>0 */
snprintf(buf, sizeof(buf),
- _(" %d of %d tests failed, %d of these failures ignored. "),
+ _(" %d of %d test%s failed, %d of these failures ignored. "),
fail_count + fail_ignore_count,
success_count + fail_count + fail_ignore_count,
+ fail_count + fail_ignore_count == 1 ? "" : "s",
fail_ignore_count);
putchar('\n');
--
2.31.1
On 15/06/2021 07:59, David Fetter wrote:
Hi,
I thought about using the dual, but wasn't sure how many languages
support it.if (fail_count == 0 && fail_ignore_count == 0)
snprintf(buf, sizeof(buf),
_(" %s %d test%s passed. "),
success_count == 1 ? "The" : "All",
success_count,
success_count == 1 ? "" : "s");
Constructing sentences like that is bad practice for translations. See
https://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html.
- Heikki
On Tue, Jun 15, 2021 at 04:59:24AM +0000, David Fetter wrote:
Hi,
I thought about using the dual, but wasn't sure how many languages
support it.
I don't think that you can assume that appending something will work in all
languages. Note that it also doesn't always work in english (e.g. this/these),
as seen in this inconsistent change:
- _(" %d of %d tests failed, %d of these failures ignored. "),
+ _(" %d of %d test%s failed, %d of these failures ignored. "),
On Tue, 2021-06-15 at 04:59 +0000, David Fetter wrote:
I thought about using the dual, but wasn't sure how many languages
support it.
I think none of the languages for which we cater uses the dual.
But I guess you were joking, since the tests are not translated ...
if (fail_count == 0 && fail_ignore_count == 0) snprintf(buf, sizeof(buf), - _(" All %d tests passed. "), - success_count); + _(" %s %d test%s passed. "), + success_count == 1 ? "The" : "All", + success_count, + success_count == 1 ? "" : "s");
... and that wouldn't be translatable.
Yours,
Laurenz Albe
On Tue, Jun 15, 2021 at 09:37:11AM +0200, Laurenz Albe wrote:
On Tue, 2021-06-15 at 04:59 +0000, David Fetter wrote:
I thought about using the dual, but wasn't sure how many languages
support it.I think none of the languages for which we cater uses the dual. But
I guess you were joking, since the tests are not translated ...
I was.
if (fail_count == 0 && fail_ignore_count == 0) snprintf(buf, sizeof(buf), - _(" All %d tests passed. "), - success_count); + _(" %s %d test%s passed. "), + success_count == 1 ? "The" : "All", + success_count, + success_count == 1 ? "" : "s");... and that wouldn't be translatable.
Thanks, will rearrange.
Best,
David.
--
David Fetter <david(at)fetter(dot)org> http://fetter.org/
Phone: +1 415 235 3778
Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate