Subject: [PATCH v3 0/2] Gettext support for Git

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Tue, 15 Jun 2010 02:11:44 +0000

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