Skip to content

Commit f8f5af2

Browse files
committed
Merge branch 'as/long-option-help-i18n'
Tweak the help text used for the option value placeholders by parse-options API so that translations can customize the "<>" placeholder signal (e.g. "--option=<value>"). * as/long-option-help-i18n: parse-options: localize mark-up of placeholder text in the short help
2 parents 637fb90 + 5b34dd0 commit f8f5af2

File tree

1 file changed

+40
-3
lines changed

1 file changed

+40
-3
lines changed

parse-options.c

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,11 +1076,48 @@ static int usage_argh(const struct option *opts, FILE *outfile)
10761076
!opts->argh || !!strpbrk(opts->argh, "()<>[]|");
10771077
if (opts->flags & PARSE_OPT_OPTARG)
10781078
if (opts->long_name)
1079-
s = literal ? "[=%s]" : "[=<%s>]";
1079+
/*
1080+
* TRANSLATORS: The "<%s>" part of this string
1081+
* stands for an optional value given to a command
1082+
* line option in the long form, and "<>" is there
1083+
* as a convention to signal that it is a
1084+
* placeholder (i.e. the user should substitute it
1085+
* with the real value). If your language uses a
1086+
* different convention, you can change "<%s>" part
1087+
* to match yours, e.g. it might use "|%s|" instead,
1088+
* or if the alphabet is different enough it may use
1089+
* "%s" without any placeholder signal. Most
1090+
* translations leave this message as is.
1091+
*/
1092+
s = literal ? "[=%s]" : _("[=<%s>]");
10801093
else
1081-
s = literal ? "[%s]" : "[<%s>]";
1094+
/*
1095+
* TRANSLATORS: The "<%s>" part of this string
1096+
* stands for an optional value given to a command
1097+
* line option in the short form, and "<>" is there
1098+
* as a convention to signal that it is a
1099+
* placeholder (i.e. the user should substitute it
1100+
* with the real value). If your language uses a
1101+
* different convention, you can change "<%s>" part
1102+
* to match yours, e.g. it might use "|%s|" instead,
1103+
* or if the alphabet is different enough it may use
1104+
* "%s" without any placeholder signal. Most
1105+
* translations leave this message as is.
1106+
*/
1107+
s = literal ? "[%s]" : _("[<%s>]");
10821108
else
1083-
s = literal ? " %s" : " <%s>";
1109+
/*
1110+
* TRANSLATORS: The "<%s>" part of this string stands for a
1111+
* value given to a command line option, and "<>" is there
1112+
* as a convention to signal that it is a placeholder
1113+
* (i.e. the user should substitute it with the real value).
1114+
* If your language uses a different convention, you can
1115+
* change "<%s>" part to match yours, e.g. it might use
1116+
* "|%s|" instead, or if the alphabet is different enough it
1117+
* may use "%s" without any placeholder signal. Most
1118+
* translations leave this message as is.
1119+
*/
1120+
s = literal ? " %s" : _(" <%s>");
10841121
return utf8_fprintf(outfile, s, opts->argh ? _(opts->argh) : _("..."));
10851122
}
10861123

0 commit comments

Comments
 (0)