On 24/03/2024 16:57, Frédéric Marchal wrote: > Hi, > > In src/chown-core.h:95 (coreutils-9.5-pre1), the following message is > impossible to translate as it is created by concatenating string fragments: > > static inline void > emit_from_option_description (bool user) > { > printf (_("\ > --from=CURRENT_OWNER:CURRENT_GROUP\n\ > change the %sgroup of each file only if\n\ > its current owner and/or group match those > specified\n\ > here. Either may be omitted, in which case a > match\n\ > is not required for the omitted attribute\n\ > "), user ? "owner and/or " : ""); > } > > A translatable message must *never ever* be produced by concatenating > substrings. Even if the substrings are themselves translated, there is no > guaranties that the order of the words is the same in every language. > > There is, unfortunately, no easy solution that save keystrokes. It must be > written like this: > > if (user) > printf (_("\ > --from=CURRENT_OWNER:CURRENT_GROUP\n\ > change the owner and/or group of each file only if\n\ > its current owner and/or group match those > specified\n\ > here. Either may be omitted, in which case a > match\n\ > is not required for the omitted attribute\n\ > ")); > else > printf (_("\ > --from=CURRENT_OWNER:CURRENT_GROUP\n\ > change the group of each file only if\n\ > its current owner and/or group match those > specified\n\ > here. Either may be omitted, in which case a > match\n\ > is not required for the omitted attribute\n\ > ")); > > That make sense as both are distinct messages with different purposes. > > I also suspect that the two messages should be even more different than they > currently are. The message, when user is false, suspiciously contains one more > "owner and/or" that is not removed and it says "Either may be omitted" when > only the group is mentioned at the beginning of the message. The composed strings are accurate, but yes not translatable. The attached simplifies the description a little, so there is a single string to cater for both chown and chgrp. Marking this as done. thanks, Pádraig