i18n: rebase-interactive: mark here-doc strings for translation
Use pipe to send gettext output to git stripspace instead of the original method of using shell here-document, because command substitution '$(...)' would not take place inside the here-documents. The exception is the case of the last here-document redirecting to cat, in which commands substitution works and, thus, is preserved in this commit. t3404: adapt test to the strings newly marked for translation Test t3404-rebase-interactive.sh would fail under GETTEXT_POISON unless using test_i18ngrep. Add eval_ngettext fallback functions to be called when running, for instance, under GETTEXT_POISON. Otherwise, tests would fail under GETTEXT_POISON, or other build that doesn't support the GNU gettext, because that function could not be found. Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
9588c52b75
commit
b8fc9e43a7
@ -144,29 +144,28 @@ reschedule_last_action () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
append_todo_help () {
|
append_todo_help () {
|
||||||
git stripspace --comment-lines >>"$todo" <<\EOF
|
gettext "
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
p, pick = use commit
|
p, pick = use commit
|
||||||
r, reword = use commit, but edit the commit message
|
r, reword = use commit, but edit the commit message
|
||||||
e, edit = use commit, but stop for amending
|
e, edit = use commit, but stop for amending
|
||||||
s, squash = use commit, but meld into previous commit
|
s, squash = use commit, but meld into previous commit
|
||||||
f, fixup = like "squash", but discard this commit's log message
|
f, fixup = like \"squash\", but discard this commit's log message
|
||||||
x, exec = run command (the rest of the line) using shell
|
x, exec = run command (the rest of the line) using shell
|
||||||
d, drop = remove commit
|
d, drop = remove commit
|
||||||
|
|
||||||
These lines can be re-ordered; they are executed from top to bottom.
|
These lines can be re-ordered; they are executed from top to bottom.
|
||||||
|
" | git stripspace --comment-lines >>"$todo"
|
||||||
|
|
||||||
EOF
|
|
||||||
if test $(get_missing_commit_check_level) = error
|
if test $(get_missing_commit_check_level) = error
|
||||||
then
|
then
|
||||||
git stripspace --comment-lines >>"$todo" <<\EOF
|
gettext "
|
||||||
Do not remove any line. Use 'drop' explicitly to remove a commit.
|
Do not remove any line. Use 'drop' explicitly to remove a commit.
|
||||||
EOF
|
" | git stripspace --comment-lines >>"$todo"
|
||||||
else
|
else
|
||||||
git stripspace --comment-lines >>"$todo" <<\EOF
|
gettext "
|
||||||
If you remove a line here THAT COMMIT WILL BE LOST.
|
If you remove a line here THAT COMMIT WILL BE LOST.
|
||||||
EOF
|
" | git stripspace --comment-lines >>"$todo"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1123,13 +1122,12 @@ edit-todo)
|
|||||||
mv -f "$todo".new "$todo"
|
mv -f "$todo".new "$todo"
|
||||||
collapse_todo_ids
|
collapse_todo_ids
|
||||||
append_todo_help
|
append_todo_help
|
||||||
git stripspace --comment-lines >>"$todo" <<\EOF
|
gettext "
|
||||||
|
|
||||||
You are editing the todo file of an ongoing interactive rebase.
|
You are editing the todo file of an ongoing interactive rebase.
|
||||||
To continue rebase after editing, run:
|
To continue rebase after editing, run:
|
||||||
git rebase --continue
|
git rebase --continue
|
||||||
|
|
||||||
EOF
|
" | git stripspace --comment-lines >>"$todo"
|
||||||
|
|
||||||
git_sequence_editor "$todo" ||
|
git_sequence_editor "$todo" ||
|
||||||
die "$(gettext "Could not execute editor")"
|
die "$(gettext "Could not execute editor")"
|
||||||
@ -1270,14 +1268,16 @@ todocount=${todocount##* }
|
|||||||
|
|
||||||
cat >>"$todo" <<EOF
|
cat >>"$todo" <<EOF
|
||||||
|
|
||||||
$comment_char Rebase $shortrevisions onto $shortonto ($todocount command(s))
|
$comment_char $(eval_ngettext \
|
||||||
|
"Rebase \$shortrevisions onto \$shortonto (\$todocount command)" \
|
||||||
|
"Rebase \$shortrevisions onto \$shortonto (\$todocount commands)" \
|
||||||
|
"$todocount")
|
||||||
EOF
|
EOF
|
||||||
append_todo_help
|
append_todo_help
|
||||||
git stripspace --comment-lines >>"$todo" <<\EOF
|
gettext "
|
||||||
|
|
||||||
However, if you remove everything, the rebase will be aborted.
|
However, if you remove everything, the rebase will be aborted.
|
||||||
|
|
||||||
EOF
|
" | git stripspace --comment-lines >>"$todo"
|
||||||
|
|
||||||
if test -z "$keep_empty"
|
if test -z "$keep_empty"
|
||||||
then
|
then
|
||||||
|
@ -53,6 +53,13 @@ gettext_without_eval_gettext)
|
|||||||
git sh-i18n--envsubst "$1"
|
git sh-i18n--envsubst "$1"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eval_ngettext () {
|
||||||
|
ngettext "$1" "$2" "$3" | (
|
||||||
|
export PATH $(git sh-i18n--envsubst --variables "$2");
|
||||||
|
git sh-i18n--envsubst "$2"
|
||||||
|
)
|
||||||
|
}
|
||||||
;;
|
;;
|
||||||
poison)
|
poison)
|
||||||
# Emit garbage so that tests that incorrectly rely on translatable
|
# Emit garbage so that tests that incorrectly rely on translatable
|
||||||
@ -64,6 +71,10 @@ poison)
|
|||||||
eval_gettext () {
|
eval_gettext () {
|
||||||
printf "%s" "# GETTEXT POISON #"
|
printf "%s" "# GETTEXT POISON #"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eval_ngettext () {
|
||||||
|
printf "%s" "# GETTEXT POISON #"
|
||||||
|
}
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
gettext () {
|
gettext () {
|
||||||
@ -76,6 +87,13 @@ poison)
|
|||||||
git sh-i18n--envsubst "$1"
|
git sh-i18n--envsubst "$1"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eval_ngettext () {
|
||||||
|
(test "$3" = 1 && printf "%s" "$1" || printf "%s" "$2") | (
|
||||||
|
export PATH $(git sh-i18n--envsubst --variables "$2");
|
||||||
|
git sh-i18n--envsubst "$2"
|
||||||
|
)
|
||||||
|
}
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -540,7 +540,7 @@ test_expect_success 'clean error after failed "exec"' '
|
|||||||
echo "edited again" > file7 &&
|
echo "edited again" > file7 &&
|
||||||
git add file7 &&
|
git add file7 &&
|
||||||
test_must_fail git rebase --continue 2>error &&
|
test_must_fail git rebase --continue 2>error &&
|
||||||
grep "You have staged changes in your working tree." error
|
test_i18ngrep "You have staged changes in your working tree." error
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'rebase a detached HEAD' '
|
test_expect_success 'rebase a detached HEAD' '
|
||||||
@ -1060,7 +1060,7 @@ test_expect_success 'todo count' '
|
|||||||
EOF
|
EOF
|
||||||
test_set_editor "$(pwd)/dump-raw.sh" &&
|
test_set_editor "$(pwd)/dump-raw.sh" &&
|
||||||
git rebase -i HEAD~4 >actual &&
|
git rebase -i HEAD~4 >actual &&
|
||||||
grep "^# Rebase ..* onto ..* ([0-9]" actual
|
test_i18ngrep "^# Rebase ..* onto ..* ([0-9]" actual
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'rebase -i commits that overwrite untracked files (pick)' '
|
test_expect_success 'rebase -i commits that overwrite untracked files (pick)' '
|
||||||
@ -1160,7 +1160,7 @@ test_expect_success 'rebase -i respects rebase.missingCommitsCheck = ignore' '
|
|||||||
FAKE_LINES="1 2 3 4" \
|
FAKE_LINES="1 2 3 4" \
|
||||||
git rebase -i --root 2>actual &&
|
git rebase -i --root 2>actual &&
|
||||||
test D = $(git cat-file commit HEAD | sed -ne \$p) &&
|
test D = $(git cat-file commit HEAD | sed -ne \$p) &&
|
||||||
test_cmp expect actual
|
test_i18ncmp expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
cat >expect <<EOF
|
cat >expect <<EOF
|
||||||
@ -1181,7 +1181,7 @@ test_expect_success 'rebase -i respects rebase.missingCommitsCheck = warn' '
|
|||||||
set_fake_editor &&
|
set_fake_editor &&
|
||||||
FAKE_LINES="1 2 3 4" \
|
FAKE_LINES="1 2 3 4" \
|
||||||
git rebase -i --root 2>actual &&
|
git rebase -i --root 2>actual &&
|
||||||
test_cmp expect actual &&
|
test_i18ncmp expect actual &&
|
||||||
test D = $(git cat-file commit HEAD | sed -ne \$p)
|
test D = $(git cat-file commit HEAD | sed -ne \$p)
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -1205,7 +1205,7 @@ test_expect_success 'rebase -i respects rebase.missingCommitsCheck = error' '
|
|||||||
set_fake_editor &&
|
set_fake_editor &&
|
||||||
test_must_fail env FAKE_LINES="1 2 4" \
|
test_must_fail env FAKE_LINES="1 2 4" \
|
||||||
git rebase -i --root 2>actual &&
|
git rebase -i --root 2>actual &&
|
||||||
test_cmp expect actual &&
|
test_i18ncmp expect actual &&
|
||||||
cp .git/rebase-merge/git-rebase-todo.backup \
|
cp .git/rebase-merge/git-rebase-todo.backup \
|
||||||
.git/rebase-merge/git-rebase-todo &&
|
.git/rebase-merge/git-rebase-todo &&
|
||||||
FAKE_LINES="1 2 drop 3 4 drop 5" \
|
FAKE_LINES="1 2 drop 3 4 drop 5" \
|
||||||
@ -1228,7 +1228,7 @@ test_expect_success 'static check of bad command' '
|
|||||||
set_fake_editor &&
|
set_fake_editor &&
|
||||||
test_must_fail env FAKE_LINES="1 2 3 bad 4 5" \
|
test_must_fail env FAKE_LINES="1 2 3 bad 4 5" \
|
||||||
git rebase -i --root 2>actual &&
|
git rebase -i --root 2>actual &&
|
||||||
test_cmp expect actual &&
|
test_i18ncmp expect actual &&
|
||||||
FAKE_LINES="1 2 3 drop 4 5" git rebase --edit-todo &&
|
FAKE_LINES="1 2 3 drop 4 5" git rebase --edit-todo &&
|
||||||
git rebase --continue &&
|
git rebase --continue &&
|
||||||
test E = $(git cat-file commit HEAD | sed -ne \$p) &&
|
test E = $(git cat-file commit HEAD | sed -ne \$p) &&
|
||||||
@ -1263,7 +1263,7 @@ test_expect_success 'static check of bad SHA-1' '
|
|||||||
set_fake_editor &&
|
set_fake_editor &&
|
||||||
test_must_fail env FAKE_LINES="1 2 edit fakesha 3 4 5 #" \
|
test_must_fail env FAKE_LINES="1 2 edit fakesha 3 4 5 #" \
|
||||||
git rebase -i --root 2>actual &&
|
git rebase -i --root 2>actual &&
|
||||||
test_cmp expect actual &&
|
test_i18ncmp expect actual &&
|
||||||
FAKE_LINES="1 2 4 5 6" git rebase --edit-todo &&
|
FAKE_LINES="1 2 4 5 6" git rebase --edit-todo &&
|
||||||
git rebase --continue &&
|
git rebase --continue &&
|
||||||
test E = $(git cat-file commit HEAD | sed -ne \$p)
|
test E = $(git cat-file commit HEAD | sed -ne \$p)
|
||||||
|
Loading…
Reference in New Issue
Block a user