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. Frederic