threads / patch / 26979

patch, 51 partsi18n: Shell script translations

Subject: [PATCH 00/51] i18n: Shell script translations

## tl;dr

59 messages between Apr 3, 2011 and Apr 10, 2011. Diffs are folded; open one to read it.

replies: 58people: 4as markdown or json

Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · lore

Following the "i18n: Shell script translation infrastructure" series. These are the actual shell script translations. Together these series add up to everything from:

    git://github.com/avar/git.git ab/i18n-sh-only

I'm hoping these two can follow the same pattern into pu/next/master as the equivalent C series.

Ævar Arnfjörð Bjarmason (51):
  i18n: git-am add git-sh-i18n
  i18n: git-am one-line gettext $msg; echo
  i18n: git-am multi-line getttext $msg; echo
  i18n: git-am eval_gettext messages
  i18n: git-am echo + gettext message
  i18n: git-am die messages
  i18n: git-am cannot_fallback messages
  i18n: git-am clean_abort messages
  i18n: git-am "Apply?" message
  i18n: git-am core say messages
  i18n: git-am printf(1) message to eval_gettext
  i18n: git-pull add git-sh-i18n
  i18n: git-pull die messages
  i18n: git-pull eval_gettext + die message
  i18n: git-pull eval_gettext + warning message
  i18n: git-pull split up "no candidate" message
  i18n: git-pull "You asked to pull" message
  i18n: git-pull "[...] not currently on a branch" message
  i18n: git-pull "rebase against" / "merge with" messages
  i18n: git-submodule add git-sh-i18n
  i18n: git-submodule echo + eval_gettext messages
  i18n: git-submodule say + eval_gettext messages
  i18n: git-submodule die + eval_gettext messages
  i18n: git-submodule $update_module say + die messages
  i18n: git-submodule "cached cannot be used" message
  i18n: git-submodule "Submodule change[...]" messages
  i18n: git-submodule $errmsg messages
  i18n: git-submodule "Entering [...]" message
  i18n: git-submodule "[...] path is ignored" message
  i18n: git-submodule "path not initialized" message
  i18n: git-submodule "blob" and "submodule" messages
  i18n: git-stash add git-sh-i18n
  i18n: git-stash echo + gettext message
  i18n: git-stash say + gettext messages
  i18n: git-stash die + gettext messages
  i18n: git-stash die + eval_gettext messages
  i18n: git-stash die + eval_gettext $* messages
  i18n: git-stash die + eval_gettext $1 messages
  i18n: git-stash "unknown option" message
  i18n: git-stash drop_stash say/die messages
  i18n: git-bisect add git-sh-i18n
  i18n: git-bisect gettext + echo message
  i18n: git-bisect echo + gettext messages
  i18n: git-bisect echo + eval_gettext message
  i18n: git-bisect die + gettext messages
  i18n: git-bisect die + eval_gettext messages
  i18n: git-bisect bisect_run + $@ messages
  i18n: git-bisect bisect_reset + $1 messages
  i18n: git-bisect bisect_replay + $1 messages
  i18n: git-bisect [Y/n] messages
  i18n: git-bisect bisect_next_check "You need to" message
 git-am.sh                    |   72 +++++++++++----------
 git-bisect.sh                |   92 +++++++++++++++------------
 git-pull.sh                  |  146 +++++++++++++++++++++++++-----------------
 git-stash.sh                 |   75 +++++++++++++--------
 git-submodule.sh             |   92 ++++++++++++++-------------
 t/t4150-am.sh                |    5 +-
 t/t4151-am-abort.sh          |    2 +-
 t/t7400-submodule-basic.sh   |    4 +-
 t/t7401-submodule-summary.sh |   12 ++--
 t/t7407-submodule-foreach.sh |    4 +-
 10 files changed, 284 insertions(+), 220 deletions(-)
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 01/51] i18n: 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>
---
 git-am.sh |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-am.sh +1 −0
diff --git a/git-am.sh b/git-am.sh
index 6cdd591..79c5ea2 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -37,6 +37,7 @@ rerere-autoupdate update the index with reused conflict resolution if possible
 rebasing*       (internal use for git-rebase)"
 
 . git-sh-setup
+. git-sh-i18n
 prefix=$(git rev-parse --show-prefix)
 set_reflog_action am
 require_work_tree
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 02/51] i18n: 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>
---
 git-am.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to git-am.sh +3 −3
diff --git a/git-am.sh b/git-am.sh
index 79c5ea2..f54f13d 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -115,7 +115,7 @@ go_next () {
 
 cannot_fallback () {
 	echo "$1"
-	echo "Cannot fall back to three-way merge."
+	gettext "Cannot fall back to three-way merge."; echo
 	exit 1
 }
 
@@ -645,7 +645,7 @@ do
 
 	if test -z "$GIT_AUTHOR_EMAIL"
 	then
-		echo "Patch does not have a valid e-mail address."
+		gettext "Patch does not have a valid e-mail address."; echo
 		stop_here $this
 	fi
 
@@ -696,7 +696,7 @@ do
 	    action=again
 	    while test "$action" = again
 	    do
-		echo "Commit Body is:"
+		gettext "Commit Body is:"; echo
 		echo "--------------------------"
 		cat "$dotest/final-commit"
 		echo "--------------------------"
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 03/51] i18n: 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>
---
 git-am.sh |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
Show changes to git-am.sh +5 −5
diff --git a/git-am.sh b/git-am.sh
index f54f13d..5a152b0 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -757,16 +757,16 @@ do
 		# working tree.
 		resolved=
 		git diff-index --quiet --cached HEAD -- && {
-			echo "No changes - did you forget to use 'git add'?"
-			echo "If there is nothing left to stage, chances are that something else"
-			echo "already introduced the same changes; you might want to skip this patch."
+			gettext "No changes - did you forget to use 'git add'?
+If there is nothing left to stage, chances are that something else
+already introduced the same changes; you might want to skip this patch."; echo
 			stop_here_user_resolve $this
 		}
 		unmerged=$(git ls-files -u)
 		if test -n "$unmerged"
 		then
-			echo "You still have unmerged paths in your index"
-			echo "did you forget to use 'git add'?"
+			gettext "You still have unmerged paths in your index
+did you forget to use 'git add'?"; echo
 			stop_here_user_resolve $this
 		fi
 		apply_status=0
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 04/51] i18n: git-am eval_gettext messages

Messages that use variables to be interpolated need to use eval_gettext(), this wrapper will eval the message and expand the variable for us.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-am.sh |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
Show changes to git-am.sh +6 −6
diff --git a/git-am.sh b/git-am.sh
index 5a152b0..7c0273c 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -99,9 +99,9 @@ stop_here_user_resolve () {
 	    printf '%s\n' "$resolvemsg"
 	    stop_here $1
     fi
-    echo "When you have resolved this problem run \"$cmdline --resolved\"."
-    echo "If you would prefer to skip this patch, instead run \"$cmdline --skip\"."
-    echo "To restore the original branch and stop patching run \"$cmdline --abort\"."
+    eval_gettext "When you have resolved this problem run \"\$cmdline --resolved\".
+If you would prefer to skip this patch, instead run \"\$cmdline --skip\".
+To restore the original branch and stop patching run \"\$cmdline --abort\"."; echo
 
     stop_here $1
 }
@@ -608,9 +608,9 @@ do
 			go_next && continue
 
 		test -s "$dotest/patch" || {
-			echo "Patch is empty.  Was it split wrong?"
-			echo "If you would prefer to skip this patch, instead run \"$cmdline --skip\"."
-			echo "To restore the original branch and stop patching run \"$cmdline --abort\"."
+			eval_gettext "Patch is empty.  Was it split wrong?
+If you would prefer to skip this patch, instead run \"\$cmdline --skip\".
+To restore the original branch and stop patching run \"\$cmdline --abort\"."; echo
 			stop_here $this
 		}
 		rm -f "$dotest/original-commit" "$dotest/author-script"
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 05/51] i18n: git-am echo + gettext message

---
 git-am.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to git-am.sh +2 −2
diff --git a/git-am.sh b/git-am.sh
index 7c0273c..688f689 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -89,8 +89,8 @@ safe_to_abort () {
 	then
 		return 0
 	fi
-	echo >&2 "You seem to have moved HEAD since the last 'am' failure."
-	echo >&2 "Not rewinding to ORIG_HEAD"
+	echo >&2 "$(gettext "You seem to have moved HEAD since the last 'am' failure.
+Not rewinding to ORIG_HEAD")"
 	return 1
 }
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 06/51] i18n: git-am die messages

The die messages in git-am need to use:
    die "$(gettext "string")"

Since gettext(1) emits the message instead of returning it like the C equivalent, and our die() function in git-sh-setup needs to get a string as an argument.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-am.sh |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)
Show changes to git-am.sh +7 −7
diff --git a/git-am.sh b/git-am.sh
index 688f689..cbd48a9 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -44,7 +44,7 @@ require_work_tree
 cd_to_toplevel
 
 git var GIT_COMMITTER_IDENT >/dev/null ||
-	die "You need to set your committer info first"
+	die "$(gettext "You need to set your committer info first")"
 
 if git rev-parse --verify -q HEAD >/dev/null
 then
@@ -359,7 +359,7 @@ do
 	--rebasing)
 		rebasing=t threeway=t keep=t scissors=f no_inbody_headers=t ;;
 	-d|--dotest)
-		die "-d option is no longer supported.  Do not use."
+		die "$(gettext "-d option is no longer supported.  Do not use.")"
 		;;
 	--resolvemsg)
 		shift; resolvemsg=$1 ;;
@@ -422,12 +422,12 @@ then
 		false
 		;;
 	esac ||
-	die "previous rebase directory $dotest still exists but mbox given."
+	die "$(eval_gettext "previous rebase directory \$dotest still exists but mbox given.")"
 	resume=yes
 
 	case "$skip,$abort" in
 	t,t)
-		die "Please make up your mind. --skip or --abort?"
+		die "$(gettext "Please make up your mind. --skip or --abort?")"
 		;;
 	t,)
 		git rerere clear
@@ -454,7 +454,7 @@ then
 else
 	# Make sure we are not given --skip, --resolved, nor --abort
 	test "$skip$resolved$abort" = "" ||
-		die "Resolve operation not in progress, we are not resuming."
+		die "$(gettext "Resolve operation not in progress, we are not resuming.")"
 
 	# Start afresh.
 	mkdir -p "$dotest" || exit
@@ -519,7 +519,7 @@ case "$resolved" in
 	if test "$files"
 	then
 		test -n "$HAS_HEAD" && : >"$dotest/dirtyindex"
-		die "Dirty index: cannot apply patches (dirty: $files)"
+		die "$(eval_gettext "Dirty index: cannot apply patches (dirty: \$files)")"
 	fi
 esac
 
@@ -692,7 +692,7 @@ To restore the original branch and stop patching run \"\$cmdline --abort\"."; ec
 	if test "$interactive" = t
 	then
 	    test -t 0 ||
-	    die "cannot be interactive without stdin connected to a terminal."
+	    die "$(gettext "cannot be interactive without stdin connected to a terminal.")"
 	    action=again
 	    while test "$action" = again
 	    do
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 07/51] i18n: git-am cannot_fallback messages

Translate messages with gettext(1) before they're passed to the cannot_fallback function, just like we handle the die function.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-am.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to git-am.sh +3 −3
diff --git a/git-am.sh b/git-am.sh
index cbd48a9..5c06eda 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -130,7 +130,7 @@ fall_back_3way () {
 	"$dotest/patch" &&
     GIT_INDEX_FILE="$dotest/patch-merge-tmp-index" \
     git write-tree >"$dotest/patch-merge-base+" ||
-    cannot_fallback "Repository lacks necessary blobs to fall back on 3-way merge."
+    cannot_fallback "$(gettext "Repository lacks necessary blobs to fall back on 3-way merge.")"
 
     say Using index info to reconstruct a base tree...
     if GIT_INDEX_FILE="$dotest/patch-merge-tmp-index" \
@@ -139,8 +139,8 @@ fall_back_3way () {
 	mv "$dotest/patch-merge-base+" "$dotest/patch-merge-base"
 	mv "$dotest/patch-merge-tmp-index" "$dotest/patch-merge-index"
     else
-        cannot_fallback "Did you hand edit your patch?
-It does not apply to blobs recorded in its index."
+        cannot_fallback "$(gettext "Did you hand edit your patch?
+It does not apply to blobs recorded in its index.")"
     fi
 
     test -f "$dotest/patch-merge-index" &&
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 08/51] i18n: git-am clean_abort messages

Messages that used the clean_abort function needed both gettext(1) and eval_gettext(). These need to be interpolated in a string like the die and cannot_fallback messages.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-am.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to git-am.sh +3 −3
diff --git a/git-am.sh b/git-am.sh
index 5c06eda..ed48673 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -255,7 +255,7 @@ split_patches () {
 	stgit-series)
 		if test $# -ne 1
 		then
-			clean_abort "Only one StGIT patch series can be applied at once"
+			clean_abort "$(gettext "Only one StGIT patch series can be applied at once")"
 		fi
 		series_dir=`dirname "$1"`
 		series_file="$1"
@@ -307,9 +307,9 @@ split_patches () {
 		;;
 	*)
 		if test -n "$parse_patch" ; then
-			clean_abort "Patch format $patch_format is not supported."
+			clean_abort "$(eval_gettext "Patch format \$patch_format is not supported.")"
 		else
-			clean_abort "Patch format detection failed."
+			clean_abort "$(gettext "Patch format detection failed.")"
 		fi
 		;;
 	esac
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 09/51] i18n: git-am "Apply?" message

Make the "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all" message translatable, and leave a note in a TRANSLATORS comment explaining that translators have to preserve a mention of the y/n/e/v/a characters since the program will expect them, and not their localized equivalents.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-am.sh |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
Show changes to git-am.sh +4 −1
diff --git a/git-am.sh b/git-am.sh
index ed48673..2c8770b 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -700,7 +700,10 @@ To restore the original branch and stop patching run \"\$cmdline --abort\"."; ec
 		echo "--------------------------"
 		cat "$dotest/final-commit"
 		echo "--------------------------"
-		printf "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all "
+		# TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
+		# in your translation. The program will only accept English
+		# input at this point.
+		gettext "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all "
 		read reply
 		case "$reply" in
 		[yY]*) action=yes ;;
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 10/51] i18n: git-am core say messages

Make the core git-am messages that use say() translatable. These are visible on almost every git am invocation.

There are tests that depend on the "Applying" output that need to be skipped along with this translation.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-am.sh           |    6 +++---
 t/t4150-am.sh       |    5 ++++-
 t/t4151-am-abort.sh |    2 +-
 3 files changed, 8 insertions(+), 5 deletions(-)
Show changes to 3 files +8 −5

git-am.sh, t/t4150-am.sh, t/t4151-am-abort.sh

diff --git a/git-am.sh b/git-am.sh
index 2c8770b..a15c5cc 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -739,7 +739,7 @@ To restore the original branch and stop patching run \"\$cmdline --abort\"."; ec
 		stop_here $this
 	fi
 
-	say "Applying: $FIRSTLINE"
+	say "$(eval_gettext "Applying: \$FIRSTLINE")"
 
 	case "$resolved" in
 	'')
@@ -784,7 +784,7 @@ did you forget to use 'git add'?"; echo
 		    # Applying the patch to an earlier tree and merging the
 		    # result may have produced the same tree as ours.
 		    git diff-index --quiet --cached HEAD -- && {
-			say No changes -- Patch already applied.
+			say "$(gettext "No changes -- Patch already applied.")"
 			go_next
 			continue
 		    }
@@ -810,7 +810,7 @@ did you forget to use 'git add'?"; echo
 			GIT_AUTHOR_DATE=
 		fi
 		parent=$(git rev-parse --verify -q HEAD) ||
-		say >&2 "applying to an empty history"
+		say >&2 "$(gettext "applying to an empty history")"
 
 		if test -n "$committer_date_is_author_date"
 		then
diff --git a/t/t4150-am.sh b/t/t4150-am.sh
index 850fc96..aa3d4ad 100755
--- a/t/t4150-am.sh
+++ b/t/t4150-am.sh
@@ -464,7 +464,10 @@ test_expect_success 'am newline in subject' '
 	git checkout first &&
 	test_tick &&
 	sed -e "s/second/second \\\n foo/" patch1 >patchnl &&
-	git am <patchnl >output.out 2>&1 &&
+	git am <patchnl >output.out 2>&1
+'
+
+test_expect_success C_LOCALE_OUTPUT 'output: am newline in subject' '
 	grep "^Applying: second \\\n foo$" output.out
 '
 
diff --git a/t/t4151-am-abort.sh b/t/t4151-am-abort.sh
index c95c4cc..b9d8f5e 100755
--- a/t/t4151-am-abort.sh
+++ b/t/t4151-am-abort.sh
@@ -43,7 +43,7 @@ do
 		test_cmp expect actual
 	'
 
-	test_expect_success "am$with3 --skip continue after failed am$with3" '
+	test_expect_success C_LOCALE_OUTPUT "am$with3 --skip continue after failed am$with3" '
 		test_must_fail git am$with3 --skip >output &&
 		test "$(grep "^Applying" output)" = "Applying: 6" &&
 		test_cmp file-2-expect file-2 &&
-- 
1.7.4.1
Jakub Narebski· Apr 3, 2011, 17:33 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 10/51] i18n: git-am core say messages

Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
Show 5 quoted lines
> Make the core git-am messages that use say() translatable. These are
> visible on almost every git am invocation.
> 
> There are tests that depend on the "Applying" output that need to be
> skipped along with this translation.
> -	say "Applying: $FIRSTLINE"
> +	say "$(eval_gettext "Applying: \$FIRSTLINE")"
> -			say No changes -- Patch already applied.
> +			say "$(gettext "No changes -- Patch already applied.")"

I guess that you canot simply make 'say' to do the translation because one doesn't know if getext or eval_gettext is needed, isn't it?

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 17:35 UTC · re: Jakub Narebski · lore

Re: [PATCH 10/51] i18n: git-am core say messages

On Sun, Apr 3, 2011 at 19:33, Jakub Narebski <jnareb@gmail.com> wrote:
Show 17 quoted lines
> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
>
>> Make the core git-am messages that use say() translatable. These are
>> visible on almost every git am invocation.
>>
>> There are tests that depend on the "Applying" output that need to be
>> skipped along with this translation.
>
>
>> -     say "Applying: $FIRSTLINE"
>> +     say "$(eval_gettext "Applying: \$FIRSTLINE")"
>
>> -                     say No changes -- Patch already applied.
>> +                     say "$(gettext "No changes -- Patch already applied.")"
>
> I guess that you canot simply make 'say' to do the translation because
> one doesn't know if getext or eval_gettext is needed, isn't it?

Indeed, the xgettext() rule couldn't tell the difference. And even if we only used say() for gettext() I'd prefer not to make things more complex by supporting gettext extraction from our own custom functions. I'd like to be able to grep for gettext and get all the invocations.

Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 11/51] i18n: git-am printf(1) message to eval_gettext

Convert a message that used printf(1) format to use eval_gettext. It's easier for translators to handle the latter, since the eval format automatically gives them context via variable names.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-am.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to git-am.sh +1 −1
diff --git a/git-am.sh b/git-am.sh
index a15c5cc..2a42ea2 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -794,7 +794,7 @@ did you forget to use 'git add'?"; echo
 	fi
 	if test $apply_status != 0
 	then
-		printf 'Patch failed at %s %s\n' "$msgnum" "$FIRSTLINE"
+		eval_gettext 'Patch failed at $msgnum $FIRSTLINE'; echo
 		stop_here_user_resolve $this
 	fi
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 12/51] i18n: git-pull add git-sh-i18n

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-pull.sh +1 −0
diff --git a/git-pull.sh b/git-pull.sh
index e31226b..0b623bf 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -9,6 +9,7 @@ LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEA
 SUBDIRECTORY_OK=Yes
 OPTIONS_SPEC=
 . git-sh-setup
+. git-sh-i18n
 set_reflog_action "pull $*"
 require_work_tree
 cd_to_toplevel
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 13/51] i18n: git-pull die messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)
Show changes to git-pull.sh +10 −9
diff --git a/git-pull.sh b/git-pull.sh
index 0b623bf..b19e097 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -18,20 +18,20 @@ cd_to_toplevel
 die_conflict () {
     git diff-index --cached --name-status -r --ignore-submodules HEAD --
     if [ $(git config --bool --get advice.resolveConflict || echo true) = "true" ]; then
-	die "Pull is not possible because you have unmerged files.
+	die "$(gettext "Pull is not possible because you have unmerged files.
 Please, fix them up in the work tree, and then use 'git add/rm <file>'
-as appropriate to mark resolution, or use 'git commit -a'."
+as appropriate to mark resolution, or use 'git commit -a'.")"
     else
-	die "Pull is not possible because you have unmerged files."
+	die "$(gettext "Pull is not possible because you have unmerged files.")"
     fi
 }
 
 die_merge () {
     if [ $(git config --bool --get advice.resolveConflict || echo true) = "true" ]; then
-	die "You have not concluded your merge (MERGE_HEAD exists).
-Please, commit your changes before you can merge."
+	die "$(gettext "You have not concluded your merge (MERGE_HEAD exists).
+Please, commit your changes before you can merge.")"
     else
-	die "You have not concluded your merge (MERGE_HEAD exists)."
+	die "$(gettext "You have not concluded your merge (MERGE_HEAD exists).")"
     fi
 }
 
@@ -207,9 +207,10 @@ test true = "$rebase" && {
 		# On an unborn branch
 		if test -f "$GIT_DIR/index"
 		then
-			die "updating an unborn branch with changes added to the index"
+			die "$(gettext "updating an unborn branch with changes added to the index")"
 		fi
 	else
+		# XXX: This is an abomination
 		require_clean_work_tree "pull with rebase" "Please commit or stash them."
 	fi
 	oldremoteref= &&
@@ -263,11 +264,11 @@ case "$merge_head" in
 ?*' '?*)
 	if test -z "$orig_head"
 	then
-		die "Cannot merge multiple branches into empty head"
+		die "$(gettext "Cannot merge multiple branches into empty head")"
 	fi
 	if test true = "$rebase"
 	then
-		die "Cannot rebase onto multiple branches"
+		die "$(gettext "Cannot rebase onto multiple branches")"
 	fi
 	;;
 esac
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 18:14 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 13/51] i18n: git-pull die messages

On Sun, Apr 3, 2011 at 18:45, Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
> +               # XXX: This is an abomination
>                require_clean_work_tree "pull with rebase" "Please commit or stash them."
I'd forgotten that I'd left that in there.
Anyway, we can just skip translating these for now.
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 14/51] i18n: git-pull eval_gettext + die message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to git-pull.sh +3 −3
diff --git a/git-pull.sh b/git-pull.sh
index b19e097..36f34d6 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -244,12 +244,12 @@ then
 	echo >&2 "Warning: commit $orig_head."
 	git update-index -q --refresh
 	git read-tree -u -m "$orig_head" "$curr_head" ||
-		die 'Cannot fast-forward your working tree.
+		die "$(eval_gettext "Cannot fast-forward your working tree.
 After making sure that you saved anything precious from
-$ git diff '$orig_head'
+$ git diff \$orig_head
 output, run
 $ git reset --hard
-to recover.'
+to recover.")"
 
 fi
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 15/51] i18n: git-pull eval_gettext + warning message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to git-pull.sh +3 −3
diff --git a/git-pull.sh b/git-pull.sh
index 36f34d6..e8e534a 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -239,9 +239,9 @@ then
 	# $orig_head commit, but we are merging into $curr_head.
 	# First update the working tree to match $curr_head.
 
-	echo >&2 "Warning: fetch updated the current branch head."
-	echo >&2 "Warning: fast-forwarding your working tree from"
-	echo >&2 "Warning: commit $orig_head."
+	echo >&2 "$(eval_gettext "Warning: fetch updated the current branch head.
+Warning: fast-forwarding your working tree from
+Warning: commit \$orig_head.")"
 	git update-index -q --refresh
 	git read-tree -u -m "$orig_head" "$curr_head" ||
 		die "$(eval_gettext "Cannot fast-forward your working tree.
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 16/51] i18n: git-pull split up "no candidate" message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
Show changes to git-pull.sh +6 −5
diff --git a/git-pull.sh b/git-pull.sh
index e8e534a..95b1fb2 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -155,13 +155,14 @@ error_on_no_merge_candidates () {
 
 	if [ $# -gt 1 ]; then
 		if [ "$rebase" = true ]; then
-			printf "There is no candidate for rebasing against "
+			gettext "There is no candidate for rebasing against among the refs that you just fetched.
+Generally this means that you provided a wildcard refspec which had no
+matches on the remote end."; echo
 		else
-			printf "There are no candidates for merging "
+			gettext "There are no candidates for merging against among the refs that you just fetched.
+Generally this means that you provided a wildcard refspec which had no
+matches on the remote end."; echo
 		fi
-		echo "among the refs that you just fetched."
-		echo "Generally this means that you provided a wildcard refspec which had no"
-		echo "matches on the remote end."
 	elif [ $# -gt 0 ] && [ "$1" != "$remote" ]; then
 		echo "You asked to pull from the remote '$1', but did not specify"
 		echo "a branch. Because this is not the default configured remote"
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 17/51] i18n: git-pull "You asked to pull" message

Gettextize the "You asked to pull" error message. This message interpolated $1 which won't work with eval_gettext for obvious reasons, so I needed to provide an alias for it.

This also made the message easier to translate, and I added a TRANSLATORS comment to make it even easier.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)
Show changes to git-pull.sh +6 −3
diff --git a/git-pull.sh b/git-pull.sh
index 95b1fb2..821c48d 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -164,9 +164,12 @@ Generally this means that you provided a wildcard refspec which had no
 matches on the remote end."; echo
 		fi
 	elif [ $# -gt 0 ] && [ "$1" != "$remote" ]; then
-		echo "You asked to pull from the remote '$1', but did not specify"
-		echo "a branch. Because this is not the default configured remote"
-		echo "for your current branch, you must specify a branch on the command line."
+		requested_remote=$1
+		# TRANSLATORS: $requested_remote will be a remote name, like
+		# "origin" or "avar"
+		eval_gettext "You asked to pull from the remote '\$requested_remote', but did not specify
+a branch. Because this is not the default configured remote
+for your current branch, you must specify a branch on the command line."; echo
 	elif [ -z "$curr_branch" ]; then
 		echo "You are not currently on a branch, so I cannot use any"
 		echo "'branch.<branchname>.merge' in your configuration file."
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 18/51] i18n: git-pull "[...] not currently on a branch" message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
Show changes to git-pull.sh +5 −5
diff --git a/git-pull.sh b/git-pull.sh
index 821c48d..14d9eb5 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -171,11 +171,11 @@ matches on the remote end."; echo
 a branch. Because this is not the default configured remote
 for your current branch, you must specify a branch on the command line."; echo
 	elif [ -z "$curr_branch" ]; then
-		echo "You are not currently on a branch, so I cannot use any"
-		echo "'branch.<branchname>.merge' in your configuration file."
-		echo "Please specify which remote branch you want to use on the command"
-		echo "line and try again (e.g. 'git pull <repository> <refspec>')."
-		echo "See git-pull(1) for details."
+		gettext "You are not currently on a branch, so I cannot use any
+'branch.<branchname>.merge' in your configuration file.
+Please specify which remote branch you want to use on the command
+line and try again (e.g. 'git pull <repository> <refspec>').
+See git-pull(1) for details."; echo
 	elif [ -z "$upstream" ]; then
 		echo "You asked me to pull without telling me which branch you"
 		echo "want to $op_type $op_prep, and 'branch.${curr_branch}.merge' in"
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 19/51] i18n: git-pull "rebase against" / "merge with" messages

Gettextize the two messages that used "rebase against" and "merge with". Split them into two depending on whether we are rebasing or not.

This results in some duplication, but makes it much easier for translators to translate these messages.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |   84 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 52 insertions(+), 32 deletions(-)
Show changes to git-pull.sh +52 −32
diff --git a/git-pull.sh b/git-pull.sh
index 14d9eb5..ea87ac7 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -140,15 +140,6 @@ error_on_no_merge_candidates () {
 		esac
 	done
 
-	if test true = "$rebase"
-	then
-		op_type=rebase
-		op_prep=against
-	else
-		op_type=merge
-		op_prep=with
-	fi
-
 	curr_branch=${curr_branch#refs/heads/}
 	upstream=$(git config "branch.$curr_branch.merge")
 	remote=$(git config "branch.$curr_branch.remote")
@@ -177,30 +168,59 @@ Please specify which remote branch you want to use on the command
 line and try again (e.g. 'git pull <repository> <refspec>').
 See git-pull(1) for details."; echo
 	elif [ -z "$upstream" ]; then
-		echo "You asked me to pull without telling me which branch you"
-		echo "want to $op_type $op_prep, and 'branch.${curr_branch}.merge' in"
-		echo "your configuration file does not tell me, either. Please"
-		echo "specify which branch you want to use on the command line and"
-		echo "try again (e.g. 'git pull <repository> <refspec>')."
-		echo "See git-pull(1) for details."
-		echo
-		echo "If you often $op_type $op_prep the same branch, you may want to"
-		echo "use something like the following in your configuration file:"
-		echo
-		echo "    [branch \"${curr_branch}\"]"
-		echo "    remote = <nickname>"
-		echo "    merge = <remote-ref>"
-		test rebase = "$op_type" &&
-			echo "    rebase = true"
-		echo
-		echo "    [remote \"<nickname>\"]"
-		echo "    url = <url>"
-		echo "    fetch = <refspec>"
-		echo
-		echo "See git-config(1) for details."
+		if test true = "$rebase"
+		then
+			eval_gettext "You asked me to pull without telling me which branch you
+want to rebase against, and 'branch.\${curr_branch}.merge' in
+your configuration file does not tell me, either. Please
+specify which branch you want to use on the command line and
+try again (e.g. 'git pull <repository> <refspec>').
+See git-pull(1) for details.
+
+If you often rebase against the same branch, you may want to
+use something like the following in your configuration file:
+
+    [branch \"\${curr_branch}\"]
+    remote = <nickname>
+    merge = <remote-ref>
+    rebase = true
+
+    [remote \"<nickname>\"]
+    url = <url>
+    fetch = <refspec>
+
+See git-config(1) for details."; echo
+		else
+			eval_gettext "You asked me to pull without telling me which branch you
+want to merge with, and 'branch.\${curr_branch}.merge' in
+your configuration file does not tell me, either. Please
+specify which branch you want to use on the command line and
+try again (e.g. 'git pull <repository> <refspec>').
+See git-pull(1) for details.
+
+If you often merge with the same branch, you may want to
+use something like the following in your configuration file:
+
+    [branch \"\${curr_branch}\"]
+    remote = <nickname>
+    merge = <remote-ref>
+
+    [remote \"<nickname>\"]
+    url = <url>
+    fetch = <refspec>
+
+See git-config(1) for details."; echo
+		fi
 	else
-		echo "Your configuration specifies to $op_type $op_prep the ref '${upstream#refs/heads/}'"
-		echo "from the remote, but no such ref was fetched."
+		upstream_branch="${upstream#refs/heads/}"
+		if test true = "$rebase"
+		then
+			eval_gettext "Your configuration specifies to rebase against the ref '\$upstream_branch'
+from the remote, but no such ref was fetched."; echo
+		else
+			eval_gettext "Your configuration specifies to merge with the ref '\$upstream_branch'
+from the remote, but no such ref was fetched."; echo
+		fi
 	fi
 	exit 1
 }
-- 
1.7.4.1
Martin von Zweigbergk· Apr 3, 2011, 17:33 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 19/51] i18n: git-pull "rebase against" / "merge with" messages

On Sun, 3 Apr 2011, ?var Arnfj?r? Bjarmason wrote:
> Gettextize the two messages that used "rebase against" and "merge
> with". Split them into two depending on whether we are rebasing or not.

I think this conflicts a lot with my 15a147e (rebase: use @{upstream} if no upstream specified, 2011-02-09), which factored out most or all of the code touched in your patch a reused it in git-rebase.sh. I remember thinking about i18n at some point while extracting that code, but then I forgot about it. I have inlcluded the relevant part of that patch below for your reference. As you can see, I added another variable $cmd that is either "pull" or "rebase". It is used in plain text because the command matches the verb in English, but I guess that may not be ideal in all translations. Maybe we extract some parts of the message, so we don't have to make four nearly identical copies of the message... I don't have any concrete suggestion right now, though.

+error_on_missing_default_upstream () {
+	cmd="$1"
+	op_type="$2"
+	op_prep="$3"
+	example="$4"
+	branch_name=$(git symbolic-ref -q HEAD)
+	if test -z "$branch_name"
+	then
+		echo "You are not currently on a branch, so I cannot use any
+'branch.<branchname>.merge' in your configuration file.
+Please specify which branch you want to $op_type $op_prep on the command
+line and try again (e.g. '$example').
+See git-${cmd}(1) for details."
+	else
+		echo "You asked me to $cmd without telling me which branch you
+want to $op_type $op_prep, and 'branch.${branch_name#refs/heads/}.merge' in
+your configuration file does not tell me, either. Please
+specify which branch you want to use on the command line and
+try again (e.g. '$example').
+See git-${cmd}(1) for details.
+
+If you often $op_type $op_prep the same branch, you may want to
+use something like the following in your configuration file:
+    [branch \"${branch_name#refs/heads/}\"]
+    remote = <nickname>
+    merge = <remote-ref>"
+		test rebase = "$op_type" &&
+		echo "    rebase = true"
+		echo "
+    [remote \"<nickname>\"]
+    url = <url>
+    fetch = <refspec>
+
+See git-config(1) for details."
+	fi
+	exit 1
+}
Ævar Arnfjörð Bjarmason· Apr 4, 2011, 07:39 UTC · re: Martin von Zweigbergk · lore

Re: [PATCH 19/51] i18n: git-pull "rebase against" / "merge with" messages

On Sun, Apr 3, 2011 at 19:33, Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> wrote:

Show 16 quoted lines
> On Sun, 3 Apr 2011, ?var Arnfj?r? Bjarmason wrote:
>
>> Gettextize the two messages that used "rebase against" and "merge
>> with". Split them into two depending on whether we are rebasing or not.
>
> I think this conflicts a lot with my 15a147e (rebase: use @{upstream}
> if no upstream specified, 2011-02-09), which factored out most or all
> of the code touched in your patch a reused it in git-rebase.sh. I
> remember thinking about i18n at some point while extracting that code,
> but then I forgot about it. I have inlcluded the relevant part of that
> patch below for your reference. As you can see, I added another
> variable $cmd that is either "pull" or "rebase". It is used in plain
> text because the command matches the verb in English, but I guess that
> may not be ideal in all translations. Maybe we extract some parts of
> the message, so we don't have to make four nearly identical copies of
> the message... I don't have any concrete suggestion right now, though.

Translation-wise we'd ideally make Yet Another Copy of almost the same message. There's really no way around that sort of thing given the tools we're using.

However we can probably get away with having a variable that alternates between "pull" and "rebase", but I suspect those two words will invoke different grammar rules in some languages, and thus will impact the rest of the message.

So let's split this up when we resolve this conflict.
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 20/51] i18n: git-submodule add git-sh-i18n

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-submodule.sh +1 −0
diff --git a/git-submodule.sh b/git-submodule.sh
index 3a13397..1d128f0 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -14,6 +14,7 @@ USAGE="[--quiet] add [-b branch] [-f|--force] [--reference <repository>] [--] <r
    or: $dashless [--quiet] sync [--] [<path>...]"
 OPTIONS_SPEC=
 . git-sh-setup
+. git-sh-i18n
 . git-parse-remote
 require_work_tree
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 21/51] i18n: git-submodule echo + eval_gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to git-submodule.sh +2 −2
diff --git a/git-submodule.sh b/git-submodule.sh
index 1d128f0..7a10a01 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -217,7 +217,7 @@ cmd_add()
 	then
 		if test -d "$path"/.git -o -f "$path"/.git
 		then
-			echo "Adding existing repo at '$path' to the index"
+			echo "$(eval_gettext "Adding existing repo at '\$path' to the index")"
 		else
 			die "'$path' already exists and is not a valid git repo"
 		fi
@@ -629,7 +629,7 @@ cmd_summary() {
 				;; # removed
 			*)
 				# unexpected type
-				echo >&2 "unexpected mode $mod_dst"
+				echo >&2 "$(eval_gettext "unexpected mode \$mod_dst")"
 				continue ;;
 			esac
 		fi
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 22/51] i18n: git-submodule say + eval_gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to git-submodule.sh +1 −1
diff --git a/git-submodule.sh b/git-submodule.sh
index 7a10a01..ba80b22 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -841,7 +841,7 @@ cmd_sync()
 			;;
 		esac
 
-		say "Synchronizing submodule url for '$name'"
+		say "$(eval_gettext "Synchronizing submodule url for '\$name'")"
 		git config submodule."$name".url "$url"
 
 		if test -e "$path"/.git
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 23/51] i18n: git-submodule die + eval_gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh |   38 +++++++++++++++++++-------------------
 1 files changed, 19 insertions(+), 19 deletions(-)
Show changes to git-submodule.sh +19 −19
diff --git a/git-submodule.sh b/git-submodule.sh
index ba80b22..dcdda53 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -35,7 +35,7 @@ resolve_relative_url ()
 {
 	remote=$(get_default_remote)
 	remoteurl=$(git config "remote.$remote.url") ||
-		die "remote ($remote) does not have a url defined in .git/config"
+		die "$(eval_gettext "remote (\$remote) does not have a url defined in .git/config")"
 	url="$1"
 	remoteurl=${remoteurl%/}
 	sep=/
@@ -53,7 +53,7 @@ resolve_relative_url ()
 				sep=:
 				;;
 			*)
-				die "cannot strip one component off url '$remoteurl'"
+				die "$(eval_gettext "cannot strip one component off url '\$remoteurl'")"
 				;;
 			esac
 			;;
@@ -88,7 +88,7 @@ module_name()
 	name=$( git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
 		sed -n -e 's|^submodule\.\(.*\)\.path '"$re"'$|\1|p' )
        test -z "$name" &&
-       die "No submodule mapping found in .gitmodules for path '$path'"
+       die "$(eval_gettext "No submodule mapping found in .gitmodules for path '\$path'")"
        echo "$name"
 }
 
@@ -112,7 +112,7 @@ module_clone()
 	else
 		git-clone -n "$url" "$path"
 	fi ||
-	die "Clone of '$url' into submodule path '$path' failed"
+	die "$(eval_gettext "Clone of '\$url' into submodule path '\$path' failed")"
 }
 
 #
@@ -185,7 +185,7 @@ cmd_add()
 		realrepo=$repo
 		;;
 	*)
-		die "repo URL: '$repo' must be absolute or begin with ./|../"
+		die "$(eval_gettext "repo URL: '\$repo' must be absolute or begin with ./|../")"
 	;;
 	esac
 
@@ -202,7 +202,7 @@ cmd_add()
 			s|/*$||
 		')
 	git ls-files --error-unmatch "$path" > /dev/null 2>&1 &&
-	die "'$path' already exists in the index"
+	die "$(eval_gettext "'\$path' already exists in the index")"
 
 	if test -z "$force" && ! git add --dry-run --ignore-missing "$path" > /dev/null 2>&1
 	then
@@ -219,7 +219,7 @@ cmd_add()
 		then
 			echo "$(eval_gettext "Adding existing repo at '\$path' to the index")"
 		else
-			die "'$path' already exists and is not a valid git repo"
+			die "$(eval_gettext "'\$path' already exists and is not a valid git repo")"
 		fi
 
 		case "$repo" in
@@ -242,16 +242,16 @@ cmd_add()
 			'') git checkout -f -q ;;
 			?*) git checkout -f -q -B "$branch" "origin/$branch" ;;
 			esac
-		) || die "Unable to checkout submodule '$path'"
+		) || die "$(eval_gettext "Unable to checkout submodule '\$path'")"
 	fi
 
 	git add $force "$path" ||
-	die "Failed to add submodule '$path'"
+	die "$(eval_gettext "Failed to add submodule '\$path'")"
 
 	git config -f .gitmodules submodule."$path".path "$path" &&
 	git config -f .gitmodules submodule."$path".url "$repo" &&
 	git add --force .gitmodules ||
-	die "Failed to register submodule '$path'"
+	die "$(eval_gettext "Failed to register submodule '\$path'")"
 }
 
 #
@@ -301,7 +301,7 @@ cmd_foreach()
 					cmd_foreach "--recursive" "$@"
 				fi
 			) ||
-			die "Stopping at '$path'; script returned non-zero status."
+			die "$(eval_gettext "Stopping at '\$path'; script returned non-zero status.")"
 		fi
 	done
 }
@@ -344,7 +344,7 @@ cmd_init()
 
 		url=$(git config -f .gitmodules submodule."$name".url)
 		test -z "$url" &&
-		die "No url found for submodule path '$path' in .gitmodules"
+		die "$(eval_gettext "No url found for submodule path '\$path' in .gitmodules")"
 
 		# Possibly a url relative to parent
 		case "$url" in
@@ -354,14 +354,14 @@ cmd_init()
 		esac
 
 		git config submodule."$name".url "$url" ||
-		die "Failed to register url for submodule path '$path'"
+		die "$(eval_gettext "Failed to register url for submodule path '\$path'")"
 
 		upd="$(git config -f .gitmodules submodule."$name".update)"
 		test -z "$upd" ||
 		git config submodule."$name".update "$upd" ||
-		die "Failed to register update mode for submodule path '$path'"
+		die "$(eval_gettext "Failed to register update mode for submodule path '\$path'")"
 
-		say "Submodule '$name' ($url) registered for path '$path'"
+		say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$path'")"
 	done
 }
 
@@ -449,7 +449,7 @@ cmd_update()
 		else
 			subsha1=$(clear_local_git_env; cd "$path" &&
 				git rev-parse --verify HEAD) ||
-			die "Unable to find current revision in submodule path '$path'"
+			die "$(eval_gettext "Unable to find current revision in submodule path '\$path'")"
 		fi
 
 		if ! test -z "$update"
@@ -469,7 +469,7 @@ cmd_update()
 			then
 				(clear_local_git_env; cd "$path" &&
 					git-fetch) ||
-				die "Unable to fetch in submodule path '$path'"
+				die "$(eval_gettext "Unable to fetch in submodule path '\$path'")"
 			fi
 
 			# Is this something we just cloned?
@@ -505,7 +505,7 @@ cmd_update()
 		if test -n "$recursive"
 		then
 			(clear_local_git_env; cd "$path" && eval cmd_update "$orig_flags") ||
-			die "Failed to recurse into submodule path '$path'"
+			die "$(eval_gettext "Failed to recurse into submodule path '\$path'")"
 		fi
 	done
 }
@@ -797,7 +797,7 @@ cmd_status()
 				cd "$path" &&
 				eval cmd_status "$orig_args"
 			) ||
-			die "Failed to recurse into submodule path '$path'"
+			die "$(eval_gettext "Failed to recurse into submodule path '\$path'")"
 		fi
 	done
 }
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 24/51] i18n: git-submodule $update_module say + die messages

Gettextize $update_module say and die messages. These messages needed to be split up to make them translatable.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)
Show changes to git-submodule.sh +8 −9
diff --git a/git-submodule.sh b/git-submodule.sh
index dcdda53..c35fab0 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -482,24 +482,23 @@ cmd_update()
 			case "$update_module" in
 			rebase)
 				command="git rebase"
-				action="rebase"
-				msg="rebased onto"
+				die_msg="$(eval_gettext "Unable to rebase '\$sha1' in submodule path '\$path'")"
+				say_msg="$(eval_gettext "Submodule path '\$path': rebased into '\$sha1'")"
 				;;
 			merge)
 				command="git merge"
-				action="merge"
-				msg="merged in"
+				die_msg="$(eval_gettext "Unable to rebase '\$sha1' in submodule path '\$path'")"
+				say_msg="$(eval_gettext "Submodule path '\$path': merged in '\$sha1'")"
 				;;
 			*)
 				command="git checkout $force -q"
-				action="checkout"
-				msg="checked out"
+				die_msg="$(eval_gettext "Unable to rebase '\$sha1' in submodule path '\$path'")"
+				say_msg="$(eval_gettext "Submodule path '\$path': checked out '\$sha1'")"
 				;;
 			esac
 
-			(clear_local_git_env; cd "$path" && $command "$sha1") ||
-			die "Unable to $action '$sha1' in submodule path '$path'"
-			say "Submodule path '$path': $msg '$sha1'"
+			(clear_local_git_env; cd "$path" && $command "$sha1") || die $die_msg
+			say $say_msg
 		fi
 
 		if test -n "$recursive"
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 25/51] i18n: git-submodule "cached cannot be used" message

Gettextize the "--cached cannot be used with --files" message. Since this message starts with "--" we have to pass "--" as the first argument. This works with both GNU gettext 0.18.1 (as expected), and the gettext(1) on Solaris 10.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to git-submodule.sh +1 −1
diff --git a/git-submodule.sh b/git-submodule.sh
index c35fab0..28523b7 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -588,7 +588,7 @@ cmd_summary() {
 	if [ -n "$files" ]
 	then
 		test -n "$cached" &&
-		die "--cached cannot be used with --files"
+		die "$(gettext -- "--cached cannot be used with --files")"
 		diff_cmd=diff-files
 		head=
 	fi
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 26/51] i18n: git-submodule "Submodule change[...]" messages

Gettextize the "Submodules changed but not updated" and "Submodule changes to be committed" messages. This is explicitly tested for so we need to skip some tests with C_LOCALE_OUTPUT.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh             |    4 ++--
 t/t7401-submodule-summary.sh |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
Show changes to 2 files +3 −3

git-submodule.sh, t/t7401-submodule-summary.sh

diff --git a/git-submodule.sh b/git-submodule.sh
index 28523b7..5fe29a2 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -713,9 +713,9 @@ cmd_summary() {
 	done |
 	if test -n "$for_status"; then
 		if [ -n "$files" ]; then
-			echo "# Submodules changed but not updated:"
+			gettext "# Submodules changed but not updated:"; echo
 		else
-			echo "# Submodule changes to be committed:"
+			gettext "# Submodule changes to be committed:"; echo
 		fi
 		echo "#"
 		sed -e 's|^|# |' -e 's|^# $|#|'
diff --git a/t/t7401-submodule-summary.sh b/t/t7401-submodule-summary.sh
index 7d7fde0..efd220b 100755
--- a/t/t7401-submodule-summary.sh
+++ b/t/t7401-submodule-summary.sh
@@ -226,7 +226,7 @@ EOF
     test_cmp expected actual
 "
 
-test_expect_success '--for-status' "
+test_expect_success C_LOCALE_OUTPUT '--for-status' "
     git submodule summary --for-status HEAD^ >actual &&
     test_cmp actual - <<EOF
 # Submodule changes to be committed:
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 27/51] i18n: git-submodule $errmsg messages

Gettextize warning messages stored in the $errmsg variable using eval_gettext interpolation. This is explicitly tested for so we need to skip some tests with C_LOCALE_OUTPUT.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh             |    6 +++---
 t/t7401-submodule-summary.sh |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)
Show changes to 2 files +4 −4

git-submodule.sh, t/t7401-submodule-summary.sh

diff --git a/git-submodule.sh b/git-submodule.sh
index 5fe29a2..b6c9a5b 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -646,13 +646,13 @@ cmd_summary() {
 		total_commits=
 		case "$missing_src,$missing_dst" in
 		t,)
-			errmsg="  Warn: $name doesn't contain commit $sha1_src"
+			errmsg="$(eval_gettext "  Warn: \$name doesn't contain commit \$sha1_src")"
 			;;
 		,t)
-			errmsg="  Warn: $name doesn't contain commit $sha1_dst"
+			errmsg="$(eval_gettext "  Warn: \$name doesn't contain commit \$sha1_dst")"
 			;;
 		t,t)
-			errmsg="  Warn: $name doesn't contain commits $sha1_src and $sha1_dst"
+			errmsg="$(eval_gettext "  Warn: \$name doesn't contain commits \$sha1_src and \$sha1_dst")"
 			;;
 		*)
 			errmsg=
diff --git a/t/t7401-submodule-summary.sh b/t/t7401-submodule-summary.sh
index efd220b..1b703fb 100755
--- a/t/t7401-submodule-summary.sh
+++ b/t/t7401-submodule-summary.sh
@@ -155,7 +155,7 @@ EOF
 rm -f sm1 &&
 test_create_repo sm1 &&
 head6=$(add_file sm1 foo6 foo7)
-test_expect_success 'nonexistent commit' "
+test_expect_success C_LOCALE_OUTPUT 'nonexistent commit' "
     git submodule summary >actual &&
     cat >expected <<-EOF &&
 * sm1 $head4...$head6:
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 28/51] i18n: git-submodule "Entering [...]" message

Gettextize the "Entering [...]" message. This is explicitly tested for so we need to skip some tests with C_LOCALE_OUTPUT.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh             |    2 +-
 t/t7407-submodule-foreach.sh |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
Show changes to 2 files +3 −3

git-submodule.sh, t/t7407-submodule-foreach.sh

diff --git a/git-submodule.sh b/git-submodule.sh
index b6c9a5b..fceacf8 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -289,7 +289,7 @@ cmd_foreach()
 	do
 		if test -e "$path"/.git
 		then
-			say "Entering '$prefix$path'"
+			say "$(eval_gettext "Entering '\$prefix\$path'")"
 			name=$(module_name "$path")
 			(
 				prefix="$prefix$path/"
diff --git a/t/t7407-submodule-foreach.sh b/t/t7407-submodule-foreach.sh
index e5be13c..4aa2d34 100755
--- a/t/t7407-submodule-foreach.sh
+++ b/t/t7407-submodule-foreach.sh
@@ -68,7 +68,7 @@ Entering 'sub3'
 $pwd/clone-foo3-sub3-$sub3sha1
 EOF
 
-test_expect_success 'test basic "submodule foreach" usage' '
+test_expect_success C_LOCALE_OUTPUT 'test basic "submodule foreach" usage' '
 	git clone super clone &&
 	(
 		cd clone &&
@@ -153,7 +153,7 @@ Entering 'sub2'
 Entering 'sub3'
 EOF
 
-test_expect_success 'test messages from "foreach --recursive"' '
+test_expect_success C_LOCALE_OUTPUT 'test messages from "foreach --recursive"' '
 	(
 		cd clone2 &&
 		git submodule foreach --recursive "true" > ../actual
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 29/51] i18n: git-submodule "[...] path is ignored" message

Gettextize the "The following path is ignored" message. This is explicitly tested for so we need to skip some tests with C_LOCALE_OUTPUT.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh           |    6 +++---
 t/t7400-submodule-basic.sh |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)
Show changes to 2 files +4 −4

git-submodule.sh, t/t7400-submodule-basic.sh

diff --git a/git-submodule.sh b/git-submodule.sh
index fceacf8..43a10e2 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -206,9 +206,9 @@ cmd_add()
 
 	if test -z "$force" && ! git add --dry-run --ignore-missing "$path" > /dev/null 2>&1
 	then
-		echo >&2 "The following path is ignored by one of your .gitignore files:" &&
-		echo >&2 $path &&
-		echo >&2 "Use -f if you really want to add it."
+		echo >&2 "$(eval_gettext "The following path is ignored by one of your .gitignore files:
+\$path
+Use -f if you really want to add it.")"
 		exit 1
 	fi
 
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index 874279e..1911688 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -86,7 +86,7 @@ test_expect_success 'submodule add' '
 	test_cmp empty untracked
 '
 
-test_expect_success 'submodule add to .gitignored path fails' '
+test_expect_success C_LOCALE_OUTPUT 'submodule add to .gitignored path fails' '
 	(
 		cd addtest-ignore &&
 		cat <<-\EOF >expect &&
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 30/51] i18n: git-submodule "path not initialized" message

Gettextize the "Submodule path '$path' not initialized" message. This is explicitly tested for so we need to skip some tests with C_LOCALE_OUTPUT.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh           |    4 ++--
 t/t7400-submodule-basic.sh |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
Show changes to 2 files +3 −3

git-submodule.sh, t/t7400-submodule-basic.sh

diff --git a/git-submodule.sh b/git-submodule.sh
index 43a10e2..bc24b2f 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -436,8 +436,8 @@ cmd_update()
 			# Only mention uninitialized submodules when its
 			# path have been specified
 			test "$#" != "0" &&
-			say "Submodule path '$path' not initialized" &&
-			say "Maybe you want to use 'update --init'?"
+			say "$(eval_gettext "Submodule path '\$path' not initialized
+Maybe you want to use 'update --init'?")"
 			continue
 		fi
 
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index 1911688..eded7e9 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -349,7 +349,7 @@ test_expect_success 'apply submodule diff' '
 	test_cmp empty staged
 '
 
-test_expect_success 'update --init' '
+test_expect_success C_LOCALE_OUTPUT 'update --init' '
 	mv init init2 &&
 	git config -f .gitmodules submodule.example.url "$(pwd)/init2" &&
 	git config --remove-section submodule.example &&
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 31/51] i18n: git-submodule "blob" and "submodule" messages

Gettextize the words "blob" and "submodule", which will be interpolated in a message emitted by git-submodule. This is explicitly tested for so we need to skip some tests with C_LOCALE_OUTPUT.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-submodule.sh             |    6 ++++--
 t/t7401-submodule-summary.sh |    8 ++++----
 2 files changed, 8 insertions(+), 6 deletions(-)
Show changes to 2 files +8 −6

git-submodule.sh, t/t7401-submodule-summary.sh

diff --git a/git-submodule.sh b/git-submodule.sh
index bc24b2f..aced079 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -677,11 +677,13 @@ cmd_summary() {
 		sha1_abbr_dst=$(echo $sha1_dst | cut -c1-7)
 		if test $status = T
 		then
+			blob="$(gettext "blob")"
+			submodule="$(gettext "submodule")"
 			if test $mod_dst = 160000
 			then
-				echo "* $name $sha1_abbr_src(blob)->$sha1_abbr_dst(submodule)$total_commits:"
+				echo "* $name $sha1_abbr_src($blob)->$sha1_abbr_dst($submodule)$total_commits:"
 			else
-				echo "* $name $sha1_abbr_src(submodule)->$sha1_abbr_dst(blob)$total_commits:"
+				echo "* $name $sha1_abbr_src($submodule)->$sha1_abbr_dst($blob)$total_commits:"
 			fi
 		else
 			echo "* $name $sha1_abbr_src...$sha1_abbr_dst$total_commits:"
diff --git a/t/t7401-submodule-summary.sh b/t/t7401-submodule-summary.sh
index 1b703fb..548473b 100755
--- a/t/t7401-submodule-summary.sh
+++ b/t/t7401-submodule-summary.sh
@@ -121,7 +121,7 @@ git add sm1 &&
 rm -f sm1 &&
 mv sm1-bak sm1
 
-test_expect_success 'typechanged submodule(submodule->blob), --cached' "
+test_expect_success C_LOCALE_OUTPUT 'typechanged submodule(submodule->blob), --cached' "
     git submodule summary --cached >actual &&
     cat >expected <<-EOF &&
 * sm1 $head4(submodule)->$head5(blob) (3):
@@ -131,7 +131,7 @@ EOF
 	test_cmp actual expected
 "
 
-test_expect_success 'typechanged submodule(submodule->blob), --files' "
+test_expect_success C_LOCALE_OUTPUT 'typechanged submodule(submodule->blob), --files' "
     git submodule summary --files >actual &&
     cat >expected <<-EOF &&
 * sm1 $head5(blob)->$head4(submodule) (3):
@@ -143,7 +143,7 @@ EOF
 
 rm -rf sm1 &&
 git checkout-index sm1
-test_expect_success 'typechanged submodule(submodule->blob)' "
+test_expect_success C_LOCALE_OUTPUT 'typechanged submodule(submodule->blob)' "
     git submodule summary >actual &&
     cat >expected <<-EOF &&
 * sm1 $head4(submodule)->$head5(blob):
@@ -166,7 +166,7 @@ EOF
 "
 
 commit_file
-test_expect_success 'typechanged submodule(blob->submodule)' "
+test_expect_success C_LOCALE_OUTPUT 'typechanged submodule(blob->submodule)' "
     git submodule summary >actual &&
     cat >expected <<-EOF &&
 * sm1 $head5(blob)->$head6(submodule) (2):
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 32/51] i18n: git-stash add git-sh-i18n

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-stash.sh +1 −0
diff --git a/git-stash.sh b/git-stash.sh
index a305fb1..ff18364 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -14,6 +14,7 @@ SUBDIRECTORY_OK=Yes
 OPTIONS_SPEC=
 START_DIR=`pwd`
 . git-sh-setup
+. git-sh-i18n
 require_work_tree
 cd_to_toplevel
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 33/51] i18n: git-stash echo + gettext message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to git-stash.sh +1 −1
diff --git a/git-stash.sh b/git-stash.sh
index ff18364..9259f13 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -401,7 +401,7 @@ apply_stash () {
 		status=$?
 		if test -n "$INDEX_OPTION"
 		then
-			echo >&2 'Index was not unstashed.'
+			echo >&2 "$(gettext "Index was not unstashed.")"
 		fi
 		exit $status
 	fi
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 34/51] i18n: git-stash say + gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to git-stash.sh +2 −2
diff --git a/git-stash.sh b/git-stash.sh
index 9259f13..1fe8918 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -167,7 +167,7 @@ save_stash () {
 	git update-index -q --refresh
 	if no_changes
 	then
-		say 'No local changes to save'
+		say "$(gettext "No local changes to save")"
 		exit 0
 	fi
 	test -f "$GIT_DIR/logs/$ref_stash" ||
@@ -496,7 +496,7 @@ branch)
 	case $# in
 	0)
 		save_stash &&
-		say '(To restore them type "git stash apply")'
+		say "$(gettext "(To restore them type \"git stash apply\")")"
 		;;
 	*)
 		usage
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:45 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 35/51] i18n: git-stash die + gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |   36 ++++++++++++++++++------------------
 1 files changed, 18 insertions(+), 18 deletions(-)
Show changes to git-stash.sh +18 −18
diff --git a/git-stash.sh b/git-stash.sh
index 1fe8918..753ddf2 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -40,7 +40,7 @@ no_changes () {
 clear_stash () {
 	if test $# != 0
 	then
-		die "git stash clear with parameters is unimplemented"
+		die "$(gettext "git stash clear with parameters is unimplemented")"
 	fi
 	if current=$(git rev-parse --verify $ref_stash 2>/dev/null)
 	then
@@ -62,7 +62,7 @@ create_stash () {
 	then
 		head=$(git rev-list --oneline -n 1 HEAD --)
 	else
-		die "You do not have the initial commit yet"
+		die "$(gettext "You do not have the initial commit yet")"
 	fi
 
 	if branch=$(git symbolic-ref -q HEAD)
@@ -77,7 +77,7 @@ create_stash () {
 	i_tree=$(git write-tree) &&
 	i_commit=$(printf 'index on %s\n' "$msg" |
 		git commit-tree $i_tree -p $b_commit) ||
-		die "Cannot save the current index state"
+		die "$(gettext "Cannot save the current index state")"
 
 	if test -z "$patch_mode"
 	then
@@ -91,7 +91,7 @@ create_stash () {
 			git write-tree &&
 			rm -f "$TMPindex"
 		) ) ||
-			die "Cannot save the current worktree state"
+			die "$(gettext "Cannot save the current worktree state")"
 
 	else
 
@@ -104,14 +104,14 @@ create_stash () {
 
 		# state of the working tree
 		w_tree=$(GIT_INDEX_FILE="$TMP-index" git write-tree) ||
-		die "Cannot save the current worktree state"
+		die "$(gettext "Cannot save the current worktree state")"
 
 		git diff-tree -p HEAD $w_tree > "$TMP-patch" &&
 		test -s "$TMP-patch" ||
-		die "No changes selected"
+		die "$(gettext "No changes selected")"
 
 		rm -f "$TMP-index" ||
-		die "Cannot remove temporary index (can't happen)"
+		die "$(gettext "Cannot remove temporary index (can't happen)")"
 
 	fi
 
@@ -124,7 +124,7 @@ create_stash () {
 	fi
 	w_commit=$(printf '%s\n' "$stash_msg" |
 		git commit-tree $w_tree -p $b_commit -p $i_commit) ||
-		die "Cannot record working tree state"
+		die "$(gettext "Cannot record working tree state")"
 }
 
 save_stash () {
@@ -171,7 +171,7 @@ save_stash () {
 		exit 0
 	fi
 	test -f "$GIT_DIR/logs/$ref_stash" ||
-		clear_stash || die "Cannot initialize stash"
+		clear_stash || die "$(gettext "Cannot initialize stash")"
 
 	create_stash "$stash_msg"
 
@@ -179,7 +179,7 @@ save_stash () {
 	: >>"$GIT_DIR/logs/$ref_stash"
 
 	git update-ref -m "$stash_msg" $ref_stash $w_commit ||
-		die "Cannot save the current status"
+		die "$(gettext "Cannot save the current status")"
 	say Saved working directory and index state "$stash_msg"
 
 	if test -z "$patch_mode"
@@ -192,7 +192,7 @@ save_stash () {
 		fi
 	else
 		git apply -R < "$TMP-patch" ||
-		die "Cannot remove worktree changes"
+		die "$(gettext "Cannot remove worktree changes")"
 
 		if test -z "$keep_index"
 		then
@@ -287,7 +287,7 @@ parse_flags_and_rev()
 
 	case $# in
 		0)
-			have_stash || die "No stash found."
+			have_stash || die "$(gettext "No stash found.")"
 			set -- ${ref_stash}@{0}
 		;;
 		1)
@@ -347,11 +347,11 @@ apply_stash () {
 
 	git update-index -q --refresh &&
 	git diff-files --quiet --ignore-submodules ||
-		die 'Cannot apply to a dirty working tree, please stage your changes'
+		die "$(gettext "Cannot apply to a dirty working tree, please stage your changes")"
 
 	# current index state
 	c_tree=$(git write-tree) ||
-		die 'Cannot apply a stash in the middle of a merge'
+		die "$(gettext "Cannot apply a stash in the middle of a merge")"
 
 	unstashed_index_tree=
 	if test -n "$INDEX_OPTION" && test "$b_tree" != "$i_tree" &&
@@ -359,9 +359,9 @@ apply_stash () {
 	then
 		git diff-tree --binary $s^2^..$s^2 | git apply --cached
 		test $? -ne 0 &&
-			die 'Conflicts in index. Try without --index.'
+			die "$(gettext "Conflicts in index. Try without --index.")"
 		unstashed_index_tree=$(git write-tree) ||
-			die 'Could not save index tree'
+			die "$(gettext "Could not save index tree")"
 		git reset
 	fi
 
@@ -387,7 +387,7 @@ apply_stash () {
 			git diff-index --cached --name-only --diff-filter=A $c_tree >"$a" &&
 			git read-tree --reset $c_tree &&
 			git update-index --add --stdin <"$a" ||
-				die "Cannot unstage modified files"
+				die "$(gettext "Cannot unstage modified files")"
 			rm -f "$a"
 		fi
 		squelch=
@@ -425,7 +425,7 @@ drop_stash () {
 }
 
 apply_to_branch () {
-	test -n "$1" || die 'No branch name specified'
+	test -n "$1" || die "$(gettext "No branch name specified")"
 	branch=$1
 	shift 1
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 36/51] i18n: git-stash die + eval_gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to git-stash.sh +2 −2
diff --git a/git-stash.sh b/git-stash.sh
index 753ddf2..06f00ae 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -294,7 +294,7 @@ parse_flags_and_rev()
 			:
 		;;
 		*)
-			die "Too many revisions specified: $REV"
+			die "$(eval_gettext "Too many revisions specified: \$REV")"
 		;;
 	esac
 
@@ -318,7 +318,7 @@ parse_flags_and_rev()
 		# this condition with a non-zero status code but as of 1.7.2.1 it
 		# it did not. So, we use non-empty stderr output as a proxy for the
 		# condition of interest.
-		test -z "$(git rev-parse "$REV" 2>&1 >/dev/null)" || die "$REV does not exist in the stash log"
+		test -z "$(git rev-parse "$REV" 2>&1 >/dev/null)" || die "$(eval_gettext "\$REV does not exist in the stash log")"
 	fi
 
 }
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 37/51] i18n: git-stash die + eval_gettext $* messages

Gettextize messages that used the $* variable. Since it's subroutine local we have to provide an alias for it for eval_gettext.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
Show changes to git-stash.sh +8 −2
diff --git a/git-stash.sh b/git-stash.sh
index 06f00ae..afe7043 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -330,7 +330,10 @@ is_stash_like()
 }
 
 assert_stash_like() {
-	is_stash_like "$@" || die "'$*' is not a stash-like commit"
+	is_stash_like "$@" || {
+		args="$*"
+		die "$(eval_gettext "'\$args' is not a stash-like commit")"
+	}
 }
 
 is_stash_ref() {
@@ -338,7 +341,10 @@ is_stash_ref() {
 }
 
 assert_stash_ref() {
-	is_stash_ref "$@" || die "'$*' is not a stash reference"
+	is_stash_ref "$@" || {
+		args="$*"
+		die "$(eval_gettext "'\$args' is not a stash reference")"
+	}
 }
 
 apply_stash () {
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 38/51] i18n: git-stash die + eval_gettext $1 messages

Gettextize a messages that used the $1 variable. Since it's subroutine local we have to provide an alias for it for eval_gettext.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
Show changes to git-stash.sh +4 −1
diff --git a/git-stash.sh b/git-stash.sh
index afe7043..9ab5ed9 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -298,7 +298,10 @@ parse_flags_and_rev()
 		;;
 	esac
 
-	REV=$(git rev-parse --quiet --symbolic --verify $1 2>/dev/null) || die "$1 is not valid reference"
+	REV=$(git rev-parse --quiet --symbolic --verify $1 2>/dev/null) || {
+		reference="$1"
+		die "$(eval_gettext "\$reference is not valid reference")"
+	}
 
 	i_commit=$(git rev-parse --quiet --verify $REV^2 2>/dev/null) &&
 	set -- $(git rev-parse $REV $REV^1 $REV: $REV^1: $REV^2: 2>/dev/null) &&
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 39/51] i18n: git-stash "unknown option" message

Gettextize the "unknown option for 'stash save'" message that's shown on:

    $ git stash save --blah-blah
    error: unknown option for 'stash save': --blah-blah
           To provide a message, use git stash save -- '--blah-blah'
    Usage: git stash list [<options>]

In a translation the second line should be aligned with the first one. I've added a TRANSLATORS comment to indicate this.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
Show changes to git-stash.sh +8 −2
diff --git a/git-stash.sh b/git-stash.sh
index 9ab5ed9..0468499 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -151,8 +151,14 @@ save_stash () {
 			break
 			;;
 		-*)
-			echo "error: unknown option for 'stash save': $1"
-			echo "       To provide a message, use git stash save -- '$1'"
+			option="$1"
+			# TRANSLATORS: $option is an invalid option, like
+			# `--blah-blah'. The 7 spaces at the beginning of the
+			# second line correspond to "error: ". So you should line
+			# up the second line with however many characters the
+			# translation of "error: " takes in your language.
+			eval_gettext "$("error: unknown option for 'stash save': \$option
+       To provide a message, use git stash save -- '\$option'")"; echo
 			usage
 			;;
 		*)
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 40/51] i18n: git-stash drop_stash say/die messages

Gettextize the say/die eval_gettext messages in the drop_stash function. Since making these translatable would result in a long line I've wrapped this into two lines.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-stash.sh |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
Show changes to git-stash.sh +2 −1
diff --git a/git-stash.sh b/git-stash.sh
index 0468499..5f00bf7 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -433,7 +433,8 @@ drop_stash () {
 	assert_stash_ref "$@"
 
 	git reflog delete --updateref --rewrite "${REV}" &&
-		say "Dropped ${REV} ($s)" || die "${REV}: Could not drop stash entry"
+		say "$(eval_gettext "Dropped \${REV} (\$s)")" ||
+		die "$(eval_gettext "\${REV}: Could not drop stash entry")"
 
 	# clear_stash if we just dropped the last stash entry
 	git rev-parse --verify "$ref_stash@{0}" > /dev/null 2>&1 || clear_stash
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 41/51] i18n: git-bisect add git-sh-i18n

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-bisect.sh +1 −0
diff --git a/git-bisect.sh b/git-bisect.sh
index 415a8d0..751c733 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -28,6 +28,7 @@ Please use "git help bisect" to get the full man page.'
 
 OPTIONS_SPEC=
 . git-sh-setup
+. git-sh-i18n
 require_work_tree
 
 _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 42/51] i18n: git-bisect gettext + echo message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to git-bisect.sh +2 −2
diff --git a/git-bisect.sh b/git-bisect.sh
index 751c733..4420b46 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -308,7 +308,7 @@ bisect_visualize() {
 
 bisect_reset() {
 	test -s "$GIT_DIR/BISECT_START" || {
-		echo "We are not bisecting."
+		gettext "We are not bisecting."; echo
 		return
 	}
 	case "$#" in
@@ -414,7 +414,7 @@ bisect_run () {
       fi
 
       if sane_grep "is the first bad commit" "$GIT_DIR/BISECT_RUN" > /dev/null; then
-	  echo "bisect run success"
+	  gettext "bisect run success"; echo
 	  exit 0;
       fi
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 43/51] i18n: git-bisect echo + gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to git-bisect.sh +3 −3
diff --git a/git-bisect.sh b/git-bisect.sh
index 4420b46..80607dc 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -36,7 +36,7 @@ _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
 
 bisect_autostart() {
 	test -s "$GIT_DIR/BISECT_START" || {
-		echo >&2 'You need to start by "git bisect start"'
+		echo >&2 "$(gettext "You need to start by \"git bisect start\"")"
 		if test -t 0
 		then
 			echo >&2 -n 'Do you want me to do it for you [Y/n]? '
@@ -239,7 +239,7 @@ bisect_next_check() {
 	t,,good)
 		# have bad but not good.  we could bisect although
 		# this is less optimum.
-		echo >&2 'Warning: bisecting only with a bad commit.'
+		echo >&2 "$(gettext "Warning: bisecting only with a bad commit.")"
 		if test -t 0
 		then
 			printf >&2 'Are you sure [Y/n]? '
@@ -403,7 +403,7 @@ bisect_run () {
 
       if sane_grep "first bad commit could be any of" "$GIT_DIR/BISECT_RUN" \
 		> /dev/null; then
-	  echo >&2 "bisect run cannot continue any more"
+	  echo >&2 "$(gettext "bisect run cannot continue any more")"
 	  exit $res
       fi
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 44/51] i18n: git-bisect echo + eval_gettext message

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to git-bisect.sh +2 −2
diff --git a/git-bisect.sh b/git-bisect.sh
index 80607dc..e74be9c 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -408,8 +408,8 @@ bisect_run () {
       fi
 
       if [ $res -ne 0 ]; then
-	  echo >&2 "bisect run failed:"
-	  echo >&2 "'bisect_state $state' exited with error code $res"
+	  echo >&2 "$(eval_gettext "bisect run failed:
+'bisect_state \$state' exited with error code \$res")"
 	  exit $res
       fi
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 45/51] i18n: git-bisect die + gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)
Show changes to git-bisect.sh +8 −8
diff --git a/git-bisect.sh b/git-bisect.sh
index e74be9c..ef9af0b 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -58,7 +58,7 @@ bisect_start() {
 	#
 	head=$(GIT_DIR="$GIT_DIR" git symbolic-ref -q HEAD) ||
 	head=$(GIT_DIR="$GIT_DIR" git rev-parse --verify HEAD) ||
-	die "Bad HEAD - I need a HEAD"
+	die "$(gettext "Bad HEAD - I need a HEAD")"
 
 	#
 	# Check if we are bisecting.
@@ -77,11 +77,11 @@ bisect_start() {
 			# cogito usage, and cogito users should understand
 			# it relates to cg-seek.
 			[ -s "$GIT_DIR/head-name" ] &&
-				die "won't bisect on seeked tree"
+				die "$(gettext "won't bisect on seeked tree")"
 			start_head="${head#refs/heads/}"
 			;;
 		*)
-			die "Bad HEAD - strange symbolic ref"
+			die "$(gettext "Bad HEAD - strange symbolic ref")"
 			;;
 		esac
 	fi
@@ -198,10 +198,10 @@ bisect_state() {
 	state=$1
 	case "$#,$state" in
 	0,*)
-		die "Please call 'bisect_state' with at least one argument." ;;
+		die "$(gettext "Please call 'bisect_state' with at least one argument.")" ;;
 	1,bad|1,good|1,skip)
 		rev=$(git rev-parse --verify HEAD) ||
-			die "Bad rev input: HEAD"
+			die "$(gettext "Bad rev input: HEAD")"
 		bisect_write "$state" "$rev"
 		check_expected_revs "$rev" ;;
 	2,bad|*,good|*,skip)
@@ -216,7 +216,7 @@ bisect_state() {
 		eval "$eval"
 		check_expected_revs "$@" ;;
 	*,bad)
-		die "'git bisect bad' can take only one argument." ;;
+		die "$(gettext "'git bisect bad' can take only one argument.")" ;;
 	*)
 		usage ;;
 	esac
@@ -363,7 +363,7 @@ bisect_replay () {
 		good|bad|skip)
 			bisect_write "$command" "$rev" ;;
 		*)
-			die "?? what are you talking about?" ;;
+			die "$(gettext "?? what are you talking about?")" ;;
 		esac
 	done <"$1"
 	bisect_auto_next
@@ -422,7 +422,7 @@ bisect_run () {
 }
 
 bisect_log () {
-	test -s "$GIT_DIR/BISECT_LOG" || die "We are not bisecting."
+	test -s "$GIT_DIR/BISECT_LOG" || die "$(gettext "We are not bisecting.")"
 	cat "$GIT_DIR/BISECT_LOG"
 }
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 46/51] i18n: git-bisect die + eval_gettext messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
Show changes to git-bisect.sh +6 −6
diff --git a/git-bisect.sh b/git-bisect.sh
index ef9af0b..2e755cd 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -111,7 +111,7 @@ bisect_start() {
 	    *)
 		rev=$(git rev-parse -q --verify "$arg^{commit}") || {
 		    test $has_double_dash -eq 1 &&
-		        die "'$arg' does not appear to be a valid revision"
+		        die "$(eval_gettext "'\$arg' does not appear to be a valid revision")"
 		    break
 		}
 		case $bad_seen in
@@ -156,7 +156,7 @@ bisect_write() {
 	case "$state" in
 		bad)		tag="$state" ;;
 		good|skip)	tag="$state"-"$rev" ;;
-		*)		die "Bad bisect_write argument: $state" ;;
+		*)		die "$(eval_gettext "Bad bisect_write argument: \$state")" ;;
 	esac
 	git update-ref "refs/bisect/$tag" "$rev" || exit
 	echo "# $state: $(git show-branch $rev)" >>"$GIT_DIR/BISECT_LOG"
@@ -184,7 +184,7 @@ bisect_skip() {
 	do
 	    case "$arg" in
             *..*)
-                revs=$(git rev-list "$arg") || die "Bad rev input: $arg" ;;
+                revs=$(git rev-list "$arg") || die "$(eval_gettext "Bad rev input: \$arg")" ;;
             *)
                 revs=$(git rev-parse --sq-quote "$arg") ;;
 	    esac
@@ -210,7 +210,7 @@ bisect_state() {
 		for rev in "$@"
 		do
 			sha=$(git rev-parse --verify "$rev^{commit}") ||
-				die "Bad rev input: $rev"
+				die "$(eval_gettext "Bad rev input: \$rev")"
 			eval="$eval bisect_write '$state' '$sha'; "
 		done
 		eval "$eval"
@@ -322,8 +322,8 @@ bisect_reset() {
 	if git checkout "$branch" -- ; then
 		bisect_clean_state
 	else
-		die "Could not check out original HEAD '$branch'." \
-				"Try 'git bisect reset <commit>'."
+		die "$(eval_gettext "Could not check out original HEAD '\$branch'.
+Try 'git bisect reset <commit>'.")"
 	fi
 }
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 47/51] i18n: git-bisect bisect_run + $@ messages

Gettextize bisect_run messages that use the $@ variable. Since it's subroutine local we have to provide an alias for it for eval_gettext.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
Show changes to git-bisect.sh +4 −3
diff --git a/git-bisect.sh b/git-bisect.sh
index 2e755cd..d06fa56 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -374,14 +374,15 @@ bisect_run () {
 
     while true
     do
-      echo "running $@"
+      command="$@"
+      eval_gettext "running \$command"; echo
       "$@"
       res=$?
 
       # Check for really bad run error.
       if [ $res -lt 0 -o $res -ge 128 ]; then
-	  echo >&2 "bisect run failed:"
-	  echo >&2 "exit code $res from '$@' is < 0 or >= 128"
+	  echo >&2 "$(eval_gettext "bisect run failed:
+exit code \$res from '\$command' is < 0 or >= 128")"
 	  exit $res
       fi
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 48/51] i18n: git-bisect bisect_reset + $1 messages

ettextize bisect_reset messages that use the $1 variable. Since it's subroutine local we have to provide an alias for it for eval_gettext.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
Show changes to git-bisect.sh +4 −2
diff --git a/git-bisect.sh b/git-bisect.sh
index d06fa56..7bd78ab 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -313,8 +313,10 @@ bisect_reset() {
 	}
 	case "$#" in
 	0) branch=$(cat "$GIT_DIR/BISECT_START") ;;
-	1) git rev-parse --quiet --verify "$1^{commit}" > /dev/null ||
-	       die "'$1' is not a valid commit"
+	1) git rev-parse --quiet --verify "$1^{commit}" > /dev/null || {
+	       invalid="$1"
+	       die "$(eval_gettext "'\$invalid' is not a valid commit")"
+	   }
 	   branch="$1" ;;
 	*)
 	    usage ;;
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 49/51] i18n: git-bisect bisect_replay + $1 messages

Gettextize bisect_replay messages that use the $1 variable. Since it's subroutine local we have to provide an alias for it for eval_gettext.

Since I was doing that anyway I've changed all other uses of $1 variable to use the alias variable for clarity.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
Show changes to git-bisect.sh +4 −3
diff --git a/git-bisect.sh b/git-bisect.sh
index 7bd78ab..e05b53b 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -348,8 +348,9 @@ bisect_clean_state() {
 }
 
 bisect_replay () {
-	test "$#" -eq 1 || die "No logfile given"
-	test -r "$1" || die "cannot read $1 for replaying"
+	file="$1"
+	test "$#" -eq 1 || die "$(gettext "No logfile given")"
+	test -r "$file" || die "$(eval_gettext "cannot read \$file for replaying")"
 	bisect_reset
 	while read git bisect command rev
 	do
@@ -367,7 +368,7 @@ bisect_replay () {
 		*)
 			die "$(gettext "?? what are you talking about?")" ;;
 		esac
-	done <"$1"
+	done <"$file"
 	bisect_auto_next
 }
 
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 50/51] i18n: git-bisect [Y/n] messages

Gettextize the [Y/n] questions git-bisect presents, and leave a note in a TRANSLATORS comment explaining that translators have to preserve a mention of the Y/n characters since the program will expect them, and not their localized equivalents.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
Show changes to git-bisect.sh +8 −2
diff --git a/git-bisect.sh b/git-bisect.sh
index e05b53b..9bc18fe 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -39,7 +39,10 @@ bisect_autostart() {
 		echo >&2 "$(gettext "You need to start by \"git bisect start\"")"
 		if test -t 0
 		then
-			echo >&2 -n 'Do you want me to do it for you [Y/n]? '
+			# TRANSLATORS: Make sure to include [Y] and [n] in your
+			# translation. The program will only accept English input
+			# at this point.
+			echo >&2 -n "$(gettext "Do you want me to do it for you [Y/n]? ")"
 			read yesno
 			case "$yesno" in
 			[Nn]*)
@@ -242,7 +245,10 @@ bisect_next_check() {
 		echo >&2 "$(gettext "Warning: bisecting only with a bad commit.")"
 		if test -t 0
 		then
-			printf >&2 'Are you sure [Y/n]? '
+			# TRANSLATORS: Make sure to include [Y] and [n] in your
+			# translation. The program will only accept English input
+			# at this point.
+			printf >&2 "$(gettext "Are you sure [Y/n]? ")"
 			read yesno
 			case "$yesno" in [Nn]*) exit 1 ;; esac
 		fi
-- 
1.7.4.1
Ævar Arnfjörð Bjarmason· Apr 3, 2011, 16:46 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 51/51] i18n: git-bisect bisect_next_check "You need to" message

Gettextize the "You need to start by" message in bisect_next_check. This message assembled English output by hand so it needed to be split up to make it translatable.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-bisect.sh |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)
Show changes to git-bisect.sh +10 −9
diff --git a/git-bisect.sh b/git-bisect.sh
index 9bc18fe..2b17615 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -255,15 +255,16 @@ bisect_next_check() {
 		: bisect without good...
 		;;
 	*)
-		THEN=''
-		test -s "$GIT_DIR/BISECT_START" || {
-			echo >&2 'You need to start by "git bisect start".'
-			THEN='then '
-		}
-		echo >&2 'You '$THEN'need to give me at least one good' \
-			'and one bad revisions.'
-		echo >&2 '(You can use "git bisect bad" and' \
-			'"git bisect good" for that.)'
+
+		if test -s "$GIT_DIR/BISECT_START"
+		then
+			echo >&2 "$(gettext "You need to give me at least one good and one bad revisions.
+(You can use \"git bisect bad\" and \"git bisect good\" for that.)")"
+		else
+			echo >&2 "$(gettext "You need to start by \"git bisect start\".
+You then need to give me at least one good and one bad revisions.
+(You can use \"git bisect bad\" and \"git bisect good\" for that.)")"
+		fi
 		exit 1 ;;
 	esac
 }
-- 
1.7.4.1
Junio C Hamano· Apr 3, 2011, 19:05 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 00/51] i18n: Shell script translations

Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
Show 5 quoted lines
> Following the "i18n: Shell script translation infrastructure"
> series. These are the actual shell script translations. Together these
> series add up to everything from:
>
>     git://github.com/avar/git.git ab/i18n-sh-only

I am obviously not going to queue these patches right at this moment, but people with topics in flight or in their head need to take a look at the parts of this series that may overlap with what they are touching, and plan to rebase their work when the time comes.

What is more urgent at this moment in this cycle is to catch and adjust the fallouts from the merges of topics that started before ab/i18n topic. You caught one in t2019 that didn't mark a test that examines the output for a translatable string with C_LOCALE_OUTPUT (as there was no such thing when the topic started).

There may be other similar adjustments that are needed in tests, and also I suspect there are messages that are not marked with the _() markers that came from other topics. Because we shouldn't see too many new messages in the code appearing from now on until 1.7.5 final, this is a perfect time to catch and adjust these kinds of issues.

Thanks.
Ævar Arnfjörð Bjarmason· Apr 10, 2011, 13:04 UTC · re: Junio C Hamano · lore

Re: [PATCH 00/51] i18n: Shell script translations

On Sun, Apr 3, 2011 at 21:05, Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
>
>> Following the "i18n: Shell script translation infrastructure"
>> series. These are the actual shell script translations. Together these
>> series add up to everything from:
>>
>>     git://github.com/avar/git.git ab/i18n-sh-only
>
> I am obviously not going to queue these patches right at this moment, but
> people with topics in flight or in their head need to take a look at the
> parts of this series that may overlap with what they are touching, and
> plan to rebase their work when the time comes.
So would after 1.7.5 be a good time to submit them?
Show 11 quoted lines
> What is more urgent at this moment in this cycle is to catch and adjust
> the fallouts from the merges of topics that started before ab/i18n topic.
> You caught one in t2019 that didn't mark a test that examines the output
> for a translatable string with C_LOCALE_OUTPUT (as there was no such thing
> when the topic started).
>
> There may be other similar adjustments that are needed in tests, and also
> I suspect there are messages that are not marked with the _() markers that
> came from other topics.  Because we shouldn't see too many new messages in
> the code appearing from now on until 1.7.5 final, this is a perfect time
> to catch and adjust these kinds of issues.
I'll try to do this and submit it before 1.7.5.

← back to recent threads