Subject: Re: [PATCH 2 0/1] Allowing localized substitution hints in parse-options

From: Junio C Hamano <[email-masked]>
Date: Mon, 27 May 2024 11:14:53 -0700

Alexander Shopov <[email-masked]> writes:

> I hope this time patch submit is better.
> Requests for changes from previous review should be handled.
>
> parse-options.c contains functions and macros to print messages with
> terms optionally enclosed in chars promting substitution to users such as:
>
>   blah-blah-blah <TERM>
>
> Since languages using different alphabets or writing systems can translate
> the term in an obvious manner to prompt the user to substitute them, I expose
> these character to the translators so the messages can use the same style as
> elsewhere in git.

Most of the above explanation, starting from "parse-options.c
contains... " should replace the proposed log message of the main
patch [1/1], I would think.  Very clearly written.

The explanation after "such as:" needs improvement, though.  Are you
trying to highlight that an explanation is spelled with dashes
between words format?  Are you trying to highlight that the used
term is capitalized?  Are you trying to highlight that the term
comes after explanation?  The answer is none of the above, but it is
not easy for readers to guess.

One way to make it easier to follow would be to use a more realistic
example.  The whole proposed log message may become like so:

    parse-options.c API can show help text for an option that takes
    an argument.  For the "--author" option that takes a name, for
    example, the program may define the option like so:

	OPT_STRING(0, "author", &au, N_("author"), N_("override author")),

    When the command is run with "-h" (short help) option, the above
    definition is shown as:

        --[no-]author <author>    override author

    As the program does not accept translated option names, the
    first part of the above, "--[no-]author", is given as-is, but
    the string "author" in a pair of "<>", and the explanation
    "override author" may be translated into user's language.

    The user's language may use a convention to mark a replaceable
    part of the command line (called a "placeholder string")
    differently from enclosing it inside a pair of "<>", but the
    implementation in parse-options.c hardcodes "<%s>".

    Allow translators to specify the presentation of a placeholder
    string for their languages by overriding the "<%s>".

> Comments to the translators are shorter than before but hopefully they are
> not cryptic.

What is cryptic here is what "than before" refers to---compared
what?

  ... goes and looks ...

Ah, this is an updated patch for an earlier attempt

  https://lore.kernel.org/git/[email-masked]/

Thanks for sticking with this topic.  Very much appreciated.