threads / patch / 27299

patch, 48 partsi18n: Add shell script translations (depends on infrastructure)

Subject: [PATCH 00/48] i18n: Add shell script translations (depends on infrastructure)

## tl;dr

59 messages between May 8, 2011 and May 13, 2011. Diffs are folded; open one to read it.

replies: 58people: 6as markdown or json

Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · lore

This series builds on the "i18n: Add shell script translation infrastructure" series and adds the translations for the common *.sh programs.

Changes since last time:
 * Fixed up for new broken tests under gettext poison
 * Now using the test_i18ncmp and test_i18ngrep functions
 * Ejected some git-pull patches:
    pick 969ef13 i18n: git-pull split up "no candidate" message
    pick 8eb125e i18n: git-pull "You asked to pull" message
    pick c7d7d56 i18n: git-pull "[...] not currently on a branch" message
    pick 43e6a9f i18n: git-pull "rebase against" / "merge with" messages
   These were all used by error_on_no_merge_candidates and recently
   split into git-parse-remote. It's too hard to keep rebasing these
   when the code is being changed from under me, I'll submit a series
   to do these separately once this series is in master.
Ævar Arnfjörð Bjarmason (48):
  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 "Falling back" say 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-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                    |   74 ++++++++++++++++++----------------
 git-bisect.sh                |   92 +++++++++++++++++++++++------------------
 git-pull.sh                  |   31 +++++++-------
 git-stash.sh                 |   73 ++++++++++++++++++++-------------
 git-submodule.sh             |   92 +++++++++++++++++++++--------------------
 t/t4150-am.sh                |    2 +-
 t/t4151-am-abort.sh          |    5 +-
 t/t7400-submodule-basic.sh   |    4 +-
 t/t7401-submodule-summary.sh |   12 +++---
 t/t7406-submodule-update.sh  |    2 +-
 t/t7407-submodule-foreach.sh |    4 +-
 11 files changed, 214 insertions(+), 177 deletions(-)
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 01/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 02/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 03/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 04/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 05/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 06/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 07/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 08/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 09/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 10/48] i18n: git-am "Falling back" say message

Make the "Falling back to patching base and 3-way merge..." message used by fall_back_3way() translatable.

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 2c8770b..903d1e3 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -148,7 +148,7 @@ It does not apply to blobs recorded in its index.")"
     orig_tree=$(cat "$dotest/patch-merge-base") &&
     rm -fr "$dotest"/patch-merge-* || exit 1
 
-    say Falling back to patching base and 3-way merge...
+    say "$(gettext "Falling back to patching base and 3-way merge...")"
 
     # This is not so wrong.  Depending on which base we picked,
     # orig_tree may be wildly different from ours, but his_tree
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 11/48] 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 changed to use the test_i18* functions along with this translation.

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

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

diff --git a/git-am.sh b/git-am.sh
index 903d1e3..77ecae7 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..151404e 100755
--- a/t/t4150-am.sh
+++ b/t/t4150-am.sh
@@ -465,7 +465,7 @@ test_expect_success 'am newline in subject' '
 	test_tick &&
 	sed -e "s/second/second \\\n foo/" patch1 >patchnl &&
 	git am <patchnl >output.out 2>&1 &&
-	grep "^Applying: second \\\n foo$" output.out
+	test_i18ngrep "^Applying: second \\\n foo$" output.out
 '
 
 test_expect_success 'am -q is quiet' '
diff --git a/t/t4151-am-abort.sh b/t/t4151-am-abort.sh
index c95c4cc..1176bcc 100755
--- a/t/t4151-am-abort.sh
+++ b/t/t4151-am-abort.sh
@@ -45,8 +45,9 @@ do
 
 	test_expect_success "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 &&
+		test_i18ngrep "^Applying" output >output.applying &&
+		test_i18ngrep "^Applying: 6$" output.applying &&
+		test_i18ncmp file-2-expect file-2 &&
 		test ! -f .git/MERGE_RR
 	'
 
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 12/48] 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 77ecae7..8554a67 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 13/48] 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 fb9e2df..05011b1 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 14/48] i18n: git-pull die messages

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 git-pull.sh |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)
Show changes to git-pull.sh +9 −9
diff --git a/git-pull.sh b/git-pull.sh
index 05011b1..acb0c37 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
 }
 
@@ -186,7 +186,7 @@ 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
 		require_clean_work_tree "pull with rebase" "Please commit or stash them."
@@ -242,11 +242,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 15/48] 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 acb0c37..06dcd81 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -222,12 +222,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 16/48] 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 06dcd81..79ba9ab 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -217,9 +217,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.4
Bernhard R. Link· May 8, 2011, 16:52 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 16/48] i18n: git-pull eval_gettext + warning message

* Ævar Arnfjörð Bjarmason <avarab@gmail.com> [110508 14:23]:
Show 19 quoted lines
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  git-pull.sh |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/git-pull.sh b/git-pull.sh
> index 06dcd81..79ba9ab 100755
> --- a/git-pull.sh
> +++ b/git-pull.sh
> @@ -217,9 +217,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.")"
echo "$(...)"

sounds quite wasteful and harder to read than necessary. The same also happens in later patches.

Junio C Hamano· May 8, 2011, 20:19 UTC · re: Bernhard R. Link · lore

Re: [PATCH 16/48] i18n: git-pull eval_gettext + warning message

"Bernhard R. Link" <brl+ccmadness@pcpool00.mathematik.uni-freiburg.de> writes:

Show 8 quoted lines
>> +	echo >&2 "$(eval_gettext "Warning: fetch updated the current branch head.
>> +Warning: fast-forwarding your working tree from
>> +Warning: commit \$orig_head.")"
>
> echo "$(...)"
>
> sounds quite wasteful and harder to read than necessary.
> The same also happens in later patches.

A very good point. Just letting eval_gettext write out to >&2 should be both sufficient and inifinitely more readable.

Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 17/48] 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 bf110e9..816ab3d 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 18/48] 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 816ab3d..34c33a9 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -234,7 +234,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
@@ -658,7 +658,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 19/48] 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 34c33a9..52e604a 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -875,7 +875,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 20/48] 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 52e604a..1c3d4ce 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
 			;;
@@ -105,7 +105,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"
 }
 
@@ -129,7 +129,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")"
 }
 
 #
@@ -202,7 +202,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
 
@@ -219,7 +219,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
@@ -236,7 +236,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
@@ -259,16 +259,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'")"
 }
 
 #
@@ -318,7 +318,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
 }
@@ -361,7 +361,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
@@ -371,14 +371,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
 }
 
@@ -474,7 +474,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"
@@ -498,7 +498,7 @@ cmd_update()
 				(clear_local_git_env; cd "$path" &&
 					((rev=$(git rev-list -n 1 $sha1 --not --all 2>/dev/null) &&
 					 test -z "$rev") || 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?
@@ -534,7 +534,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
 }
@@ -831,7 +831,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.4
Johannes Sixt· May 12, 2011, 08:08 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 20/48] i18n: git-submodule die + eval_gettext messages

Am 5/8/2011 14:20, schrieb Ævar Arnfjörð Bjarmason:
> -		say "Submodule '$name' ($url) registered for path '$path'"
> +		say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$path'")"

On Windows, we have a problem with messages like this (and many others) that reference $path. eval_gettext has to export 'path', but on Windows environment variables are case-insensitive. In the substitution, this happens to pick the value of 'PATH' rather than of 'path'... Can you do something about this?

Of course, the problem is not limited to 'path' at all, but it is a prominent example discovered by the test suite.

-- Hannes
Ævar Arnfjörð Bjarmason· May 12, 2011, 13:48 UTC · re: Johannes Sixt · lore

Re: [PATCH 20/48] i18n: git-submodule die + eval_gettext messages

On Thu, May 12, 2011 at 10:08, Johannes Sixt <j.sixt@viscovery.net> wrote:
Show 12 quoted lines
> Am 5/8/2011 14:20, schrieb Ævar Arnfjörð Bjarmason:
>> -             say "Submodule '$name' ($url) registered for path '$path'"
>> +             say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$path'")"
>
> On Windows, we have a problem with messages like this (and many others)
> that reference $path. eval_gettext has to export 'path', but on Windows
> environment variables are case-insensitive. In the substitution, this
> happens to pick the value of 'PATH' rather than of 'path'... Can you do
> something about this?
>
> Of course, the problem is not limited to 'path' at all, but it is a
> prominent example discovered by the test suite.

I didn't know Windows had that limitation. We can easily work around it by just renaming $path to something else (e.g. $filepath).

Since we do:
    export PATH $(git sh-i18n--envsubst --variables "$1");

I assume this problem only occurs with variables that match /^path$/i. Or are there other problems on Windows?

I don't have a Windows machine, and I'm not about to buy a license. So getting the output of the failing test suite would be very useful if this happens for variables other than $path.

If it's only $path I'll just change it to something else and include that change in v2 of the series.

Johannes Sixt· May 12, 2011, 14:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 20/48] i18n: git-submodule die + eval_gettext messages

Am 5/12/2011 15:48, schrieb Ævar Arnfjörð Bjarmason:
Show 23 quoted lines
> On Thu, May 12, 2011 at 10:08, Johannes Sixt <j.sixt@viscovery.net> wrote:
>> Am 5/8/2011 14:20, schrieb Ævar Arnfjörð Bjarmason:
>>> -             say "Submodule '$name' ($url) registered for path '$path'"
>>> +             say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$path'")"
>>
>> On Windows, we have a problem with messages like this (and many others)
>> that reference $path. eval_gettext has to export 'path', but on Windows
>> environment variables are case-insensitive. In the substitution, this
>> happens to pick the value of 'PATH' rather than of 'path'... Can you do
>> something about this?
>>
>> Of course, the problem is not limited to 'path' at all, but it is a
>> prominent example discovered by the test suite.
> 
> I didn't know Windows had that limitation. We can easily work around
> it by just renaming $path to something else (e.g. $filepath).
> 
> Since we do:
> 
>     export PATH $(git sh-i18n--envsubst --variables "$1");
> 
> I assume this problem only occurs with variables that match
> /^path$/i. Or are there other problems on Windows?

It is *not* limited to PATH. There can be other variables in the environment that are the same name as some that are exported in this statement. Here's a brief test:

--- 8< --- $ cat git-test #!/bin/sh

. git-sh-setup . git-sh-i18n

AppData=myappdata username=myUserName proMPT=myprompt

echo "$(eval_gettext "AppData: '\$AppData' username: \$username proMPT: \$proMPT path: '\$path'")"

$ git --exec-path=. test
AppData: 'C:\Dokumente und Einstellungen\jsixt\Anwendungsdaten'
username: jsixt
proMPT: $P$G
path:
'd:/Src/mingw-git/.;d:\Src\mingw-git;d:\Src\mingw-git\;d:\Src\mingw-git;...snip...;.'
--- 8< ---

Particularly PROMPT and USERNAME appear regularly in the environment and are rather generic names likely to be used in scripts as (non-exported) variables. For exposition, these are the environment variables that I use in production:

ALLUSERSPROFILE APPDATA CLIENTNAME CommonProgramFiles COMPUTERNAME ComSpec FP_NO_HOST_CHECK GIT_EDITOR HOME HOMEDRIVE HOMEPATH LESS LOGONSERVER MSYSDIR NUMBER_OF_PROCESSORS OS OS_ROOTDIR OS_TMPDIR Path PATHEXT PROCESSOR_ARCHITECTURE PROCESSOR_IDENTIFIER PROCESSOR_LEVEL PROCESSOR_REVISION ProgramFiles PROMPT SESSIONNAME SystemDrive SystemRoot TEMP TERM TMP USERDOMAIN USERNAME USERPROFILE VS100COMNTOOLS VS90COMNTOOLS windir WXWIN

-- Hannes
Ævar Arnfjörð Bjarmason· May 13, 2011, 08:21 UTC · re: Johannes Sixt · lore

Re: [PATCH 20/48] i18n: git-submodule die + eval_gettext messages

On Thu, May 12, 2011 at 16:20, Johannes Sixt <j.sixt@viscovery.net> wrote:
Show 52 quoted lines
> Am 5/12/2011 15:48, schrieb Ævar Arnfjörð Bjarmason:
>> On Thu, May 12, 2011 at 10:08, Johannes Sixt <j.sixt@viscovery.net> wrote:
>>> Am 5/8/2011 14:20, schrieb Ævar Arnfjörð Bjarmason:
>>>> -             say "Submodule '$name' ($url) registered for path '$path'"
>>>> +             say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$path'")"
>>>
>>> On Windows, we have a problem with messages like this (and many others)
>>> that reference $path. eval_gettext has to export 'path', but on Windows
>>> environment variables are case-insensitive. In the substitution, this
>>> happens to pick the value of 'PATH' rather than of 'path'... Can you do
>>> something about this?
>>>
>>> Of course, the problem is not limited to 'path' at all, but it is a
>>> prominent example discovered by the test suite.
>>
>> I didn't know Windows had that limitation. We can easily work around
>> it by just renaming $path to something else (e.g. $filepath).
>>
>> Since we do:
>>
>>     export PATH $(git sh-i18n--envsubst --variables "$1");
>>
>> I assume this problem only occurs with variables that match
>> /^path$/i. Or are there other problems on Windows?
>
> It is *not* limited to PATH. There can be other variables in the
> environment that are the same name as some that are exported in this
> statement. Here's a brief test:
>
> --- 8< ---
> $ cat git-test
> #!/bin/sh
>
> . git-sh-setup
> . git-sh-i18n
>
> AppData=myappdata
> username=myUserName
> proMPT=myprompt
>
> echo "$(eval_gettext "AppData: '\$AppData'
> username: \$username
> proMPT: \$proMPT
> path: '\$path'")"
>
> $ git --exec-path=. test
> AppData: 'C:\Dokumente und Einstellungen\jsixt\Anwendungsdaten'
> username: jsixt
> proMPT: $P$G
> path:
> 'd:/Src/mingw-git/.;d:\Src\mingw-git;d:\Src\mingw-git\;d:\Src\mingw-git;...snip...;.'
> --- 8< ---

That's interesting. I thought that the problem would only be with PATH, since we'd clobber the other environment variables when we do the export in git-sh-i18n.

But evidently not, but I don't quite grok why.

Anyway, this behavior seems un-POSIX compliant, and I'd been assuming that our shell scripts were POSIX shellscripts when I wrote this.

But if we want to make this work on Windows I guess we can change things like $path and $repo to $windows_me_harder_path and $windows_me_harder_repo.

Erik Faye-Lund· May 13, 2011, 09:04 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 20/48] i18n: git-submodule die + eval_gettext messages

On Fri, May 13, 2011 at 10:21 AM, Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:

Show 62 quoted lines
> On Thu, May 12, 2011 at 16:20, Johannes Sixt <j.sixt@viscovery.net> wrote:
>> Am 5/12/2011 15:48, schrieb Ævar Arnfjörð Bjarmason:
>>> On Thu, May 12, 2011 at 10:08, Johannes Sixt <j.sixt@viscovery.net> wrote:
>>>> Am 5/8/2011 14:20, schrieb Ævar Arnfjörð Bjarmason:
>>>>> -             say "Submodule '$name' ($url) registered for path '$path'"
>>>>> +             say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$path'")"
>>>>
>>>> On Windows, we have a problem with messages like this (and many others)
>>>> that reference $path. eval_gettext has to export 'path', but on Windows
>>>> environment variables are case-insensitive. In the substitution, this
>>>> happens to pick the value of 'PATH' rather than of 'path'... Can you do
>>>> something about this?
>>>>
>>>> Of course, the problem is not limited to 'path' at all, but it is a
>>>> prominent example discovered by the test suite.
>>>
>>> I didn't know Windows had that limitation. We can easily work around
>>> it by just renaming $path to something else (e.g. $filepath).
>>>
>>> Since we do:
>>>
>>>     export PATH $(git sh-i18n--envsubst --variables "$1");
>>>
>>> I assume this problem only occurs with variables that match
>>> /^path$/i. Or are there other problems on Windows?
>>
>> It is *not* limited to PATH. There can be other variables in the
>> environment that are the same name as some that are exported in this
>> statement. Here's a brief test:
>>
>> --- 8< ---
>> $ cat git-test
>> #!/bin/sh
>>
>> . git-sh-setup
>> . git-sh-i18n
>>
>> AppData=myappdata
>> username=myUserName
>> proMPT=myprompt
>>
>> echo "$(eval_gettext "AppData: '\$AppData'
>> username: \$username
>> proMPT: \$proMPT
>> path: '\$path'")"
>>
>> $ git --exec-path=. test
>> AppData: 'C:\Dokumente und Einstellungen\jsixt\Anwendungsdaten'
>> username: jsixt
>> proMPT: $P$G
>> path:
>> 'd:/Src/mingw-git/.;d:\Src\mingw-git;d:\Src\mingw-git\;d:\Src\mingw-git;...snip...;.'
>> --- 8< ---
>
> That's interesting. I thought that the problem would only be with
> PATH, since we'd clobber the other environment variables when we do
> the export in git-sh-i18n.
>
> But evidently not, but I don't quite grok why.
>
> Anyway, this behavior seems un-POSIX compliant, and I'd been assuming
> that our shell scripts were POSIX shellscripts when I wrote this.
May I remind you of the first rule in Documentation/CodingGuidelines?
 - Most importantly, we never say "It's in POSIX; we'll happily
   ignore your needs should your system not conform to it."
   We live in the real world.
Ævar Arnfjörð Bjarmason· May 13, 2011, 09:48 UTC · re: Erik Faye-Lund · lore

Re: [PATCH 20/48] i18n: git-submodule die + eval_gettext messages

On Fri, May 13, 2011 at 11:04, Erik Faye-Lund <kusmabite@gmail.com> wrote:
Show 15 quoted lines
> On Fri, May 13, 2011 at 10:21 AM, Ævar Arnfjörð Bjarmason
>> That's interesting. I thought that the problem would only be with
>> PATH, since we'd clobber the other environment variables when we do
>> the export in git-sh-i18n.
>>
>> But evidently not, but I don't quite grok why.
>>
>> Anyway, this behavior seems un-POSIX compliant, and I'd been assuming
>> that our shell scripts were POSIX shellscripts when I wrote this.
>
> May I remind you of the first rule in Documentation/CodingGuidelines?
>
>  - Most importantly, we never say "It's in POSIX; we'll happily
>   ignore your needs should your system not conform to it."
>   We live in the real world.

I'm not saying we shouldn't work around it, I'll submit another series which adds some unique prefix to all the environment variables.

I was just saying that I'd assumed that at least POSIX behavior for environment variables could be relied upon.

Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 21/48] 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 ++++++++---------
 t/t7406-submodule-update.sh |    2 +-
 2 files changed, 9 insertions(+), 10 deletions(-)
Show changes to 2 files +9 −10

git-submodule.sh, t/t7406-submodule-update.sh

diff --git a/git-submodule.sh b/git-submodule.sh
index 1c3d4ce..ecd0b68 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -511,24 +511,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 merge '\$sha1' in submodule path '\$path'")"
+				say_msg="$(eval_gettext "Submodule path '\$path': merged in '\$sha1'")"
 				;;
 			*)
 				command="git checkout $subforce -q"
-				action="checkout"
-				msg="checked out"
+				die_msg="$(eval_gettext "Unable to checkout '\$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"
diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
index 4f16fcc..60e33be 100755
--- a/t/t7406-submodule-update.sh
+++ b/t/t7406-submodule-update.sh
@@ -90,7 +90,7 @@ test_expect_success 'submodule update does not fetch already present commits' '
 	(cd super &&
 	  git submodule update > ../actual 2> ../actual.err
 	) &&
-	test_cmp expected actual &&
+	test_i18ncmp expected actual &&
 	! test -s actual.err
 '
 
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 22/48] 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 ecd0b68..f0f885c3 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -617,7 +617,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 23/48] 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 a portion of a test with test_i18ncmp.

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 f0f885c3..7d2c51d 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -742,9 +742,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..44ebc45 100755
--- a/t/t7401-submodule-summary.sh
+++ b/t/t7401-submodule-summary.sh
@@ -228,7 +228,7 @@ EOF
 
 test_expect_success '--for-status' "
     git submodule summary --for-status HEAD^ >actual &&
-    test_cmp actual - <<EOF
+    test_i18ncmp actual - <<EOF
 # Submodule changes to be committed:
 #
 # * sm1 $head6...0000000:
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 24/48] 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 a portion of a test with test_i18ncmp.

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 7d2c51d..7bebdf9 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -675,13 +675,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 44ebc45..cfa6632 100755
--- a/t/t7401-submodule-summary.sh
+++ b/t/t7401-submodule-summary.sh
@@ -162,7 +162,7 @@ test_expect_success 'nonexistent commit' "
   Warn: sm1 doesn't contain commit $head4_full
 
 EOF
-    test_cmp actual expected
+    test_i18ncmp actual expected
 "
 
 commit_file
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 25/48] i18n: git-submodule "Entering [...]" message

Gettextize the "Entering [...]" message. This is explicitly tested for so we need to skip a portion of a test with test_i18ncmp.

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 7bebdf9..be63bc2 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -306,7 +306,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..ae3bd18 100755
--- a/t/t7407-submodule-foreach.sh
+++ b/t/t7407-submodule-foreach.sh
@@ -77,7 +77,7 @@ test_expect_success 'test basic "submodule foreach" usage' '
 		git config foo.bar zar &&
 		git submodule foreach "git config --file \"\$toplevel/.git/config\" foo.bar"
 	) &&
-	test_cmp expect actual
+	test_i18ncmp expect actual
 '
 
 test_expect_success 'setup nested submodules' '
@@ -158,7 +158,7 @@ test_expect_success 'test messages from "foreach --recursive"' '
 		cd clone2 &&
 		git submodule foreach --recursive "true" > ../actual
 	) &&
-	test_cmp expect actual
+	test_i18ncmp expect actual
 '
 
 cat > expect <<EOF
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 26/48] 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 a portion of a test with test_i18ncmp.

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 be63bc2..ca33125 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -223,9 +223,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..ea3b445 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -99,7 +99,7 @@ test_expect_success 'submodule add to .gitignored path fails' '
 		git add --force .gitignore &&
 		git commit -m"Ignore everything" &&
 		! git submodule add "$submodurl" submod >actual 2>&1 &&
-		test_cmp expect actual
+		test_i18ncmp expect actual
 	)
 '
 
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 27/48] 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 a portion of a test with test_i18grep.

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 ca33125..b1df660 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -461,8 +461,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 ea3b445..b2b26b7 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -357,7 +357,7 @@ test_expect_success 'update --init' '
 
 	git submodule update init > update.out &&
 	cat update.out &&
-	grep "not initialized" update.out &&
+	test_i18ngrep "not initialized" update.out &&
 	! test -d init/.git &&
 
 	git submodule update --init init &&
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 28/48] 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 a portion of a test with test_i18ncmp.

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 b1df660..d720fa3 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -706,11 +706,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 cfa6632..30b429e 100755
--- a/t/t7401-submodule-summary.sh
+++ b/t/t7401-submodule-summary.sh
@@ -128,7 +128,7 @@ test_expect_success 'typechanged submodule(submodule->blob), --cached' "
   < Add foo5
 
 EOF
-	test_cmp actual expected
+	test_i18ncmp actual expected
 "
 
 test_expect_success 'typechanged submodule(submodule->blob), --files' "
@@ -138,7 +138,7 @@ test_expect_success 'typechanged submodule(submodule->blob), --files' "
   > Add foo5
 
 EOF
-    test_cmp actual expected
+    test_i18ncmp actual expected
 "
 
 rm -rf sm1 &&
@@ -149,7 +149,7 @@ test_expect_success 'typechanged submodule(submodule->blob)' "
 * sm1 $head4(submodule)->$head5(blob):
 
 EOF
-    test_cmp actual expected
+    test_i18ncmp actual expected
 "
 
 rm -f sm1 &&
@@ -173,7 +173,7 @@ test_expect_success 'typechanged submodule(blob->submodule)' "
   > Add foo7
 
 EOF
-    test_cmp expected actual
+    test_i18ncmp expected actual
 "
 
 commit_file sm1 &&
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 29/48] 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 0a94036..1ad380a 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 30/48] 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 1ad380a..f3bb3c5 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -390,7 +390,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 31/48] 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 f3bb3c5..cf22c90 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -168,7 +168,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" ||
@@ -485,7 +485,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 32/48] 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 cf22c90..bd394fd 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 () {
@@ -172,7 +172,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"
 
@@ -180,7 +180,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"
@@ -193,7 +193,7 @@ save_stash () {
 		fi
 	else
 		git apply -R < "$TMP-patch" ||
-		die "Cannot remove worktree changes"
+		die "$(gettext "Cannot remove worktree changes")"
 
 		if test "$keep_index" != "t"
 		then
@@ -288,7 +288,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)
@@ -336,11 +336,11 @@ apply_stash () {
 
 	assert_stash_like "$@"
 
-	git update-index -q --refresh || die 'unable to refresh index'
+	git update-index -q --refresh || die "$(gettext "unable to refresh index")"
 
 	# 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" &&
@@ -348,9 +348,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
 
@@ -376,7 +376,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=
@@ -414,7 +414,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 33/48] i18n: git-stash die + eval_gettext messages

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 bd394fd..8388f78 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -295,7 +295,7 @@ parse_flags_and_rev()
 			:
 		;;
 		*)
-			die "Too many revisions specified: $REV"
+			die "$(eval_gettext "Too many revisions specified: \$REV")"
 		;;
 	esac
 
-- 
1.7.4.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 34/48] 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 8388f78..e5e9590 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -321,7 +321,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() {
@@ -329,7 +332,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 35/48] 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 e5e9590..bf4868a 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -299,7 +299,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 36/48] 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 bf4868a..73fa2ce 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -152,8 +152,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.4
Motiejus Jakštys· May 8, 2011, 15:29 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH 36/48] i18n: git-stash "unknown option" message

On Sun, May 08, 2011 at 12:21:08PM +0000, Ævar Arnfjörð Bjarmason wrote:
Show 10 quoted lines
> 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.

I think the commit message should be included to the message for the translators. Like this:

Show 30 quoted lines
> 
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  git-stash.sh |   10 ++++++++--
>  1 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/git-stash.sh b/git-stash.sh
> index bf4868a..73fa2ce 100755
> --- a/git-stash.sh
> +++ b/git-stash.sh
> @@ -152,8 +152,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. In other
> +         # words, second line should be aligned with the first one.
> +			eval_gettext "$("error: unknown option for 'stash save': \$option
> +       To provide a message, use git stash save -- '\$option'")"; echo
>  			usage
>  			;;
>  		*)
> -- 
> 1.7.4.4
Motiejus
Ævar Arnfjörð Bjarmason· May 8, 2011, 21:38 UTC · re: Motiejus Jakštys · lore

Re: [PATCH 36/48] i18n: git-stash "unknown option" message

On Sun, May 8, 2011 at 17:29, Motiejus Jakštys <desired.mta@gmail.com> wrote:
> I think the commit message should be included to the message for the
> translators. Like this:
Good suggestion. Will do so in the next iteration.
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 37/48] 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 73fa2ce..0b575cf 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -422,7 +422,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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 38/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 39/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 40/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 41/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 42/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 43/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 44/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 45/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 46/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 47/48] 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.4
Ævar Arnfjörð Bjarmason· May 8, 2011, 12:21 UTC · re: Ævar Arnfjörð Bjarmason · lore

[PATCH 48/48] 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.4

← back to recent threads