mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
gh-88434: Emit deprecation warnings for non-integer numbers in gettext if translation not found (GH-110574)
This commit is contained in:
parent
45cfabb842
commit
38bd2c520a
4 changed files with 32 additions and 12 deletions
|
|
@ -171,6 +171,13 @@ def _as_int(n):
|
|||
except TypeError:
|
||||
raise TypeError('Plural value must be an integer, got %s' %
|
||||
(n.__class__.__name__,)) from None
|
||||
return _as_int2(n)
|
||||
|
||||
def _as_int2(n):
|
||||
try:
|
||||
return operator.index(n)
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
import warnings
|
||||
frame = sys._getframe(1)
|
||||
|
|
@ -288,6 +295,7 @@ class NullTranslations:
|
|||
def ngettext(self, msgid1, msgid2, n):
|
||||
if self._fallback:
|
||||
return self._fallback.ngettext(msgid1, msgid2, n)
|
||||
n = _as_int2(n)
|
||||
if n == 1:
|
||||
return msgid1
|
||||
else:
|
||||
|
|
@ -301,6 +309,7 @@ class NullTranslations:
|
|||
def npgettext(self, context, msgid1, msgid2, n):
|
||||
if self._fallback:
|
||||
return self._fallback.npgettext(context, msgid1, msgid2, n)
|
||||
n = _as_int2(n)
|
||||
if n == 1:
|
||||
return msgid1
|
||||
else:
|
||||
|
|
@ -587,6 +596,7 @@ def dngettext(domain, msgid1, msgid2, n):
|
|||
try:
|
||||
t = translation(domain, _localedirs.get(domain, None))
|
||||
except OSError:
|
||||
n = _as_int2(n)
|
||||
if n == 1:
|
||||
return msgid1
|
||||
else:
|
||||
|
|
@ -606,6 +616,7 @@ def dnpgettext(domain, context, msgid1, msgid2, n):
|
|||
try:
|
||||
t = translation(domain, _localedirs.get(domain, None))
|
||||
except OSError:
|
||||
n = _as_int2(n)
|
||||
if n == 1:
|
||||
return msgid1
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue