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