[PATCH/RFC v4 0/7] Add internationalization support to Git

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here's version 4 of the patch series begun by Jeff Epler to make Git
optionally translatable with GNU gettext.

It's like the version 4 I submitted an ~hour ago, sans the annoying
errors I made and lots of tests:

Changes from v3 to v4:

  * Fix typos and removal of GIT_TEXTDOMAINDIR that I rewrote out with
    some rebase mistakes.

  * Add meaningful testing. The C, Shell and Perl wrappers are now
    tested as part of a new t/t0200-gettext.sh test file. Put under
    the t/t0* namespace because it's a core feature, and using a new
    t02 prefix because there'll probably be a lot of Gettext tests
    down the line.

Changes from v2 to v3:

  * Squashed some infrastructure patches into the initial commit.

  * Added basic sanity testing for the Gettext support

  * .mo files aren't installed on `make install` time if NO_GETTEXT
    was specified during the build.

    In C gettext support isn't compiled in. But this happens
    implicitly in Shell/Perl because the locale files won't be there
    on the system.

  * NO_GETTEXT is now set correctly depending on whether libintl.h
    exists when autoconf is used to build Git. Whether this is the
    best approach to gettext detection with autoconf is being
    discussed in the "[PATCH/RCF] autoconf: Check if <libintl.h>
    exists and set NO_GETTEX" thread.

  * The localedir is now passed to the Perl code via Makefile
    trickery. It's no longer hardcoded to /usr/local/share/locale

  * Add `--keyword=` to all xgettext invocations. This way we make
    sure that only our gettext functions are extracted, not the
    defaults xgettext.

  * Git::Gettext is now called Git::I18N

  * Remove LICENSE from I18N.pm. It was a boilerplate that shouldn't
    have been there.

  * Use qw() not qw< > in Perl code.

  * Changed the interface to Git::I18N. Now it exports all its
    functions by default. If something's using the module it's going
    to want to import everything anyway. This makes the issue of '@{
    $EXPORT_TAGS{'all'} }' being ugly syntax moot since it isn't used
    anymore.

    Users can still import selectively by specifying arguments to
    import().

  * The GIT_TEXTDOMAINDIR environment variable can be set to override
    where the C/Perl/Shell locale files are found. This is intended to
    be set by the test suite.

  * The boolean test for whether gettext.sh was successfully loaded
    was inverted (oops!)

Things that haven't changed:

  Jakub pointed out some things that I might want to change that I
  didn't yet. Mostly because I didn't have time yet.

  * Git::I18N still uses Locale::Messages, not Locale::TextDomain.

    I'm still not convinced that the low-level Locale::Messages
    interface isn't a better fit for us. But I didn't get
    Locale::TextDomain working at all today so I'm still using
    Locale::Messages.

  * Perl still uses gettext($), not __($) (see above).

  * use Exporter 'import': Subclassing Exporter instead since we
    apparently need Perl 5.6 compatibility.

Jeff Epler (1):
  Add infrastructure for translating Git with gettext

Ævar Arnfjörð Bjarmason (6):
  gettext: Add a Gettext interface for shell scripts
  gettext: Add a Gettext interface for Perl
  Makefile: Don't install Gettext .mo files if NO_GETTEXT
  Makefile: Override --keyword= for all languages
  gettext: Sanity tests for Git's Gettext support
  gettext: Add a skeleton po/is.po

 .gitignore          |    1 +
 Makefile            |   43 ++++++++-
 config.mak.in       |    1 +
 configure.ac        |    6 +
 gettext.c           |   25 +++++
 gettext.h           |   13 +++
 git-pull.sh         |   15 ++--
 git-send-email.perl |    3 +-
 git-sh-setup.sh     |   38 +++++++
 git.c               |    3 +
 perl/Git/I18N.pm    |   73 +++++++++++++
 perl/Makefile       |    3 +-
 perl/Makefile.PL    |   14 +++-
 po/.gitignore       |    1 +
 po/is.po            |  282 +++++++++++++++++++++++++++++++++++++++++++++++++++
 t/t0200-gettext.sh  |   73 +++++++++++++
 wt-status.c         |  129 ++++++++++++------------
 17 files changed, 647 insertions(+), 76 deletions(-)
 create mode 100644 gettext.c
 create mode 100644 gettext.h
 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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]