[Development] Alternative plural forms for English (and similar)

Nicolas Fella nicolas.fella at gmx.de
Tue May 5 13:56:04 CEST 2026


Hi,

I agree that this is a case-by-case decision, depending on the 
application and context. That doesn't contradict making it part of the 
translation infrastructure though, does it?

A translator can always make a case-by-case decision depending on the 
application and context, and choose which form is appropriate. It's a 
bit of extra work for the translator, which is why I would suggest to 
make this opt-in somehow.

Since you mentioned CLDR, it acknowledges this in 
https://unicode.org/reports/tr35/tr35-numbers.html:

 > English does not have a separate plural category for “zero”, because 
it does not require a different message for “0”. For example, the same 
message can be used below, with just the numeric placeholder changing.

 1. You have 3 friends online.
 2. You have 0 friends online.

 > However, across many languages it is commonly more natural to express 
"0" messages with a negative (“None of your friends are online.”) and 
"1" messages also with an alternate form “You have a friend online.”. 
Thus pluralized message APIs should also offer the ability to specify at 
least the 0 and 1 cases explicitly; developers can use that ability 
whenever these values might occur in a placeholder.

I guess it depends on how one interprets the last sentence whether it 
makes sense to have this as part of the translation infrastructure.

Cheers

Nico


On 5/4/26 10:32 AM, Kai Köhne wrote:
> Hi Nicolas,
>
> Interesting! I see that, in a lot of UI texts, 0 is indeed a special 
> case. It indeeds feels more natural to say “No files copied” than “0 
> files copied”.
>
> This is not always the case though. “Distance to target: 0 kilometers” 
> is arguably better than “Distance to target: No kilometers”.
>
> Then there is cases where you might still go for numbers, for instance 
> if it helps keeping things consistent: It’s at least not clear cut 
> that “3 errors, no warnings” is preferred over “3 errors, 0 warnings”.
>
> All in all, I therefore think that the special handling of 0 is a 
> choice that depends on style and context, and not a hard rule defined 
> in the language. As such, I don’t think it would be a good fit for the 
> plural infrastructure we currently  have in QTranslator, which is 
> based on objective properties of the languages, as defined e.g. in the 
> CDLR.
>
> Having said that: Do you have ideas how to better support this use 
> case without just changing the plural rules? How would you approach it 
> , keeping in mind that we have to keep backwards compatibility?
>
> Kai
>
> *
>
> Confidential
>
> From: *Development <development-bounces at qt-project.org> on behalf of 
> Nicolas Fella via Development <development at qt-project.org>
> *Date: *Thursday, 30. April 2026 at 20:36
> *To: *development at qt-project.org <development at qt-project.org>
> *Subject: *[Development] Alternative plural forms for English (and 
> similar)
>
> Hi,
>
> it should be pretty well-known that plurals are a complex topic when it
> comes to translating. While languages like English and German generally
> only distinguish between Singular and Plural, other languages can have
> more complex rules. Qt supports all of that, so far so good.
>
> However, even with English or German there are more subtleties involved.
> When having zero items of something the plural form is used: "0 unread
> messages" is a perfectly grammatical sentence. It often reads nicer to
> instead have "No unread messages" instead though. It's possible to
> achieve that with Qt by an additional if check and using a different
> string, but this doesn't scale with the number of strings to be
> translated and might clash with languages with more complex rules.
>
> Instead it would be nice if Qt's translation system supported this
> natively. From the translator's point of view this effectively becomes
> an additional plural form (n==0). I've had a look at how hard it would
> be to extend Qt to support that. It appears that the QtCore side is
> flexible enough to handle this and reads the rules from the qm file, so
> it's "just" a matter of teaching lupdate/lrelease about the alternative
> plural rules. I've successfully hacked those to change the rules for
> English-ish languages to achieve this, but it would probably need to be
> opt-in in order to not break existing users that don't want this.
>
> Before I spend more time on this, is this something that Qt would be
> willing to support/accept? Are there any other considerations that I
> should be aware of?
>
> Cheers
>
> Nico
>
> --
> Development mailing list
> Development at qt-project.org
> https://lists.qt-project.org/listinfo/development
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20260505/f9c7a62d/attachment.htm>


More information about the Development mailing list