>From 532889fa085353875cd4a747f35ab9c8e8d559ac Mon Sep 17 00:00:00 2001 From: Bernhard Voelker Date: Thu, 7 Feb 2013 00:10:50 +0100 Subject: [PATCH] xargs: split usage text to help translators Smaller chunks are easier to handle for translators, ideally one msgid per option. Separate them. Clarify -l option: separate from -L to emphasize that MAX-LINES is optional for the -l option. * xargs/xargs.c (usage): Define optdescr as array of message strings with one item per option. Refine the messages to adapt to the common way: change the start of each option's description to lower case, and do not use periods at the end, use semicolons where needed. Loop over the above array to output the usage text of each option. Reported by Benno Schulenberg in http://lists.gnu.org/archive/html/bug-findutils/2013-02/msg00017.html --- xargs/xargs.c | 101 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 65 insertions(+), 36 deletions(-) diff --git a/xargs/xargs.c b/xargs/xargs.c index 5fd93cd..b93e71d 100644 --- a/xargs/xargs.c +++ b/xargs/xargs.c @@ -1584,46 +1584,75 @@ parse_num (char *str, int option, long int min, long int max, int fatal) static void usage (FILE *stream) { - fprintf (stream, _("\ -Usage: %s [OPTION]... COMMAND INITIAL-ARGS...\n\ -Run COMMAND with arguments INITIAL-ARGS and more arguments read from input.\n"), - program_name); - fprintf (stream, _("\n\ -Mandatory arguments to long options are mandatory for short options too.\n\ -Non-mandatory arguments are indicated by [square brackets]\n\ - -0, --null Items are separated by a null, not whitespace.\n\ - Disables quote and backslash processing\n\ - -a, --arg-file=FILE Read arguments from FILE, not standard input\n\ - -d, --delimiter=CHARACTER Input items are separated by CHARACTER, not by\n\ - blank space. Disables quote and backslash\n\ + char *optdescr[] = { + _("\ + -0, --null items are separated by a null, not whitespace;\n\ + disables quote and backslash processing\n\ +"), _("\ + -a, --arg-file=FILE read arguments from FILE, not standard input\n\ +"), _("\ + -d, --delimiter=CHARACTER input items are separated by CHARACTER, not by\n\ + blank space; disables quote and backslash\n\ processing\n\ - -E END If END occurs as a line of input, the rest of\n\ - the input is ignored.\n\ - -e [END], --eof[=END] Equivalent to -E END if END is specified.\n\ - Otherwise, there is no end-of-file string\n\ - --help Print a summary of the options to xargs.\n\ +"), _("\ + -E END if END occurs as a line of input, the rest of\n\ + the input is ignored\n\ +"), _("\ + -e [END], --eof[=END] equivalent to -E END if END is specified;\n\ + otherwise, there is no end-of-file string\n\ +"), _("\ + --help print a summary of the options to xargs\n\ +"), _("\ -I R same as --replace=R (R must be specified)\n\ - -i,--replace=[R] Replace R in initial arguments with names\n\ - read from standard input. If R is\n\ +"), _("\ + -i, --replace=[R] replace R in initial arguments with names\n\ + read from standard input; if R is\n\ unspecified, assume {}\n\ - -L,-l, --max-lines=MAX-LINES Use at most MAX-LINES nonblank input lines per\n\ - command line\n\ - -l Use at most one nonblank input line per\n\ +"), _("\ + -L, --max-lines=MAX-LINES use at most MAX-LINES nonblank input lines per\n\ command line\n\ - -n, --max-args=MAX-ARGS Use at most MAX-ARGS arguments per command\n\ +"), _("\ + -l [MAX-LINES] similar to -L but defaults to at most one\n\ + nonblank input line if MAX-LINES not specified\n\ +"), _("\ + -n, --max-args=MAX-ARGS use at most MAX-ARGS arguments per command\n\ line\n\ - -P, --max-procs=MAX-PROCS Run up to max-procs processes at a time\n\ - -p, --interactive Prompt before running commands\n\ - --process-slot-var=VAR Set environment variable VAR in child\n\ +"), _("\ + -P, --max-procs=MAX-PROCS run up to max-procs processes at a time\n\ +"), _("\ + -p, --interactive prompt before running commands\n\ +"), _("\ + --process-slot-var=VAR set environment variable VAR in child\n\ processes\n\ - -r, --no-run-if-empty If there are no arguments, run no command.\n\ - If this option is not given, COMMAND will be\n\ - run at least once.\n\ - -s, --max-chars=MAX-CHARS Limit commands to MAX-CHARS at most\n\ - --show-limits Show limits on command-line length.\n\ - -t, --verbose Print commands before executing them\n\ - --version Print the version number\n\ - -x, --exit Exit if the size (see -s) is exceeded\n\ -")); - fputs (_("\nReport bugs to .\n"), stream); +"), _("\ + -r, --no-run-if-empty if there are no arguments, run no command;\n\ + if this option is not given, COMMAND will be\n\ + run at least once\n\ +"), _("\ + -s, --max-chars=MAX-CHARS limit commands to MAX-CHARS at most\n\ +"), _("\ + --show-limits show limits on command-line length\n\ +"), _("\ + -t, --verbose print commands before executing them\n\ +"), _("\ + --version print the version number\n\ +"), _("\ + -x, --exit exit if the size (see -s) is exceeded\n\ +"), NULL + }; + char **s = optdescr; + + fprintf (stream, _("\ +Usage: %s [OPTION]... COMMAND INITIAL-ARGS...\n\ +Run COMMAND with arguments INITIAL-ARGS and more arguments read from input.\n"), + program_name); + fputs (_("\n\ +Mandatory arguments to long options are mandatory for short options too.\n\ +Non-mandatory arguments are indicated by [square brackets].\n\ +"), stream); + fputs("\n", stream); + for( ; *s; s++) + fputs(*s, stream); + fputs("\n", stream); + fputs (_("Report bugs to .\n"), stream); } -- 1.7.7