mbox series

[2,0/1] Allowing localized substitution hints in parse-options

Message ID 20240525122514.2608-1-ash@kambanaria.org (mailing list archive)
Headers show
Series Allowing localized substitution hints in parse-options | expand

Message

Alexander Shopov May 25, 2024, 12:24 p.m. UTC
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.

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

Alexander Shopov (1):
  parse-options: allow localized substitution hints in macros

 parse-options.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

--
2.45.1

Comments

Junio C Hamano May 27, 2024, 6:14 p.m. UTC | #1
Alexander Shopov <ash@kambanaria.org> 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/20240421191458.5411-1-ash@kambanaria.org/

Thanks for sticking with this topic.  Very much appreciated.
Jiang Xin May 28, 2024, 12:47 a.m. UTC | #2
On Tue, May 28, 2024 at 2:14 AM Junio C Hamano <gitster@pobox.com> wrote:
>
> Alexander Shopov <ash@kambanaria.org> 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.

Typically for a topic with only one commit, it's not necessary to
provide a cover letter but provide details in the commit log instead.

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

I guess the reason some people don't like the markers of placeholders
(such as "<" and ">" characters) is that such characters have special
meanings (used as IO redirection) in shell programming and they can be
replaced with safer characters for languages other than English.

>
>     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/20240421191458.5411-1-ash@kambanaria.org/
>
> Thanks for sticking with this topic.  Very much appreciated.
>
>