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

[PATCH v3 0/2] Gettext support for Git

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jun 15, 2010, 02:11 UTC
Message-ID
<1276567906-17652-1-git-send-email-avarab@gmail.com>
In-Reply-To
<7vd3vucip0.fsf@alter.siamese.dyndns.org>

This patch series implements gettext support for git, making it possible to localize it. This should really be v2, but PATCH 1/2 had a trivial typo fix as v2, so I'm bumping the version of the whole series to v3 to avoid dual v3/v2 confusion.

Changes since v1:
  * Fixed all the things that Junio pointed out:
    - Tests that are too fragile to run everywhere (depend on
      locale/OS/implementation combinations) are now skipped unless
      TEST_GIT_GETTEXT_EXHAUSTIVE=1 is set.
    - fantasy-locale / real-locale filenames now make sense with
      respect to their tests.
    - Use `! test' instead of `test_expect_failure test`
    - Use the `>foo' redirection style instead of `> foo'.
  * Don't use `. gettext.sh' but `type gettext.sh && . gettext.sh'.
    The former failed on dash and Solaris's ksh.
  * Now compatible with the SunOS gettext implmentation, this needed:
    - #include <locale.h> in gettext.c, which is a good idea
       anyway. GNU libintl.h included it indirectly.
    - Define a Shell fallback that uses gettext(1). SunOS doesn't have
      gettext.sh, but it has a gettext command that shellscipts should
      use. It also needed a custom eval_gettext() wrapper.
    - Updating of INSTALL and Makefile docs to mention this.
  * The Perl tests can now be run with TEST_GIT_GETTEXT_EXHAUSTIVE=1
    through the t0202-gettext-perl.sh wrapper. The original patch
    didn't set GIT_TEXTDOMAINDIR, and I always ran the test.pl script
    manually.
  * Updated commit messages to reflect the changes above, and fixed a
    typo or two.
The changes since v1 in diff -w --stat format:
 INSTALL                      |   10 ++++--
 Makefile                     |    4 +-
 gettext.c                    |    1 +
 git-sh-i18n.sh               |   36 ++++++++++++++++++----
 t/t0200-gettext.sh           |   68 ++++++++++++++++++++++++-----------------
 t/t0201-gettext-fallbacks.sh |   10 +++++-
 t/t0202-gettext-perl.sh      |    3 ++
 t/t0202/test.pl              |    4 +-
 8 files changed, 94 insertions(+), 42 deletions(-)
Ævar Arnfjörð Bjarmason (2):
  Add infrastructure for translating Git with gettext
  Add initial C, Shell and Perl gettext translations
 .gitignore                   |    2 +
 INSTALL                      |    8 ++
 Makefile                     |   69 +++++++++++++++++-
 config.mak.in                |    2 +
 configure.ac                 |   12 +++
 daemon.c                     |    3 +
 fast-import.c                |    3 +
 gettext.c                    |   22 ++++++
 gettext.h                    |   18 +++++
 git-pull.sh                  |   16 ++--
 git-send-email.perl          |    3 +-
 git-sh-i18n.sh               |   71 ++++++++++++++++++
 git.c                        |    3 +
 http-backend.c               |    3 +
 http-fetch.c                 |    3 +
 http-push.c                  |    3 +
 imap-send.c                  |    3 +
 perl/Git/I18N.pm             |   91 +++++++++++++++++++++++
 perl/Makefile                |    3 +-
 perl/Makefile.PL             |   14 +++-
 po/.gitignore                |    1 +
 po/is.po                     |   70 ++++++++++++++++++
 shell.c                      |    3 +
 show-index.c                 |    3 +
 t/t0200-gettext.sh           |  166 ++++++++++++++++++++++++++++++++++++++++++
 t/t0200/test.c               |   13 +++
 t/t0200/test.perl            |   14 ++++
 t/t0200/test.sh              |   14 ++++
 t/t0201-gettext-fallbacks.sh |   50 +++++++++++++
 t/t0202-gettext-perl.sh      |   23 ++++++
 t/t0202/test.pl              |  104 ++++++++++++++++++++++++++
 t/test-lib.sh                |    2 +
 upload-pack.c                |    3 +
 wt-status.c                  |  107 ++++++++++++++-------------
 34 files changed, 860 insertions(+), 65 deletions(-)
 create mode 100644 gettext.c
 create mode 100644 gettext.h
 create mode 100644 git-sh-i18n.sh
 create mode 100644 perl/Git/I18N.pm
 create mode 100644 po/.gitignore
 create mode 100644 po/is.po
 create mode 100755 t/t0200-gettext.sh
 create mode 100644 t/t0200/test.c
 create mode 100644 t/t0200/test.perl
 create mode 100644 t/t0200/test.sh
 create mode 100755 t/t0201-gettext-fallbacks.sh
 create mode 100755 t/t0202-gettext-perl.sh
 create mode 100644 t/t0202/test.pl
Previous: Junio C HamanoNext: Ævar Arnfjörð Bjarmason
Message 7 of 16 in “Gettext support for Git”
  1. 0/2 Gettext support for GitÆvar Arnfjörð Bjarmason, Jun 6, 2010
  2. 1/2 Add infrastructure for translating Git with gettextÆvar Arnfjörð Bjarmason, Jun 6, 2010
  3. Jakub NarebskiJun 7, 2010
  4. Jeff EplerJun 7, 2010
  5. 1/2 Add infrastructure for translating Git with gettextÆvar Arnfjörð Bjarmason, Jun 7, 2010
  6. Junio C HamanoJun 14, 2010
  7. 0/2 Gettext support for GitÆvar Arnfjörð Bjarmason, Jun 15, 2010
  8. 1/2 Add infrastructure for translating Git with gettextÆvar Arnfjörð Bjarmason, Jun 15, 2010
  9. 2/2 Add initial C, Shell and Perl gettext translationsÆvar Arnfjörð Bjarmason, Jun 15, 2010
  10. 0/2 Gettext support for GitÆvar Arnfjörð Bjarmason, Jun 15, 2010
  11. 1/2 Add infrastructure for translating Git with gettextÆvar Arnfjörð Bjarmason, Jun 15, 2010
  12. 2/2 Add initial C, Shell and Perl gettext translationsÆvar Arnfjörð Bjarmason, Jun 15, 2010
  13. Ævar Arnfjörð BjarmasonJun 14, 2010
  14. Thomas RastJun 14, 2010
  15. Ævar Arnfjörð BjarmasonJun 14, 2010
  16. 2/2 Add initial C, Shell and Perl gettext translationsÆvar Arnfjörð Bjarmason, Jun 6, 2010

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.