Thread: 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
Attachment
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