Mark class_descr strings for translation
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: pgsql-hackers@lists.postgresql.org
Date: 2026-07-03T06:37:42Z
Lists: pgsql-hackers
Attachments
- v1-0001-Mark-object-class-descriptions-for-translation.patch (text/x-patch)
Hello,
While working on the translation, I encountered the following message.
pg_depend.c:809
> if (!HeapTupleIsValid(tuple))
> ereport(ERROR,
> (errcode(ERRCODE_UNDEFINED_OBJECT),
> errmsg("referenced %s was concurrently dropped",
> get_object_class_descr(classId))));
As you can see, it is a user-facing message, which embeds the return
value from get_object_class_descr(), which returns
ObjectPropertyType.class_descr, which is described as "for internal
error messages" in objectaddress.c.
As a result, the resulting message in Japanese becomes rather
unnatural.
> 参照先の foreign-data wrapper は並行して削除されました
The attached patch marks the class_descr strings for translation, so
that the message can be translated. I'm not entirely sure whether this
is the right direction, but since class_descr is already used in
messages intended to be read by humans, even if they are not
necessarily user-facing, it seems reasonable to me.
With that change, the message above becomes:
> 参照先の外部データラッパは並行して削除されました
One concern I have is that this may be somewhat easy to overlook,
since it requires remembering to wrap the return value in _() rather
than translating a string literal. That said, I don't expect this
pattern to be used very often, so I don't think it is a significant
problem.
By the way, I also noticed that we have two spellings, "foreign-data
wrapper" and "foreign data wrapper". I looked through the
documentation for the canonical spelling, but found both spellings
used on the same page, so I couldn't determine which one is preferred.
Regards,
--
Kyotaro Horiguchi
NTT Open Source Software Center