Re: [PATCH 3 1/1] parse-options: localize mark-up of placeholder text in the short help
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 15, 2024, 15:39 UTC
- Message-ID
- <xmqqjzhm7jgl.fsf@gitster.g>
- In-Reply-To
- <CAP6f5MkGQssKyAdgN3rbzfTZtPgETaSjpm3JevuaLg-vh_pNug@mail.gmail.com>
Alexander Shopov <ash@kambanaria.org> writes:
> Will the patch for expose substitution hint chars be included in 2.46? > Should I do anything more?
Sorry, I lost track. Did we resolve why "<>" is special and but "[]" is OK to leave out of the translatable text? IOW, is there much point in advising the translators that "<>" is something specifically they are allowed to change?
Stepping back a bit, would translators (especially for languages without any need for the ability to replace <> with something else) understand when told
TRANSLATORS: change `<>' to other characters or leave as is
why anybody would want to change it in the first place? Stepping back even a bit more, probably making it clear to them what these instances of [<%s>], [=<%s>], etc., are doing would be sufficient to help them making the right decision?
If a translator for a hypothetical language that uses say „%s“ reads
/* TRANSLATORS: <%s> here stands for an command line argument */
_("<%s>")in the comment, wouldn't that be sufficient to tell them they are allowed to change "<>" to "„“"?
Similarly, explaining [<%s>] as "optional command line argument", would tell them that it is OK for them to replace not just <> but also [] if their language requires such a change, no?
Thanks for pinging.
Show 28 quoted lines
>> diff --git a/parse-options.c b/parse-options.c
>> index 30b9e68f8a..06d962b00e 100644
>> --- a/parse-options.c
>> +++ b/parse-options.c
>> @@ -1070,11 +1070,17 @@ static int usage_argh(const struct option *opts, FILE *outfile)
>> !opts->argh || !!strpbrk(opts->argh, "()<>[]|");
>> if (opts->flags & PARSE_OPT_OPTARG)
>> if (opts->long_name)
>> - s = literal ? "[=%s]" : "[=<%s>]";
>> + s = literal ? "[=%s]" :
>> + /* TRANSLATORS: change `<>' to other characters or leave as is */
>> + _("[=<%s>]");
>> else
>> - s = literal ? "[%s]" : "[<%s>]";
>> + s = literal ? "[%s]" :
>> + /* TRANSLATORS: change `<>' to other characters or leave as is */
>> + _("[<%s>]");
>> else
>> - s = literal ? " %s" : " <%s>";
>> + s = literal ? " %s" :
>> + /* TRANSLATORS: change `<>' to other characters or leave as is */
>> + _(" <%s>");
>> return utf8_fprintf(outfile, s, opts->argh ? _(opts->argh) : _("..."));
>> }
>>
>> --
>> 2.45.2
>>