В письме от понедельник, 1 июля 2019 г. 14:06:28 MSK пользователь Alvaro Herrera написал: > It strikes me that the way to avoid sentence construction is to have > each enum reloption declare a string that it uses to list the values it > accepts. So for example we would have > > +#define GIST_OPTION_BUFFERING_ENUM_DEF { \ > + { "on", GIST_OPTION_BUFFERING_ON }, \ > + { "off", GIST_OPTION_BUFFERING_OFF }, \ > + { "auto", GIST_OPTION_BUFFERING_AUTO }, \ > + { (const char *) NULL, 0 } \ > +} > + > + GistBufferingValidMsg = gettext_noop("Valid values are \"on\", \"off\", > and \"auto\"."); > > I think that's the most contentious point on this patch at this point > (though I may be misremembering).
I actually removed "and" from the list and let it be simple coma separated list ERROR: invalid value for "check_option" option DETAIL: Valid values are: "local", "cascaded". Now we can translate left part, and subst list to the right part errdetail("Valid values are: %s.", buf.data))); It is not that nice as before, but quite acceptable, as I see it. You do not see it that way?