Code

i18n of multi-line advice messages
authorJunio C Hamano <gitster@pobox.com>
Thu, 22 Dec 2011 19:21:26 +0000 (11:21 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 22 Dec 2011 19:21:26 +0000 (11:21 -0800)
commit23cb5bf3b3b9699bf00fa38c4c08f32f8c60b529
treee6b40396e1c10c960fd3969951cfe3a20b5457a1
parent2ce0edcd786b790fed580e7df56291619834d276
i18n of multi-line advice messages

Advice messages are by definition meant for human end-users, and prime
candidates for i18n/l10n. They tend to also be more verbose to be helpful,
and need to be longer than just one line.

Although we do not have parameterized multi-line advice messages yet, once
we do, we cannot emit such a message like this:

    advise(_("Please rename %s to something else"), gostak);
    advise(_("so that we can avoid distimming %s unnecessarily."), doshes);

because some translations may need to have the replacement of 'gostak' on
the second line (or 'doshes' on the first line). Some languages may even
need to use three lines in order to fit the same message within a
reasonable width.

Instead, it has to be a single advise() construct, like this:

    advise(_("Please rename %s to something else\n"
             "so that we can avoid distimming %s unnecessarily."),
           gostak, doshes);

Update the advise() function and its existing callers to

 - take a format string that can be multi-line and translatable as a
   whole;
 - use the string and the parameters to form a localized message; and
 - show each line in the result with the localization of the "hint: ".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
advice.c
builtin/revert.c