Thread: [HACKERS] translatable string fixes

[HACKERS] translatable string fixes

From
Alvaro Herrera
Date:
I noticed this entry while updating the translation for 9.6:

#: catalog/index.c:3456 commands/vacuumlazy.c:1345 commands/vacuumlazy.c:1421
#: commands/vacuumlazy.c:1610 commands/vacuumlazy.c:1820
#, c-format
msgid "%s."
msgstr "%s."

All of these correspond to errdetail printing pg_rusage_show() output.
I think these are all bogus and should be changed to
errdetail_internal() instead.  Surely if we want pg_rusage_show() output
to be translated, we should apply _() to the snprintf() call inside that
function.

At the same time, trying to append a period in the callers seems
pointless; if we really feel a strong need for that period I suggest we
add a flag to pg_rusage_show() to indicate whether to add it or not,
though my inclination is not to bother.

I also attach style fixes for other issues I found.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

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

Attachment

Re: [HACKERS] translatable string fixes

From
Alvaro Herrera
Date:
It took me a very long time to figure out how to translate these 9.6-new
strings in the AM validate routines:

msgid "gin operator family \"%s\" contains support procedure %s with cross-type registration"

The problem I had was that the term "cross-type registration" is not
used anywhere else, it's not clear what it means, and (worst from my
POV) I couldn't think of any decent phrasing in Spanish for it.  After
staring at the code for a while, I translated them roughly as:

"gin operator family %s contains support procedure %s registered with differing types"

which I think is a tad clearer ... but as a user confronted with such a
message, I would be at a complete loss on what to do about it.

Maybe we can use this phrasing:
"gin operator family %s contains support procedure %s registered with different left and right types"


The other complaint I have about this one and also other amvalidate
functions is the hardcoded AM name, so it's actually one string per AM,
which is annoying (a total of twenty-something messages which are
actually only four or five different ones).  Ignoring the second part of
the phrase now, we could use this:
  "operator family %s of access method %s contains support procedure %s with cross-type registration"

Thoughts?

--
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Re: [pgsql-translators] [HACKERS] translatable string fixes

From
Daniele Varrazzo
Date:
On Tue, May 23, 2017 at 1:15 AM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:
> It took me a very long time to figure out how to translate these 9.6-new
> strings in the AM validate routines:
>
> msgid "gin operator family \"%s\" contains support procedure %s with cross-type registration"
>
> The problem I had was that the term "cross-type registration" is not
> used anywhere else, it's not clear what it means, and (worst from my
> POV) I couldn't think of any decent phrasing in Spanish for it.  After
> staring at the code for a while, I translated them roughly as:
>
> "gin operator family %s contains support procedure %s registered with differing types"
>
> which I think is a tad clearer ... but as a user confronted with such a
> message, I would be at a complete loss on what to do about it.

I did something similar, translating the equivalent of "across
different types". Had to look at the source code to understand the
meaning of the sentence. Maybe cross-type registration is a bit too
cryptic.


> Maybe we can use this phrasing:
> "gin operator family %s contains support procedure %s registered with different left and right types"
>
>
> The other complaint I have about this one and also other amvalidate
> functions is the hardcoded AM name, so it's actually one string per AM,
> which is annoying (a total of twenty-something messages which are
> actually only four or five different ones).  Ignoring the second part of
> the phrase now, we could use this:
>   "operator family %s of access method %s contains support procedure %s with cross-type registration"

Yup, that was boring and error-prone :\


-- Daniele


Re: [HACKERS] translatable string fixes

From
Tom Lane
Date:
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> It took me a very long time to figure out how to translate these 9.6-new
> strings in the AM validate routines:
> msgid "gin operator family \"%s\" contains support procedure %s with cross-type registration"
> ...
> Maybe we can use this phrasing:
> "gin operator family %s contains support procedure %s registered with different left and right types"

OK with me, or maybe better "support procedure %s with different left and
right input types".  I doubt "registered" adds much.

> The other complaint I have about this one and also other amvalidate
> functions is the hardcoded AM name, so it's actually one string per AM,
> which is annoying (a total of twenty-something messages which are
> actually only four or five different ones).  Ignoring the second part of
> the phrase now, we could use this:
>   "operator family %s of access method %s contains support procedure %s with cross-type registration"

If that seems better to the actual translators, it's OK with me. It's
not real clear where is the boundary between combining near-duplicate
messages and assembling messages at runtime.

            regards, tom lane