On 12.01.23 20:46, Andrey Borodin wrote:
>> On Sun, Dec 18, 2022 at 12:53:31PM -0800, Andrey Borodin wrote:
>>> I've rewritten this part to correctly report all timeouts that did
>>> happen. However there's now a tricky comma-formatting code which was
>>> tested only manually.
>> I suspect this will make translation difficult.
> I use special functions for this like _()
>
> char* lock_reason = lock_timeout_occurred ? _("lock timeout") : "";
>
> and then
> ereport(ERROR, (errcode(err_code),
> errmsg("canceling statement due to %s%s%s%s%s", lock_reason, comma1,
> stmt_reason, comma2, tx_reason)));
>
> I hope it will be translatable...
No, you can't do that. You have to write out all the strings separately.