diff --git a/babel/messages/checkers.py b/babel/messages/checkers.py index 072a48a98..a65603150 100644 --- a/babel/messages/checkers.py +++ b/babel/messages/checkers.py @@ -57,6 +57,8 @@ def python_format(catalog: Catalog | None, message: Message) -> None: if msgstrs[0]: _validate_format(msgids[0], msgstrs[0]) if message.pluralizable: + if msgstrs[0] and len(msgstrs) == 1: + _validate_format(msgids[1], msgstrs[0]) for msgstr in msgstrs[1:]: if msgstr: _validate_format(msgids[1], msgstr) diff --git a/tests/messages/test_checkers.py b/tests/messages/test_checkers.py index e4559f7e9..824495483 100644 --- a/tests/messages/test_checkers.py +++ b/tests/messages/test_checkers.py @@ -339,6 +339,7 @@ class TestPythonFormat: (('foo %s', 'bar'), ('foo')), (('foo %s', 'bar %d'), ('foo %s', 'bar %d', 'baz')), (('foo %s', 'bar %d'), ('foo %s', 'bar %d', 'baz %d', 'qux')), + (('foo', 'bar %s'), ('foo')), ]) def test_python_format_invalid(self, msgid, msgstr): msg = Message(msgid, msgstr) @@ -351,7 +352,6 @@ def test_python_format_invalid(self, msgid, msgstr): ('foo %s', ''), (('foo %s', 'bar %d'), ('foo %s', 'bar %d')), (('foo %s', 'bar %d'), ('foo %s', 'bar %d', 'baz %d')), - (('foo', 'bar %s'), ('foo')), (('foo', 'bar %s'), ('', '')), (('foo', 'bar %s'), ('foo', '')), (('foo %s', 'bar %d'), ('foo %s', '')),