[New-bugs-announce] [issue44268] gettext: deprecate selecting plural form by fractional numbers (part 2)
report at bugs.python.org
Sun May 30 05:44:10 EDT 2021
New submission from Serhiy Storchaka <storchaka+cpython at gmail.com>:
Non-integer numbers in GNUTranslations.ngettext() are deprecated since 3.7 (see issue28692 for rationale). But I forget to add deprecation warning for default implementation (which just tests n == 1) and forget to add the "deprecated" directive in the module documentation. So currently
gettext("Elapsed: %s second", "Elapsed: %s seconds", 1.25)
will emit a warning if there is a translation for these strings, and no warnings if it is not translated yet, or translation file is not found, or null translation is used.
It is now time to convert warnings to errors, but it would be error-prone since many developers do not have translations yet when write a code or use no translation (and fallback to hard-coded English).
The safest way is to add deprecation warnings also for default and fallback implementation before turning all of them into errors. Pablo, can we add these warnings in 3.10?
components: Library (Lib)
nosy: pablogsal, serhiy.storchaka
title: gettext: deprecate selecting plural form by fractional numbers (part 2)
versions: Python 3.10, Python 3.11
Python tracker <report at bugs.python.org>
More information about the New-bugs-announce