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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx> написа:
>
> 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@xxxxxxxxxxxxxx>
> ---
>  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
>





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux