Hi,
On 2023-04-04 13:21:38 +0200, Alvaro Herrera wrote:
> On 2023-Apr-03, Andres Freund wrote:
>
> > Hm? That's what the _'s do. We build strings in parts in other places too.
>
> No, what _() does is mark each piece for translation separately. But a
> translation cannot be done on string pieces, and later have all the
> pieces appended together to form a full sentence. Let me show the
> "!terminating" case as example and grab some translations for it from
> src/backend/po/de.po:
>
> "invalidating" -> "... wird ungültig gemacht" (?)
>
> (if logical) " obsolete replication" -> " obsolete Replikation"
>
> " slot \"%s\" because it conflicts with recovery" -> " Slot \"%s\", weil sie in Konflikt mit Wiederherstellung
steht"
>
> If you just concatenate all the translated phrases together, the
> resulting string will make no sense; keep in mind the "obsolete
> replication" part may or not may not be there. And there's no way to
> make that work: even if you found an ordering of the English parts that
> allows you to translate each piece separately and have it make sense for
> German, the same won't work for Spanish or Japanese.
Ah, I misunderstood the angle you're coming from. Yes, the pieces need to be
reasonable fragments, instead of half-sentences.
Greetings,
Andres Freund