On Tue, Dec 20, 2011 at 02:30:08PM +0100, Magnus Hagander wrote:
> That said - can someone who knows the translation stuff better than me
> comment on if this is actually going to be translatable, or if it
> violates too many translation rules?

> +pg_signal_backend(int pid, int sig, bool allow_same_role, const char 
> *actionstr, const char *hint)

> +                     ereport(ERROR,
> +                                     
> +                                      errmsg("must be superuser to %s other 
> server processes", actionstr),
> +                                      errhint("%s", hint)));

> +     PG_RETURN_BOOL(pg_signal_backend(PG_GETARG_INT32(0), SIGTERM, false,
> +                                                                      
> gettext_noop("terminate"),
> +                                                                      
> gettext_noop("You can cancel your own processes with pg_cancel_backend().")));
>  }

You need "errhint("%s", _(hint))" or "errhint(hint)" to substitute the
translation at runtime; only the printf-pattern string gets an automatic
message catalog lookup.

Regarding the other message, avoid composing a translated message from
independently-translated parts.  The translator sees this:

#: utils/adt/misc.c:110
#, c-format
msgid "must be superuser to %s other server processes"
msgstr ""

#: utils/adt/misc.c:166
msgid "terminate"
msgstr ""

#: utils/adt/misc.c:167
msgid "You can cancel your own processes with pg_cancel_backend()."
msgstr ""

He'll probably need to read the code to see how the strings go together.  If
we add an alternative to "terminate", not all languages will necessarily have
a translation of the outer message that works for both inner fragments.

Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to