git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3 1/1] parse-options: localize mark-up of placeholder text in the short help

From
Alexander Shopov <ash@kambanaria.org>
Date
Jul 14, 2024, 20:41 UTC
Message-ID
<CAP6f5MkGQssKyAdgN3rbzfTZtPgETaSjpm3JevuaLg-vh_pNug@mail.gmail.com>
In-Reply-To
<20240707153526.97984-2-ash@kambanaria.org>

Will the patch for expose substitution hint chars be included in 2.46? Should I do anything more? Kind regards: al_shopov

На нд, 7.07.2024 г. в 17:35 Alexander Shopov <ash@kambanaria.org> написа:
Show 70 quoted lines
>
> i18n: expose substitution hint chars in functions and macros to
> translators
>
> For example (based on builtin/commit.c and shortened): the "--author"
> option takes a name.  In source this can be represented as:
>
>   OPT_STRING(0, "author", &force_author, N_("author"), N_("override author")),
>
> When the command is run with "-h" (short help) option (git commit -h),
> the above definition is displayed as:
>
>   --[no-]author <author>    override author
>
> Git does not use translated option names so the first part of the
> above, "--[no-]author", is given as-is (it is based on the 2nd
> argument of OPT_STRING).  However the string "author" in the pair of
> "<>", and the explanation "override author for commit" 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>".
>
> In case the translator's writing system is sufficiently different than
> Latin the "<>" characters can be substituted by an empty string thus
> effectively skipping them in the output.  For example languages with
> uppercase versions of characters can use that to deliniate
> replaceability.
>
> Alternatively a translator can decide to use characters that are
> visually close to "<>" but are not interpreted by the shell.
>
> Signed-off-by: Alexander Shopov <ash@kambanaria.org>
> ---
>  parse-options.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> 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
>
Previous: Alexander ShopovNext: Junio C Hamano
Message 11 of 16 in “[RESUBMIT 2nd] Consistency for substitution hints (i18n) 0/1]”
  1. [RESUBMIT 2nd] Consistency for substitution hints (i18n) 0/1]Alexander Shopov, Apr 21, 2024
  2. [RESUBMIT 2nd] Consistency for substitution hints (i18n) 1/1] parse-options: use localized substitution hintsAlexander Shopov, Apr 21, 2024
  3. Junio C HamanoApr 21, 2024
  4. 0/1 Allowing localized substitution hints in parse-optionsAlexander Shopov, May 25, 2024
  5. Junio C HamanoMay 27, 2024
  6. Jiang XinMay 28, 2024
  7. 1/1 parse-options: allow localized substitution hints in macrosAlexander Shopov, May 25, 2024
  8. Junio C HamanoMay 27, 2024
  9. 0/1 parse-options: localize mark-up of placeholder text in the short helpAlexander Shopov, Jul 7, 2024
  10. 1/1 parse-options: localize mark-up of placeholder text in the short helpAlexander Shopov, Jul 7, 2024
  11. Alexander ShopovJul 14, 2024
  12. Junio C HamanoJul 15, 2024
  13. 0/1 Localize mark-up of placeholder text in the short helpAlexander Shopov, Dec 28, 2024
  14. 1/1 parse-options: localize mark-up of placeholder text in the short helpAlexander Shopov, Dec 28, 2024
  15. Junio C HamanoDec 28, 2024
  16. Jiang XinDec 30, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.