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

Re: [RFC PATCH 0/5] Localise error headers

From
Duy Nguyen <pclouds@gmail.com>
Date
Jan 7, 2017, 09:34 UTC
Message-ID
<CACsJy8ALXkkEnQPvpMx4nrPjD=fpGNDkbC_oqMrj3KRdRr_-eQ@mail.gmail.com>
In-Reply-To
<CACsJy8B0UT4_CF=qu081ep6nzdBXxnnNbma-wCYeajAuXaKg5w@mail.gmail.com>
On Wed, Jan 4, 2017 at 8:25 PM, Duy Nguyen <pclouds@gmail.com> wrote:
Show 29 quoted lines
> On Wed, Jan 4, 2017 at 2:45 AM, Stefan Beller <sbeller@google.com> wrote:
>>> In this implementation, the gettext call for the header and the body are done
>>> in different places (error function vs. caller) but this call pattern seems to
>>> be the easiest variant for the caller, because the message body has to be marked
>>> for localisation in any case, and N_() requires more letters than _(), an extra
>>> argument to die() etc. even more than the extra "_" in the function name.
>>
>> I see. We have to markup the strings to be translatable such that the .po files
>> are complete. It would be really handy if there was a way to say "anything that
>> is fed to this function (die_) needs to be marked for translation.
>>
>> Looking through
>> https://www.gnu.org/software/gettext/manual/html_node/xgettext-Invocation.html
>> such a thing doesn't seem to exist.
>
> I think --keyword is exactly for that purpose: marking more text for
> translations besides standard markers like _() or N_(). Yes we need to
> call gettext() explicitly in die_() later on. We already do that for
> parse-options. We just need to N_() the strings, without actually
> spelling it out.
>
>>
>> So in that case die_(_(...)) seems to be the easiest way forward.
>
> I still prefer changing the die_routine though since die() in many
> cases could be used in both plumbing and porcelain contexts. And we
> have tried to keep plumbing output (and behavior) as stable as
> possible. The approach has some similarity to unpack_trees() which
> shares the same porcelain/plumbing problem.

On the other hand, making die(), not die_(), translatable means the translators will have to translate them _all_ even if only some will end up being displayed. That's 2000+ strings according to git-grep. And some of them, like die("BUG:..") should definitely not be translated. So +1 to die_(), unless we decide all strings are safe to translate.

-- 
Duy
Previous: Duy NguyenNext: Jeff King
Message 8 of 24 in “Localise error headers”
  1. 0/5 Localise error headersMichael J Gruber, Jan 2, 2017
  2. 1/5 error/warning framework: prepare for l10nMichael J Gruber, Jan 2, 2017
  3. 2/5 error/warn framework: provide localized variantsMichael J Gruber, Jan 2, 2017
  4. 3/5 error/warning framework framework: coccinelli rulesMichael J Gruber, Jan 2, 2017
  5. Duy NguyenJan 3, 2017
  6. Stefan BellerJan 3, 2017
  7. Duy NguyenJan 4, 2017
  8. Duy NguyenJan 7, 2017
  9. Jeff KingJan 4, 2017
  10. Michael J GruberJan 9, 2017
  11. Jeff KingJan 10, 2017
  12. Stefan BellerJan 10, 2017
  13. Jeff KingJan 11, 2017
  14. Stefan BellerJan 11, 2017
  15. Jeff KingJan 21, 2017
  16. Junio C HamanoJan 11, 2017
  17. Duy NguyenJan 20, 2017
  18. Jeff KingJan 21, 2017
  19. Jeff KingJan 21, 2017
  20. Michael J GruberMar 30, 2017
  21. Jeff KingApr 1, 2017
  22. Junio C HamanoApr 1, 2017
  23. Duy NguyenJan 20, 2017
  24. Duy NguyenJan 20, 2017

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.