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

[RFC PATCH 0/5] Localise error headers

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Jan 2, 2017, 11:14 UTC
Message-ID
<cover.1483354746.git.git@drmicha.warpmail.net>

Currently, the headers "error: ", "warning: " etc. - generated by die(), warning() etc. - are not localized, but we feed many localized error messages into these functions so that we produce error messages with mixed localisation.

This series introduces variants of die() etc. that use localised variants of the headers, i.e. _("error: ") etc., and are to be fed localized messages. So, instead of die(_("not workee")), which would produce a mixed localisation (such as "error: geht ned"), one should use die_(_("not workee")) (resulting in "Fehler: geht ned").

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.

1/5 prepares the error machinery 2/5 provides new variants error_() etc. 3/5 has coccinelli rules error(_(E)) -> error_(_(E)) etc. 4/5 applies the coccinelli patches

5/5 is not to be applied to the main tree, but helps you try out the feature: it has changes to de.po and git.pot so that e.g. "git branch" has fully localised error messages (see the recipe in the commit message).

Michael J Gruber (5):
  error/warn framework: prepare for l10n
  error/warn framework: provide localized variants
  error/warn framework framework: coccinelli rules
  error/warn framework: localize
  WIP: Feature demonstration
 advice.c                           |   16 +-
 apply.c                            |   10 +-
 apply.h                            |    4 +-
 archive.c                          |    6 +-
 attr.c                             |    3 +-
 bisect.c                           |    2 +-
 branch.c                           |    4 +-
 builtin/add.c                      |   20 +-
 builtin/am.c                       |   27 +-
 builtin/archive.c                  |   10 +-
 builtin/blame.c                    |   12 +-
 builtin/branch.c                   |   45 +-
 builtin/bundle.c                   |    4 +-
 builtin/check-ignore.c             |   14 +-
 builtin/check-mailmap.c            |    2 +-
 builtin/checkout-index.c           |    2 +-
 builtin/checkout.c                 |   27 +-
 builtin/clean.c                    |   10 +-
 builtin/clone.c                    |   39 +-
 builtin/column.c                   |    2 +-
 builtin/commit.c                   |   87 +-
 builtin/config.c                   |    2 +-
 builtin/describe.c                 |    6 +-
 builtin/diff.c                     |    2 +-
 builtin/fetch.c                    |   21 +-
 builtin/gc.c                       |    3 +-
 builtin/grep.c                     |   14 +-
 builtin/help.c                     |    4 +-
 builtin/index-pack.c               |   42 +-
 builtin/interpret-trailers.c       |    2 +-
 builtin/log.c                      |   48 +-
 builtin/merge-recursive.c          |    2 +-
 builtin/merge.c                    |   53 +-
 builtin/mv.c                       |    6 +-
 builtin/notes.c                    |   40 +-
 builtin/pack-objects.c             |    4 +-
 builtin/prune.c                    |    2 +-
 builtin/pull.c                     |   10 +-
 builtin/push.c                     |   22 +-
 builtin/remote.c                   |   10 +-
 builtin/repack.c                   |    4 +-
 builtin/replace.c                  |    2 +-
 builtin/reset.c                    |   10 +-
 builtin/rev-list.c                 |    2 +-
 builtin/rev-parse.c                |    2 +-
 builtin/revert.c                   |    4 +-
 builtin/rm.c                       |    6 +-
 builtin/shortlog.c                 |    2 +-
 builtin/show-branch.c              |    7 +-
 builtin/submodule--helper.c        |    9 +-
 builtin/tag.c                      |   20 +-
 builtin/unpack-objects.c           |    2 +-
 builtin/update-index.c             |    8 +-
 builtin/worktree.c                 |    6 +-
 bundle.c                           |    4 +-
 config.c                           |    4 +-
 connect.c                          |    6 +-
 connected.c                        |    2 +-
 contrib/coccinelle/errorl10n.cocci |   47 +
 daemon.c                           |    3 +-
 diff.c                             |    8 +-
 dir.c                              |    4 +-
 fast-import.c                      |    4 +-
 fetch-pack.c                       |   26 +-
 git-compat-util.h                  |   18 +-
 help.c                             |    2 +-
 http-backend.c                     |    4 +-
 http.c                             |    4 +-
 merge.c                            |    2 +-
 notes-utils.c                      |    2 +-
 pathspec.c                         |   13 +-
 po/de.po                           | 2922 ++++++++++++++++++++++++------------
 po/git.pot                         | 2781 ++++++++++++++++++++++------------
 pretty.c                           |    2 +-
 ref-filter.c                       |   20 +-
 remote.c                           |    2 +-
 revision.c                         |    4 +-
 run-command.c                      |    6 +-
 send-pack.c                        |   12 +-
 sequencer.c                        |    7 +-
 setup.c                            |    6 +-
 sha1_file.c                        |    2 +-
 submodule.c                        |    8 +-
 trailer.c                          |    4 +-
 transport.c                        |    2 +-
 tree-walk.c                        |    2 +-
 usage.c                            |  122 +-
 wrapper.c                          |    2 +-
 wt-status.c                        |    2 +-
 89 files changed, 4408 insertions(+), 2374 deletions(-)
 create mode 100644 contrib/coccinelle/errorl10n.cocci
-- 
2.11.0.372.g2fcea0e476
Next: Michael J Gruber
Message 1 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.