From b6248b18b98e9b2aebbf0908228dc2efc0eacd08 Mon Sep 17 00:00:00 2001 From: Tomas Roun Date: Thu, 16 Jan 2025 16:04:36 +0100 Subject: [PATCH] Fix python checker for languages with nplurals=1 --- babel/messages/checkers.py | 2 ++ tests/messages/test_checkers.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/babel/messages/checkers.py b/babel/messages/checkers.py index 50db2341d..cf0fbcd39 100644 --- a/babel/messages/checkers.py +++ b/babel/messages/checkers.py @@ -58,6 +58,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 5b26a4988..01194e467 100644 --- a/tests/messages/test_checkers.py +++ b/tests/messages/test_checkers.py @@ -343,6 +343,7 @@ def test_6_num_plurals_checkers(): (('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(msgid, msgstr): @@ -359,7 +360,6 @@ def test_python_format_invalid(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', '')),