1. 06 12月, 2011 1 次提交
    • Æ
      i18n: add infrastructure for translating Git with gettext · 5e9637c6
      Ævar Arnfjörð Bjarmason 提交于
      Change the skeleton implementation of i18n in Git to one that can show
      localized strings to users for our C, Shell and Perl programs using
      either GNU libintl or the Solaris gettext implementation.
      
      This new internationalization support is enabled by default. If
      gettext isn't available, or if Git is compiled with
      NO_GETTEXT=YesPlease, Git falls back on its current behavior of
      showing interface messages in English. When using the autoconf script
      we'll auto-detect if the gettext libraries are installed and act
      appropriately.
      
      This change is somewhat large because as well as adding a C, Shell and
      Perl i18n interface we're adding a lot of tests for them, and for
      those tests to work we need a skeleton PO file to actually test
      translations. A minimal Icelandic translation is included for this
      purpose. Icelandic includes multi-byte characters which makes it easy
      to test various edge cases, and it's a language I happen to
      understand.
      
      The rest of the commit message goes into detail about various
      sub-parts of this commit.
      
      = Installation
      
      Gettext .mo files will be installed and looked for in the standard
      $(prefix)/share/locale path. GIT_TEXTDOMAINDIR can also be set to
      override that, but that's only intended to be used to test Git itself.
      
      = Perl
      
      Perl code that's to be localized should use the new Git::I18n
      module. It imports a __ function into the caller's package by default.
      
      Instead of using the high level Locale::TextDomain interface I've
      opted to use the low-level (equivalent to the C interface)
      Locale::Messages module, which Locale::TextDomain itself uses.
      
      Locale::TextDomain does a lot of redundant work we don't need, and
      some of it would potentially introduce bugs. It tries to set the
      $TEXTDOMAIN based on package of the caller, and has its own
      hardcoded paths where it'll search for messages.
      
      I found it easier just to completely avoid it rather than try to
      circumvent its behavior. In any case, this is an issue wholly
      internal Git::I18N. Its guts can be changed later if that's deemed
      necessary.
      
      See <AANLkTilYD_NyIZMyj9dHtVk-ylVBfvyxpCC7982LWnVd@mail.gmail.com> for
      a further elaboration on this topic.
      
      = Shell
      
      Shell code that's to be localized should use the git-sh-i18n
      library. It's basically just a wrapper for the system's gettext.sh.
      
      If gettext.sh isn't available we'll fall back on gettext(1) if it's
      available. The latter is available without the former on Solaris,
      which has its own non-GNU gettext implementation. We also need to
      emulate eval_gettext() there.
      
      If neither are present we'll use a dumb printf(1) fall-through
      wrapper.
      
      = About libcharset.h and langinfo.h
      
      We use libcharset to query the character set of the current locale if
      it's available. I.e. we'll use it instead of nl_langinfo if
      HAVE_LIBCHARSET_H is set.
      
      The GNU gettext manual recommends using langinfo.h's
      nl_langinfo(CODESET) to acquire the current character set, but on
      systems that have libcharset.h's locale_charset() using the latter is
      either saner, or the only option on those systems.
      
      GNU and Solaris have a nl_langinfo(CODESET), FreeBSD can use either,
      but MinGW and some others need to use libcharset.h's locale_charset()
      instead.
      
      =Credits
      
      This patch is based on work by Jeff Epler <jepler@unpythonic.net> who
      did the initial Makefile / C work, and a lot of comments from the Git
      mailing list, including Jonathan Nieder, Jakub Narebski, Johannes
      Sixt, Erik Faye-Lund, Peter Krefting, Junio C Hamano, Thomas Rast and
      others.
      
      [jc: squashed a small Makefile fix from Ramsay]
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NRamsay Jones <ramsay@ramsay1.demon.co.uk>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5e9637c6
  2. 09 11月, 2011 1 次提交
  3. 21 6月, 2011 1 次提交
  4. 25 11月, 2010 1 次提交
    • J
      docs: default to more modern toolset · 79c461d5
      Jeff King 提交于
      When the ASCIIDOC8 and ASCIIDOC_NO_ROFF knobs were built,
      many people were still on asciidoc 7 and using older
      versions of docbook-xsl. These days, even the almost
      2-year-old Debian stable needs these knobs turned.
      
      So let's turn them by default. The new knobs ASCIIDOC7 and
      ASCIIDOC_ROFF can be used to get the old behavior if people
      are on older systems.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      79c461d5
  5. 28 9月, 2010 1 次提交
    • Æ
      perl: bump the required Perl version to 5.8 from 5.6.[21] · d48b2841
      Ævar Arnfjörð Bjarmason 提交于
      Formalize our dependency on perl 5.8, bumped from 5.6.[12]. We already
      used the three-arg form of open() which was introduced in 5.6.1, but
      t/t9700/test.pl explicitly depended on 5.6.2.
      
      However git-add--interactive.pl has been failing on the 5.6 line since
      it was introduced in v1.5.0-rc0~12^2~2 back in 2006 due to this open
      syntax:
      
          sub run_cmd_pipe {
                 my $fh = undef;
                 open($fh, '-|', @_) or die;
                 return <$fh>;
          }
      
      Which when executed dies on "Can't use an undefined value as
      filehandle reference". Several of our tests also fail on 5.6 (even
      more when compiled with NO_PERL_MAKEMAKER=1):
      
          t2016-checkout-patch.sh
          t3904-stash-patch.sh
          t3701-add-interactive.sh
          t7105-reset-patch.sh
          t7501-commit.sh
          t9700-perl-git.sh
      
      Our code is bitrotting on 5.6 with no-one interested in fixing it, and
      pinning us to such an ancient release of Perl is keeping us from using
      useful features introduced in the 5.8 release.
      
      The 5.6 series is now over 10 years old, and the 5.6.2 maintenance
      release almost 7. 5.8 on the other hand is more than 8 years old.
      
      All the modern Unix-like operating systems have now upgraded to it or
      a later version, and 5.8 packages are available for old IRIX, AIX
      Solaris and Tru64 systems.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Acked-by: NTor Arntsen <tor@spacetec.no>
      Acked-by: NRandal L. Schwartz <merlyn@stonehenge.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      d48b2841
  6. 26 7月, 2010 1 次提交
  7. 04 12月, 2009 1 次提交
  8. 11 9月, 2009 2 次提交
  9. 09 9月, 2009 1 次提交
  10. 11 12月, 2008 1 次提交
  11. 03 11月, 2008 1 次提交
  12. 11 9月, 2008 2 次提交
  13. 05 8月, 2008 1 次提交
  14. 09 7月, 2008 1 次提交
  15. 06 7月, 2008 1 次提交
  16. 16 6月, 2008 2 次提交
  17. 06 5月, 2008 1 次提交
  18. 06 2月, 2008 1 次提交
  19. 03 10月, 2007 1 次提交
  20. 11 8月, 2007 1 次提交
  21. 04 8月, 2007 1 次提交
  22. 17 7月, 2007 1 次提交
  23. 21 6月, 2007 1 次提交
  24. 07 6月, 2007 1 次提交
    • J
      War on whitespace · a6080a0a
      Junio C Hamano 提交于
      This uses "git-apply --whitespace=strip" to fix whitespace errors that have
      crept in to our source files over time.  There are a few files that need
      to have trailing whitespaces (most notably, test vectors).  The results
      still passes the test, and build result in Documentation/ area is unchanged.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a6080a0a
  25. 13 1月, 2007 1 次提交
  26. 14 12月, 2006 1 次提交
  27. 13 12月, 2006 1 次提交
  28. 22 11月, 2006 1 次提交
  29. 30 9月, 2006 1 次提交
  30. 09 8月, 2006 1 次提交
  31. 09 7月, 2006 1 次提交
  32. 04 7月, 2006 1 次提交
    • P
      Use $GITPERLLIB instead of $RUNNING_GIT_TESTS and centralize @inc munging · 6fcca938
      Petr Baudis 提交于
      This makes the Git perl scripts check $GITPERLLIB instead of
      $RUNNING_GIT_TESTS, which makes more sense if you are setting up your shell
      environment to use a non-installed Git instance.
      
      It also weeds out the @inc munging from the individual scripts and makes
      Makefile add it during the .perl files processing, so that we can change
      just a single place when we modify this shared logic. It looks ugly in the
      scripts, too. ;-)
      
      And instead of doing arcane things with the @inc array, we just do 'use lib'
      instead, which is essentialy the same thing anyway.
      
      I first want to do three separate patches but it turned out that it's quite
      a lot neater when bundled together, so I hope it's ok.
      Signed-off-by: NPetr Baudis <pasky@suse.cz>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      6fcca938
  33. 03 7月, 2006 2 次提交
  34. 21 6月, 2006 1 次提交
  35. 01 3月, 2006 1 次提交
  36. 22 1月, 2006 1 次提交