On 03.09.26 13:29, Daniel Gustafsson wrote:
On 3 Sep 2026, at 12:47, Peter Eisentraut <[email protected]> wrote:

Fix lack of message pluralization

Maybe I'm daft, but why is the message below pluralized since the %d parameter
is the same?

Do you mean the parameter is constant?

This is correct, but we have some precedent to pluralize these kinds of things anyway. Several reasons:

- Translators shouldn't have to look into the source code what the actual value is. (Or, in this case, even beyond the actual source code.)

- Maybe tomorrow someone changes this to PG_UINT16_MAX, and then it might have to be translated differently.

- Not in this specific case but in general: You might have the same message in different contexts but with different numbers.

--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -904,8 +904,10 @@ CreateTriggerFiringOn(const CreateTrigStmt *stmt, const 
char *queryString,
                 if (nargs > PG_INT16_MAX)
                         ereport(ERROR,
                                         errcode(ERRCODE_TOO_MANY_ARGUMENTS),
-                                       errmsg("triggers cannot have more than %d 
arguments",
-                                                  PG_INT16_MAX));
+                                       errmsg_plural("triggers cannot have more 
than %d argument",
+                                                                 "triggers cannot 
have more than %d arguments",
+                                                                 PG_INT16_MAX,
+                                                                 
PG_INT16_MAX));


Reply via email to