Re: [RFC/PATCH] i18n of multi-line messages

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

 



On Thu, Dec 22, 2011 at 08:38, Junio C Hamano <gitster@xxxxxxxxx> wrote:

[Re-formatted for clarity]

> -       vreportf("hint: ", advice, params);
> +       vreportf("hint", advice, params);
> -               vreportf("fatal: ", err, params);
> +               vreportf("fatal", err, params);
> -       vwritef(child_err, "fatal: ", err, params);
> +       vwritef(child_err, "fatal", err, params);
> -       vreportf("usage: ", err, params);
> +       vreportf("usage", err, params);
> -       vreportf("fatal: ", err, params);
> +       vreportf("fatal", err, params);
> -       vreportf("error: ", err, params);
> +       vreportf("error", err, params);
> -       vreportf("warning: ", warn, params);
> +       vreportf("warning", warn, params);

If we do it like this these would have to have something like:

    vreportf(N_("warning"), warn, params);

Followed by...:

> +       strbuf_vaddf(&buf, fmt, params);
> +       for (cp = buf.buf; *cp; cp = np) {
> +               np = strchrnul(cp, '\n');
> +               /*
> +                * TRANSLATORS: the format is designed so that in RTL
> +                * languages you could reorder and put the "prefix" at
> +                * the end instead of the beginning of a line if you
> +                * wanted to.
> +                */
> +               strbuf_addf(&line,
> +                           _("%s: %.*s\n"),
> +                           prefix,

Changing this to _(prefix).

> +                           (int)(np - cp), cp);
> +               emit(&line, cb_data);
> +               strbuf_reset(&line);
> +               if (*np)
> +                       np++;
> +       }
> +       strbuf_release(&buf);
> +       strbuf_release(&line);

But ideally to make things clear to the translators it's better to
give them something like this to translate:

    error: %s
    message

Instead of just, as two separate things:

    error
    message

Because:

 1. We might use "error", "warning", "usage" etc. somewhere else, and
    unless we start using the msgctxt feature of gettext we can't
    distinguish between these.

 2. If you present them as two separate things the translator is
    likely to get the case wrong (e.g. translate "error" in the
    nominative case instead of say accusative).

But it's not a big deal, the patch looks good to me as-is with those
N_() and _() changes. Just something to keep in mind.

We can always fixed issues like the one I'm raising later as they crop up.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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]