On Wed, Apr 1, 2026 at 10:52 PM Álvaro Herrera <[email protected]> wrote: > > On 2026-Apr-01, Peter Smith wrote: > > > Hi. > > > > As originally reported [1] in the EXCEPT (TABLE ...) thread, I felt > > the _() gettext macro is mis-used when it contains nothing but a > > quoted format string. > > No, you feel wrong -- this is necessary so that the translator has > control over the quoting style of a list of items. Not all translations > use double quoting. Some examples from different language files: > > msgstr "unbekannte Komprimierungsoption: »%s«" > msgstr "opción de compresión no reconocida: «%s»" > msgstr "option de compression inconnue : « %s »" > msgstr "tidak dapat menentukan encoding untuk lokal « %s » : codesetnya > adalah « %s »" >
The explanation [1] that even the comma separators and the quotes are translatable parts of the message reminded me to revisit the `GetPublicationsStr` function. This function builds a comma-separated list of publication names. It is called in 2 scenarios: 1. to construct a pubname list to be included in some SQL (here, parameter quote_literal=true) 2. to construct a pubname list to be included in some error message (here, parameter quote_literal=false). In hindsight, it looks like this function has been broken since it was originally implemented 4 yrs ago (8f2e2bb), because it does not allow translation of commas and quotes when the result is being used for error messages. PSA a patch to fix that. ====== [1] https://www.postgresql.org/message-id/202604011144.jeo56tazdx6z%40alvherre.pgsql Kind Regards, Peter Smith. Fujitsu Australia
v1-0001-GetPublicationsStr-i18n-support.patch
Description: Binary data
