Code

git.git
13 years agogettextize: git-am multi-line getttext $msg; echo
Ævar Arnfjörð Bjarmason [Tue, 7 Sep 2010 14:35:18 +0000 (14:35 +0000)]
gettextize: git-am multi-line getttext $msg; echo

When we have multi-line `gettext $msg; echo' messages we can't
preserve the existing indenting because gettext(1) can't accept input
on stdin.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-am one-line gettext $msg; echo
Ævar Arnfjörð Bjarmason [Tue, 7 Sep 2010 14:20:05 +0000 (14:20 +0000)]
gettextize: git-am one-line gettext $msg; echo

One-line `gettext $msg; echo' messages are the simplest use case for
gettext(1).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-am add git-sh-i18n
Ævar Arnfjörð Bjarmason [Tue, 7 Sep 2010 14:03:50 +0000 (14:03 +0000)]
gettextize: git-am add git-sh-i18n

Source git-sh-i18n in git-am.sh, it's needed to import the Git gettext
shell functions.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: add GETTEXT_POISON tests for shell scripts
Ævar Arnfjörð Bjarmason [Tue, 7 Sep 2010 15:38:23 +0000 (15:38 +0000)]
gettext tests: add GETTEXT_POISON tests for shell scripts

Test the new GETTEXT_POISON=YesPlease support for shell scripts. This
test is derived from the existing t0201-gettext-fallbacks.sh test.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: add GETTEXT_POISON support for shell scripts
Ævar Arnfjörð Bjarmason [Tue, 7 Sep 2010 15:25:05 +0000 (15:25 +0000)]
gettext tests: add GETTEXT_POISON support for shell scripts

Expand the existing GETTEXT_POISON=YesPlease support to support shell
scripts. Analogous the existing C support this is needed to test that
changes to the output of the shell scripts don't break the plumbing
output.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agoMakefile: MSGFMT="msgfmt --check" under GNU_GETTEXT
Ævar Arnfjörð Bjarmason [Tue, 7 Sep 2010 12:06:42 +0000 (12:06 +0000)]
Makefile: MSGFMT="msgfmt --check" under GNU_GETTEXT

GNU msgfmt(1) supports the --check parameter which does various sanity
checks on the translated strings we're processing, including checks
that the printf(3) format of "c-format" translations matches the
original. I.e. that a "%s" isn't missing, or that there aren't
spurious or missing newlines in the translation.

Since Solaris msgfmt(1) doesn't support --check we have to wrap this
in `ifdef GNU_GETTEXT'.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agoMakefile: add GNU_GETTEXT, set when we expect GNU gettext
Ævar Arnfjörð Bjarmason [Tue, 7 Sep 2010 12:00:46 +0000 (12:00 +0000)]
Makefile: add GNU_GETTEXT, set when we expect GNU gettext

Add a GNU_GETTEXT flag that's set to YesPlease by default everywhere
but on Solaris if the NO_GETTEXT flag isn't set.

Everyone uses GNU gettext these days except Solaris developers, so
having a dumb check for this that just depends on SunOS should be
OK.

I also don't plan to use this (for the time being) for anything that
would break if it isn't correctly set (e.g. if you're using GNU
libintl on Solaris), so I haven't added paranoid autoconf guards.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-shortlog basic messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 15:26:44 +0000 (15:26 +0000)]
gettextize: git-shortlog basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-revert split up "could not revert/apply" message
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 14:54:15 +0000 (14:54 +0000)]
gettextize: git-revert split up "could not revert/apply" message

Split up the "could not %s %s... %s" message into "could not revert
%s... %s" and "could not apply %s... %s". This makes it easier for
translators to understand the message.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-revert literal "me" messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 14:34:40 +0000 (14:34 +0000)]
gettextize: git-revert literal "me" messages

Translate messages that use the `me' variable. These are all error
messages referencing the command name, so the name shouldn't be
translated.

Reported-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-revert "Your local changes" message
Ævar Arnfjörð Bjarmason [Tue, 7 Sep 2010 13:33:18 +0000 (13:33 +0000)]
gettextize: git-revert "Your local changes" message

Translate the "Your local changes [...]" message without using the
`me' variable, instead split up the two messages so translators can
translate the whole messages as-is.

Reported-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-revert basic messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 14:11:57 +0000 (14:11 +0000)]
gettextize: git-revert basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-notes "Refusing to %s notes in %s" message
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 14:02:13 +0000 (14:02 +0000)]
gettextize: git-notes "Refusing to %s notes in %s" message

The first %s in "Refusing to %s notes in %s" is one of "git notes
ACTION". So we need to mark those actions for translation and later
use _().

Also add a TRANSLATORS comment explaining to translators what the
first %s means.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-notes GIT_NOTES_REWRITE_MODE error message
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 13:56:57 +0000 (13:56 +0000)]
gettextize: git-notes GIT_NOTES_REWRITE_MODE error message

Use sprintf format for the error message that's displayed if
GIT_NOTES_REWRITE_MODE is invalid, and leave a note in a TRANSLATORS
comment indicating what the message means.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-notes basic commands
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 13:49:10 +0000 (13:49 +0000)]
gettextize: git-notes basic commands

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-gc "Auto packing the repository" message
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 12:52:02 +0000 (12:52 +0000)]
gettextize: git-gc "Auto packing the repository" message

Split up the "Auto packing the repository" message into quiet and
verbose variants to make translation easier.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-gc basic messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 12:47:15 +0000 (12:47 +0000)]
gettextize: git-gc basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-describe basic messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 12:43:31 +0000 (12:43 +0000)]
gettextize: git-describe basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-clean clean.requireForce messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 12:34:17 +0000 (12:34 +0000)]
gettextize: git-clean clean.requireForce messages

Split up the "clean.requireForce set/defaults to true..." die()
message to make it easier to translate.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-clean basic messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 12:31:48 +0000 (12:31 +0000)]
gettextize: git-clean basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-bundle basic messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 12:29:55 +0000 (12:29 +0000)]
gettextize: git-bundle basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-archive basic messages
Ævar Arnfjörð Bjarmason [Sun, 5 Sep 2010 12:28:29 +0000 (12:28 +0000)]
gettextize: git-archive basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-status "renamed: " message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 14:29:46 +0000 (14:29 +0000)]
gettextize: git-status "renamed: " message

Gettextize the "renamed: %s -> %s" message which appears as part of
git-status(1) output. Two tests in t4001-diff-rename.sh explicitly
checked for this message. Change them to skip under
GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-status "Initial commit" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 14:59:27 +0000 (14:59 +0000)]
gettextize: git-status "Initial commit" message

Gettextize the "# Initial commit" message. A test in t7501-commit.sh
explicitly checked for this message. Change it to skip under
GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-status "Changes to be committed" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 17:27:44 +0000 (17:27 +0000)]
gettextize: git-status "Changes to be committed" message

Gettextize the "# Changes to be committed:" messages. Several tests
explicitly checked for this message. Change them to skip under
GETTEXT_POISON=YesPlease.

Since these tests didn't check for the rest of the git-status(1)
output this change has been split up from the "git-status basic
messages" patch.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-status shortstatus messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 19:17:17 +0000 (19:17 +0000)]
gettextize: git-status shortstatus messages

Make the messages added in v1.7.2-rc0~54^2~1 translatable. Some of
these could use the to be implemented plural support in the gettext
library.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-status "nothing to commit" messages
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 18:25:18 +0000 (18:25 +0000)]
gettextize: git-status "nothing to commit" messages

Gettextize the "nothing to commit" messages. Many tests explicitly
checked for this message. Change them to skip under
GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-status basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 19:12:26 +0000 (19:12 +0000)]
gettextize: git-status basic messages

Gettextize the most common git-status messages. Many tests checked for
these explicitly. Change them to skip under GETTEXT_POISON=YesPlease.

Some of the tests in t7508-status.sh needed to be split up when I
added NO_GETTEXT_POISON to them, since parts of them affected later
tests (some of which aren't being skipped) indirectly.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-push "prevent you from losing" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 19:32:01 +0000 (19:32 +0000)]
gettextize: git-push "prevent you from losing" message

Gettextize the "To prevent you from losing history" message. A test in
lib-httpd.sh and another in t5541-http-push.sh explicitly checked for
this message. Change them to skip under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-push basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 18:58:04 +0000 (18:58 +0000)]
gettextize: git-push basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-tag tag_template message
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 18:55:40 +0000 (18:55 +0000)]
gettextize: git-tag tag_template message

Mark the tag_template message as translatable with N_() and then use
it later with _(). We need to skip a test under GETTEXT_POISON that
relies on the output having a leading newline.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-tag basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 18:53:33 +0000 (18:53 +0000)]
gettextize: git-tag basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-reset "Unstaged changes after reset" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 13:36:28 +0000 (13:36 +0000)]
gettextize: git-reset "Unstaged changes after reset" message

Gettextize the ""Unstaged changes after reset:" message. A test in
t7102-reset.sh explicitly checked for this message. Change it to skip
under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-reset reset_type_names messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 18:46:15 +0000 (18:46 +0000)]
gettextize: git-reset reset_type_names messages

Make the messages in git-reset that use the reset_type_names static
array to be translatable by marking the array items with N_() and
using _() later.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-reset basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 18:41:55 +0000 (18:41 +0000)]
gettextize: git-reset basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-rm basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 18:37:33 +0000 (18:37 +0000)]
gettextize: git-rm basic messages

Make the basic git-mv messages translatable, but skip things like "rm
'%s'\n" and "git rm '%s'\n" for now.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-mv "bad" messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 18:28:56 +0000 (18:28 +0000)]
gettextize: git-mv "bad" messages

Gettextize messages made by assigning to the "bad" char* variable.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-mv basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 18:26:27 +0000 (18:26 +0000)]
gettextize: git-mv basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-merge "Wonderful" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 14:18:47 +0000 (14:18 +0000)]
gettextize: git-merge "Wonderful" message

Gettextize the "Wonderful" message. A test in t7600-merge.sh
explicitly checked for this message. Change it to skip under
GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-merge "You have not concluded your merge" messages
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 15:20:50 +0000 (15:20 +0000)]
gettextize: git-merge "You have not concluded your merge" messages

Gettextize the "You have not concluded your merge messages. A test in
t3030-merge-recursive.sh explicitly checked for this message. Change
it to skip the test under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-merge "Updating %s..%s" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 14:43:47 +0000 (14:43 +0000)]
gettextize: git-merge "Updating %s..%s" message

Gettextize the "Updating %s..%s\n" message. A test in
t1200-tutorial.sh explicitly checked for this message. Split it into
two tests to skip the test_cmp test under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-merge basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 17:47:52 +0000 (17:47 +0000)]
gettextize: git-merge basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-log "--OPT does not make sense" messages
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 15:11:42 +0000 (15:11 +0000)]
gettextize: git-log "--OPT does not make sense" messages

Gettextize the "--name-only/--name-status/--check does not make sense"
messages. A test in t4014-format-patch.sh explicitly checked for these
messages. Change them to skip under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-log basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 17:35:39 +0000 (17:35 +0000)]
gettextize: git-log basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-grep "--open-files-in-pager" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 14:08:50 +0000 (14:08 +0000)]
gettextize: git-grep "--open-files-in-pager" message

Gettextize the "--open-files-in-pager only works on the worktree"
message. A test in t7811-grep-open.sh explicitly checked for this
message. Change it to skip under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-grep basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 17:30:36 +0000 (17:30 +0000)]
gettextize: git-grep basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-fetch split up "(non-fast-forward)" message
Ævar Arnfjörð Bjarmason [Fri, 3 Sep 2010 23:59:27 +0000 (23:59 +0000)]
gettextize: git-fetch split up "(non-fast-forward)" message

Split up the "(non-fast-forward)" message from printf directives and
make it translatable.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-fetch update_local_ref messages
Ævar Arnfjörð Bjarmason [Fri, 3 Sep 2010 23:58:01 +0000 (23:58 +0000)]
gettextize: git-fetch update_local_ref messages

Translate a "[rejected]" message spotted by Jeff King, and other
things in update_local_ref along with it.

Reported-by: Jeff King <peff@peff.net>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-fetch formatting messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 17:29:01 +0000 (17:29 +0000)]
gettextize: git-fetch formatting messages

Translate some of the formatting messages that appear on git-fetch
showing how branches/tags etc. were updated.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-fetch basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 17:21:53 +0000 (17:21 +0000)]
gettextize: git-fetch basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-diff basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 17:06:05 +0000 (17:06 +0000)]
gettextize: git-diff basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-commit advice messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 16:58:54 +0000 (16:58 +0000)]
gettextize: git-commit advice messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-commit "enter the commit message" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 16:53:39 +0000 (16:53 +0000)]
gettextize: git-commit "enter the commit message" message

Gettextize the "# Please enter the commit message for your changes."
message. Several tests in t7500-commit.sh and t7502-commit.sh assume
that this message starts with a newline. Change the tests to to skip
under GETTEXT_POISON=YesPlease.

These fail under GETTEXT_POISON=YesPlease because the poison editor
message doesn't do the right thing with comments and line breaks, so
these messages will be incorrectly broken up across lines.

This test should not be skipped under a hypothetical future testing
mode that tests Git under language locales, since those messages
should all start with a newline like the original.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-commit print_summary messages
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 17:43:11 +0000 (17:43 +0000)]
gettextize: git-commit print_summary messages

Gettextize the "(root-commit)" and "detached HEAD" fragments that
appear when you commit either the root commit, or a commit in a
detached head translatable.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-commit formatting messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 16:53:27 +0000 (16:53 +0000)]
gettextize: git-commit formatting messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-commit "middle of a merge" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 14:23:01 +0000 (14:23 +0000)]
gettextize: git-commit "middle of a merge" message

Gettextize the "You are in the middle of a merge -- cannot amend."
message. Several tests in t7110-reset-merge.sh explicitly checked for
this message. Change them to skip under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-commit basic messages
Ævar Arnfjörð Bjarmason [Thu, 2 Sep 2010 16:38:18 +0000 (16:38 +0000)]
gettextize: git-commit basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-checkout "Switched to a .. branch" message
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 19:21:38 +0000 (19:21 +0000)]
gettextize: git-checkout "Switched to a .. branch" message

Split up the "Switched to and reset branch" and "Switched to a new
branch" messages to make them easier to translate.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-checkout "HEAD is now at" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 17:14:27 +0000 (17:14 +0000)]
gettextize: git-checkout "HEAD is now at" message

Gettextize the "HEAD is now at" messages. Several tests in t7201-co.sh
explicitly checked for this message. Change them to skip under
GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-checkout describe_detached_head messages
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 19:24:39 +0000 (19:24 +0000)]
gettextize: git-checkout describe_detached_head messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-checkout: our/their version message
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 19:18:54 +0000 (19:18 +0000)]
gettextize: git-checkout: our/their version message

Split up the "does not have our/their version" message to make it
easier to translate.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-checkout basic messages
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 19:24:24 +0000 (19:24 +0000)]
gettextize: git-checkout basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-branch "(no branch)" message
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 19:04:36 +0000 (19:04 +0000)]
gettextize: git-branch "(no branch)" message

Gettextize the "(no branch)" message that's shown by "git branch" when
you're in a detached HEAD.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-branch "git branch -v" messages
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 19:04:02 +0000 (19:04 +0000)]
gettextize: git-branch "git branch -v" messages

Make the "git branch -v" messages translatable, e.g.:

    5054b57 [ahead 8] branch error fixup

This is possibly a plumbing message.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-branch "Deleted branch [...]" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 13:58:04 +0000 (13:58 +0000)]
gettextize: git-branch "Deleted branch [...]" message

Gettextize the "Deleted %sbranch %s (was %s).\n" messages. test in
t3200-branch.sh explicitly checked for this message. Change it to skip
under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-branch "remote branch '%s' not found" message
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 18:58:05 +0000 (18:58 +0000)]
gettextize: git-branch "remote branch '%s' not found" message

This could be done better by splitting it up, but it would change too
much code, which I'm trying to avoid at this point. Instead add a
TRANSLATORS comment to explain what "remote " does.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-branch basic messages
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 18:52:13 +0000 (18:52 +0000)]
gettextize: git-branch basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-add refresh_index message
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 18:49:22 +0000 (18:49 +0000)]
gettextize: git-add refresh_index message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-add "remove '%s'" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 14:48:59 +0000 (14:48 +0000)]
gettextize: git-add "remove '%s'" message

Gettextize the "remove '%s'\n" message. A test in t2200-add-update.sh
explicitly checked for this message. Change it to skip under
GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-add "pathspec [...] did not match" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 15:48:06 +0000 (15:48 +0000)]
gettextize: git-add "pathspec [...] did not match" message

Gettextize the "pathspec '%s' did not match any files" message. A test
in t3700-add.sh explicitly checked for this message. Change it to skip
under GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-add "Use -f if you really want" message
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 15:59:10 +0000 (15:59 +0000)]
gettextize: git-add "Use -f if you really want" message

Gettextize the "Use -f if you really want to add them.\n"
message. Tests in t2204-add-ignored.sh and t3700-add.sh explicitly
checked for this message. Split the tests that did so up and skip
portion that calls grep on this message under
GETTEXT_POISON=YesPlease.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-add "no files added" message
Ævar Arnfjörð Bjarmason [Wed, 22 Sep 2010 19:20:25 +0000 (19:20 +0000)]
gettextize: git-add "no files added" message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-add basic messages
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 18:40:13 +0000 (18:40 +0000)]
gettextize: git-add basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-clone "Cloning into" message
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 15:54:30 +0000 (15:54 +0000)]
gettextize: git-clone "Cloning into" message

Split up the "Cloning into %s" and "Cloning into bare repository %s"
messages to make them easier to translate.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-clone basic messages
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 15:44:13 +0000 (15:44 +0000)]
gettextize: git-clone basic messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: test message re-encoding under C
Ævar Arnfjörð Bjarmason [Mon, 30 Aug 2010 21:10:53 +0000 (21:10 +0000)]
gettext tests: test message re-encoding under C

Add tests for message re-encoding under C. Unlike the Shell tests
these tests will break under GNU libintl if the recent patch to
gettext.c is reverted. So this serves as a regression test for that
issue.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agopo/is.po: add Icelandic translation
Ævar Arnfjörð Bjarmason [Sat, 28 Aug 2010 17:48:26 +0000 (17:48 +0000)]
po/is.po: add Icelandic translation

Translate some non-TEST into Icelandic. This is far from a complete
translation, I've only translated init-db.c.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: mark a test message as not needing translation
Ævar Arnfjörð Bjarmason [Mon, 30 Aug 2010 17:54:53 +0000 (17:54 +0000)]
gettext tests: mark a test message as not needing translation

This was the only message in t/t0200/* that didn't have a TRANSLATORS
comment, without it translators will waste time translating this
needlessly.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: test re-encoding with a UTF-8 msgid under Shell
Ævar Arnfjörð Bjarmason [Mon, 30 Aug 2010 16:59:13 +0000 (16:59 +0000)]
gettext tests: test re-encoding with a UTF-8 msgid under Shell

A test that tests that calling gettext on a UTF-8 msgid works, and
that recoding the resulting string works too.

This test uses the --from-code=UTF-8 xgettext(1) argument introduced
in an earlier patch.

This patch only tests the shellscript portion of our gettext
interface. I can't get any of these tests to fail on any of the
gettext implementations I have around, even without the previous patch
to gettext.c. But having exhaustive tests in this area is good
regardless.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: test message re-encoding under Shell
Ævar Arnfjörð Bjarmason [Mon, 30 Aug 2010 16:02:41 +0000 (16:02 +0000)]
gettext tests: test message re-encoding under Shell

Our PO files are written in UTF-8, but We're not using
setlocale(LC_CTYPE, "") so it's not a given that someone with e.g. a
ISO-8859-1 locale will get messages in ISO-8859-1, and not UTF-8.

Introduce a new test to test for this, it uses the recently added
GETTEXT_ISO_LOCALE prerequisite.

This patch only tests the shellscript portion of our gettext
interface. I can't get any of these tests to fail on any of the
gettext implementations I have around, even without the previous patch
to gettext.c. But having exhaustive tests in this area is good
regardless.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: add detection for is_IS.ISO-8859-1 locale
Ævar Arnfjörð Bjarmason [Mon, 30 Aug 2010 15:18:15 +0000 (15:18 +0000)]
gettext tests: add detection for is_IS.ISO-8859-1 locale

Add a GETTEXT_ISO_LOCALE prerequisite to lib-gettext.sh, it'll be set
if we have an is_IS.ISO-8859-1 locale.

This is needed for an upcoming test that checks if our gettext library
can recode our UTF-8 po/is.po to is_IS.ISO-8859-1 on request.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: test if $VERSION exists before using it
Ævar Arnfjörð Bjarmason [Mon, 30 Aug 2010 19:35:24 +0000 (19:35 +0000)]
gettext tests: test if $VERSION exists before using it

Versions of Locale::Messages before 1.17 didn't have a $VERSION
variable. This caused test failures on boxes that had this old version
installed, since the warnings pragma emits warnings on STDERR, which
fails the test.

Change the test to work around this by first checking if the $VERSION
variable is defined before using it.

Reported-by: Jens Lehmann <Jens.Lehmann@web.de>
Tested-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-init "Initialized [...] repository" message
Ævar Arnfjörð Bjarmason [Sat, 28 Aug 2010 15:32:15 +0000 (15:32 +0000)]
gettextize: git-init "Initialized [...] repository" message

Change the git-init "Initialized empty Git repository" message and its
variants to use gettext.

This is one of the messages that could do with splitting up, I had a
WIP patch to do that that began like this:

    const char *reinit_shared   = _("Reinitialized existing shared Git repository in %s\n");
    const char *init_shared     = _("Initialized empty shared Git repository in %s\n");
    const char *reinit_noshared = _("Reinitialized existing Git repository in %s\n");
    const char *init_noshared   = _("Initialized empty Git repository in %s\n");

But in the first round of gettextization I'm aiming to keep code
changes to a minimum for ease of review.

We can solicit input from translators about which messages that use
too much sprintf-ing are troublesome, and change those later.

Note that the TRANSLATORS comment doesn't use the usual Git
style. This is because everything from "/* TRANSLATORS: " to "*/" will
extracted as-is xgettext(1) and presented to translators, including
newlines and leading "*"'s. There seems to be no way to change that,
short of patching xgettext itself.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettextize: git-init basic messages
Ævar Arnfjörð Bjarmason [Sat, 28 Aug 2010 15:04:43 +0000 (15:04 +0000)]
gettextize: git-init basic messages

Change the user visible strings in init-db.c to use gettext
localizations. This only converts messages which needed to be changed
from "foo" to _("foo"), and didn't need any TRANSLATORS comments.

I haven't marked the messages in init_db_usage or init_db_options for
translation, since that would require additional changes in
parse-options.c. Those can be done later.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: skip lib-gettext.sh tests under GETTEXT_POISON
Ævar Arnfjörð Bjarmason [Sat, 4 Sep 2010 21:28:15 +0000 (21:28 +0000)]
gettext tests: skip lib-gettext.sh tests under GETTEXT_POISON

Change the gettext tests (all of whom use lib-gettext.sh) to skip
under GETTEXT_POISON=YesPlease. We also print a message to this
effect.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: add GETTEXT_POISON=YesPlease Makefile parameter
Ævar Arnfjörð Bjarmason [Fri, 3 Sep 2010 17:50:56 +0000 (17:50 +0000)]
gettext tests: add GETTEXT_POISON=YesPlease Makefile parameter

Add a new GETTEXT_POISON=YesPlease Makefile debug target. With this
target every invocation of _(s) will return "# GETTEXT POISON #"
instead of `s' or the msgstr that `s` would look up.

This target is intended to sanity check the gettextization series
against the test suite.

If the test suite is relying on the US English output of Git the test
should either have a NO_GETTEXT_POISON prerequisite, or the message in
question shouldn't be translated because it's a plumbing message.

We won't catch everything with this since we don't have 100% test
coverage, but the chances of us doing so are much larger.

The reason I'm using "# GETTEXT POISON #" is that a lot of tests that
rely on the fake editor would break if it wasn't a comment, since the
comment message that's inserted on e.g. `git commit --amend' is
translatable.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext.c: use libcharset.h instead of langinfo.h when available
Erik Faye-Lund [Tue, 28 Sep 2010 16:05:26 +0000 (18:05 +0200)]
gettext.c: use libcharset.h instead of langinfo.h when available

Change the git_setup_gettext function to use libcharset to query the
character set of the current locale if it's available. I.e. 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.

The locale_charset function returns a `const char*', instead of
`char*` as nl_langinfo does. Change the declaration of the variable
we're using to store the `charset' in `git_setup_gettext' accordingly.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext.c: work around us not using setlocale(LC_CTYPE, "")
Ævar Arnfjörð Bjarmason [Sun, 29 Aug 2010 17:23:38 +0000 (17:23 +0000)]
gettext.c: work around us not using setlocale(LC_CTYPE, "")

Change the gettext setup code to arrange for messages to be emitted in
the user's requested encoding, but avoid setting LC_CTYPE from the
environment for the whole program.

In 107880a I removed our use of setlocale(LC_CTYPE, "") because of a
bug in vsnprintf in the GNU C Library [1].

Even if it wasn't for that bug we wouldn't want to use LC_CTYPE at
this point, because it'd require auditing all the code that uses C
functions whose semantics are modified by LC_CTYPE.

But only setting LC_MESSAGES as we do creates a problem, since we
declare the encoding of our PO files[2] the gettext implementation
will try to recode it to the user's locale, but without LC_CTYPE it'll
emit something like this on 'git init'

    Bj? til t?ma Git lind ? /hl/agh/.git/

Gettext knows about the encoding of our PO file, but we haven't told
it about the user's encoding, so all the non-US-ASCII characters get
encoded to question marks.

But we're in luck! We can set LC_CTYPE from the environment only while
we call nl_langinfo and bind_textdomain_codeset. That suffices to tell
gettext what encoding it should emit in, so it'll now say:

    Bjó til tóma Git lind í /hl/agh/.git/

And the equivalent ISO-8859-1 string will be emitted under a
ISO-8859-1 locale.

With this change way we get the advantages of setting LC_CTYPE (talk
to the user in his language/encoding), without the major drawbacks
(changed semantics for C functions we rely on).

However foreign functions using other message catalogs that aren't
using our neat trick will still have a problem, e.g. if we have to
call perror(3):

    #include <stdio.h>
    #include <locale.h>
    #include <errno.h>

    int main(void)
    {
        setlocale(LC_MESSAGES, "");
        setlocale(LC_CTYPE, "C");
        errno = ENODEV;
        perror("test");
        return 0;
    }

Running that will give you a message with question marks:

    $ LANGUAGE= LANG=de_DE.utf8 ./test
    test: Kein passendes Ger?t gefunden

In the long term we should probably see about getting that vsnprintf
bug in glibc fixed, and audit our code so it won't fall apart under a
non-C locale.

Then we could simply set LC_CTYPE from the environment, which would
make things like the external perror(3) messages work.

1. http://sourceware.org/bugzilla/show_bug.cgi?id=6530
2. E.g. "Content-Type: text/plain; charset=UTF-8\n" in po/is.po

Suggested-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agobuiltin.h: Include gettext.h
Ævar Arnfjörð Bjarmason [Sat, 28 Aug 2010 16:48:22 +0000 (16:48 +0000)]
builtin.h: Include gettext.h

Change builtin.h to include gettext.h. This is needed in order to
translate Git's builtin commands (like git-init), which don't include
gettext.h otherwise.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agoMakefile: use variables and shorter lines for xgettext
Ævar Arnfjörð Bjarmason [Tue, 31 Aug 2010 16:35:16 +0000 (16:35 +0000)]
Makefile: use variables and shorter lines for xgettext

Change the xgettext(1) invocations to use variables for the
C/Shell/Perl files and their options. This makes it easy for users to
override invidivial options from the command-line.

Suggested-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agoMakefile: tell xgettext(1) that our source is in UTF-8
Ævar Arnfjörð Bjarmason [Mon, 30 Aug 2010 15:27:57 +0000 (15:27 +0000)]
Makefile: tell xgettext(1) that our source is in UTF-8

By default xgettext(1) assumes that source code is in US-ASCII, change
that to UTF-8 for our case.

I'm not planning to include non-ASCII in any of the main Git interface
strings. But this'll be used for a gettext regression test to make
sure this works if we ever want to go this route, and to check that
the gettext implementation is sane in this regard.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agoMakefile: provide a --msgid-bugs-address to xgettext(1)
Ævar Arnfjörð Bjarmason [Sat, 28 Aug 2010 17:42:11 +0000 (17:42 +0000)]
Makefile: provide a --msgid-bugs-address to xgettext(1)

Change the invocations of xgettext to use the --msgid-bugs-address
option. This has the effect of adding a Report-Msgid-Bugs-To header to
the git.pot and the derived *.po files. Doing so is recommended by the
gettext manual.

If this isn't added the Report-Msgid-Bugs-To header already in
po/is.po and other PO files will be removed by msgmerge(1).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agoMakefile: A variable for options used by xgettext(1) calls
Ævar Arnfjörð Bjarmason [Mon, 30 Aug 2010 15:25:44 +0000 (15:25 +0000)]
Makefile: A variable for options used by xgettext(1) calls

Change the Makefile code to use a variable for the options that all
the xgettext(1) invocations are using. This makes it more readable,
and makes it easier to add more standard options.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext tests: locate i18n lib&data correctly under --valgrind
Thomas Rast [Sun, 25 Jul 2010 14:55:46 +0000 (16:55 +0200)]
gettext tests: locate i18n lib&data correctly under --valgrind

The new t020[01] for gettext support did not find git-sh-i18n and the
translation data when run under --valgrind: lib-gettext.sh tried to
locate them under $GIT_EXEC_PATH, which normally is the git build
directory, but is changed by --valgrind to point to the wrappers.

Introduce a new variable $GIT_BUILD_DIR which can be used to locate
data that resides under the build directory, and use that instead.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agogettext: setlocale(LC_CTYPE, "") breaks Git's C function assumptions
Ævar Arnfjörð Bjarmason [Thu, 12 Aug 2010 22:08:15 +0000 (22:08 +0000)]
gettext: setlocale(LC_CTYPE, "") breaks Git's C function assumptions

Remove the setlocale/LC_CTYPE call from gettext.c, we only need
setlocale/LC_MESSAGES to use the message catalog, and setting LC_CTYPE
from the environment breaks Git's assumptions about C library
functions.

Under a non-C locale functions like vsnprintf become locale sensitive,
so that they'll e.g. refuse to process ISO-8895-1 data under a UTF-8
locale.

This triggered a "your vsnprintf is broken" error on Git's own
repository when inspecting v0.99.6~1 under a UTF-8 locale.

That commit contains a ISO-8859-1 encoded author name, which the
locale aware vsnprintf(3) won't interpolate in the format argument,
due to mismatch between the data encoding and the locale.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogettext tests: rename test to work around GNU gettext bug
Ævar Arnfjörð Bjarmason [Mon, 19 Jul 2010 20:28:11 +0000 (20:28 +0000)]
gettext tests: rename test to work around GNU gettext bug

Rename t0200-gettext.sh to t0200-gettext-basic.sh. Versions of GNU
gettext before v0.15 (released in 2006) fail to run the test because
of an old bug in gettext.sh.

To conform with the FHS gettext.sh prints a help message when it's
invoked directly. To do this it checks if $0 is "gettext.sh". This
check was broken before v0.15, it was checking for *\gettext.sh (to
support Windows), but now correctly checks for *\\gettext.sh.

t0200-gettext.sh matched the former broken check, so on systems with
an old GNU gettext (like RHEL 5.4) the test simply printed:

    ./t0200-gettext.sh
    GNU gettext shell script function library version 0.14.6
    Usage: . gettext.sh
    FATAL: Unexpected exit with code 1

Which is just the gettext.sh help output:

    $ gettext.sh
    GNU gettext shell script function library version 0.17
    Usage: . gettext.sh

Change the test name to t0200-gettext-basic.sh to work around that.

Reported-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Tested-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogettext: add infrastructure for translating Git with gettext
Ævar Arnfjörð Bjarmason [Sat, 10 Jul 2010 20:47:47 +0000 (20:47 +0000)]
gettext: add infrastructure for translating Git with gettext

All of the interface messages in Git core are currently hardcoded in
English. Change that by optionally enabling translation of the core C,
Shell and Perl programs via GNU or Solaris gettext. If you set the
appropriate LC_* variables Git will speak your language, provided that
someone has submitted a translation.

If gettext isn't available, or if Git is compiled with
NO_GETTEXT=YesPlease, then Git fall back on its previous behavior of
only speaking English. When using ./configure the autoconf script will
auto-detect if the gettext libraries are installed and act
appropriately.

With NO_GETTEXT=YesPlease gettext support will be #defined away for C
programs. For Shell and Perl programs we rely on the git message
catalog not being available. That's a reasonable assumption since then
the message catalog won't be installed on the system during make
install.

The gettext wrappers that are provided in the patch are only the bare
minimum required to begin translation work. In particular I haven't
added wrappers for the gettext functions that enable plural support,
or those that provide message context (msgctxt).

Those can be added later. The intent is to start with a small subset
and see what we need later, not to start with something that's
unnecessarily large right away.

Implementation and usage notes:

 * General:

   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 wants 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 new git-sh-i18n
   library. It's just a wrapper for the system's gettext.sh.

   If gettext.sh isn't available we'll fall back 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.

   I originally tried to detect if the system supported `echo -n' but
   I found this to be a waste of time. My benchmarks on Linux, Solaris
   and FreeBSD reveal that printf(1) is fast enough, especially since
   we aren't calling gettext() from within any tight loops, and
   unlikely to ever do so.

Solaris has its own non-GNU gettext implementation which this patch
supports, although that may change in the future if it turns out that
we need some GNU libintl features that SunOS doesn't provide.

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, Peter Krefting, Junio C Hamano, Thomas Rast and others.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobuiltin: use builtin.h for all builtin commands
Ævar Arnfjörð Bjarmason [Wed, 1 Sep 2010 15:45:00 +0000 (15:45 +0000)]
builtin: use builtin.h for all builtin commands

Change the builtin/*.c files and wt-status.c files which weren't using
builtin.h to use it, also remove any git-compat-util.h, strbuf.h and
cache.h from those files. We can trust on builtin.h including them.

builtin.h also includes commit.h and notes.h. But I haven't removed
these includes. They're redundant now, but we may want to remove them
from builtin.h in the future.

This impeded my efforts to gettextize git, since I'd otherwise have to
add gettext.h to all of these. Using builtin.h is a good idea in any
case, since it's defining the prototypes for the cmd_* functions that
these files define.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agotests: use test_cmp instead of piping to diff(1)
Ævar Arnfjörð Bjarmason [Mon, 13 Sep 2010 20:55:54 +0000 (20:55 +0000)]
tests: use test_cmp instead of piping to diff(1)

Change submodule tests that piped to diff(1) to use test_cmp. The
resulting unified diff is easier to read.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
13 years agot7004-tag.sh: re-arrange git tag comment for clarity
Ævar Arnfjörð Bjarmason [Sun, 19 Sep 2010 16:32:02 +0000 (16:32 +0000)]
t7004-tag.sh: re-arrange git tag comment for clarity

Split the "message in editor has initial comment" test into three
tests. The motivation is to be able to only skip the middle part under
NO_GETTEXT_POISON.

In addition the return value of 'git tag' was being returned. We now
check that it's non-zero. I used ! instead of test_must_fail so that
the GIT_EDITOR variable was only used in this command invocation, and
because the surrounding tests use this style.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>