i18n: unpack-trees: avoid substituting only a verb in sentences
Instead of reusing the same set of message templates for checkout and other actions and substituting the verb with "%s", prepare separate message templates for each known action. That would make it easier for translation into languages where the same verb may conjugate differently depending on the message we are giving. See gettext documentation for details: http://www.gnu.org/software/gettext/manual/html_node/Preparing-Strings.html Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Vasco Almeida committed
May 12, 2016 at 23:16 UTC
2e3926b9489cb767b38526a3a72403087053a1d8
2 files changed
+56
-22
t/t7609-merge-co-error-msgs.sh
+9
-9
@@ -37,14 +37,14 @@ EOF
37
38
test_expect_success 'untracked files overwritten by merge (fast and non-fast forward)' '
39
test_must_fail git merge branch 2>out &&
40
- test_cmp out expect &&
40
+ test_i18ncmp out expect &&
41
git commit --allow-empty -m empty &&
42
(
43
GIT_MERGE_VERBOSITY=0 &&
44
export GIT_MERGE_VERBOSITY &&
45
test_must_fail git merge branch 2>out2
46
) &&
47
- test_cmp out2 expect &&
47
+ test_i18ncmp out2 expect &&
48
git reset --hard HEAD^
49
'
50
@@ -53,7 +53,7 @@ error: Your local changes to the following files would be overwritten by merge:
53
four
54
three
55
two
56
-Please, commit your changes or stash them before you can merge.
56
+Please commit your changes or stash them before you can merge.
57
error: The following untracked working tree files would be overwritten by merge:
58
five
59
Please move or remove them before you can merge.
@@ -65,14 +65,14 @@ test_expect_success 'untracked files or local changes ovewritten by merge' '
65
git add three &&
66
git add four &&
67
test_must_fail git merge branch 2>out &&
68
- test_cmp out expect
68
+ test_i18ncmp out expect
69
'
70
71
cat >expect <<\EOF
72
error: Your local changes to the following files would be overwritten by checkout:
73
rep/one
74
rep/two
75
-Please, commit your changes or stash them before you can switch branches.
75
+Please commit your changes or stash them before you can switch branches.
76
Aborting
77
EOF
78
@@ -87,21 +87,21 @@ test_expect_success 'cannot switch branches because of local changes' '
87
echo uno >rep/one &&
88
echo dos >rep/two &&
89
test_must_fail git checkout branch 2>out &&
90
- test_cmp out expect
90
+ test_i18ncmp out expect
91
'
92
93
cat >expect <<\EOF
94
error: Your local changes to the following files would be overwritten by checkout:
95
rep/one
96
rep/two
97
-Please, commit your changes or stash them before you can switch branches.
97
+Please commit your changes or stash them before you can switch branches.
98
Aborting
99
EOF
100
101
test_expect_success 'not uptodate file porcelain checkout error' '
102
git add rep/one rep/two &&
103
test_must_fail git checkout branch 2>out &&
104
- test_cmp out expect
104
+ test_i18ncmp out expect
105
'
106
107
cat >expect <<\EOF
@@ -132,7 +132,7 @@ test_expect_success 'not_uptodate_dir porcelain checkout error' '
132
>rep/untracked-file &&
133
>rep2/untracked-file &&
134
test_must_fail git checkout branch 2>out &&
135
- test_cmp out ../expect
135
+ test_i18ncmp out ../expect
136
'
137
138
test_done
unpack-trees.c
+47
-13
@@ -58,27 +58,61 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,
58
int i;
59
const char **msgs = opts->msgs;
60
const char *msg;
61
- const char *cmd2 = strcmp(cmd, "checkout") ? cmd : "switch branches";
61
63
- if (advice_commit_before_merge)
64
- msg = _("Your local changes to the following files would be overwritten by %s:\n%%s"
65
- "Please, commit your changes or stash them before you can %s.");
62
+ if (!strcmp(cmd, "checkout"))
63
+ msg = advice_commit_before_merge
64
+ ? _("Your local changes to the following files would be overwritten by checkout:\n%%s"
65
+ "Please commit your changes or stash them before you can switch branches.")
66
+ : _("Your local changes to the following files would be overwritten by checkout:\n%%s");
67
+ else if (!strcmp(cmd, "merge"))
68
+ msg = advice_commit_before_merge
69
+ ? _("Your local changes to the following files would be overwritten by merge:\n%%s"
70
+ "Please commit your changes or stash them before you can merge.")
71
+ : _("Your local changes to the following files would be overwritten by merge:\n%%s");
72
else
67
- msg = _("Your local changes to the following files would be overwritten by %s:\n%%s");
73
+ msg = advice_commit_before_merge
74
+ ? _("Your local changes to the following files would be overwritten by %s:\n%%s"
75
+ "Please commit your changes or stash them before you can %s.")
76
+ : _("Your local changes to the following files would be overwritten by %s:\n%%s");
77
msgs[ERROR_WOULD_OVERWRITE] = msgs[ERROR_NOT_UPTODATE_FILE] =
69
- xstrfmt(msg, cmd, cmd2);
78
+ xstrfmt(msg, cmd, cmd);
79
80
msgs[ERROR_NOT_UPTODATE_DIR] =
81
_("Updating the following directories would lose untracked files in it:\n%s");
82
74
- if (advice_commit_before_merge)
75
- msg = _("The following untracked working tree files would be %s by %s:\n%%s"
76
- "Please move or remove them before you can %s.");
83
+ if (!strcmp(cmd, "checkout"))
84
+ msg = advice_commit_before_merge
85
+ ? _("The following untracked working tree files would be removed by checkout:\n%%s"
86
+ "Please move or remove them before you can switch branches.")
87
+ : _("The following untracked working tree files would be removed by checkout:\n%%s");
88
+ else if (!strcmp(cmd, "merge"))
89
+ msg = advice_commit_before_merge
90
+ ? _("The following untracked working tree files would be removed by merge:\n%%s"
91
+ "Please move or remove them before you can merge.")
92
+ : _("The following untracked working tree files would be removed by merge:\n%%s");
93
else
78
- msg = _("The following untracked working tree files would be %s by %s:\n%%s");
79
-
80
- msgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, "removed", cmd, cmd2);
81
- msgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, "overwritten", cmd, cmd2);
94
+ msg = advice_commit_before_merge
95
+ ? _("The following untracked working tree files would be removed by %s:\n%%s"
96
+ "Please move or remove them before you can %s.")
97
+ : _("The following untracked working tree files would be removed by %s:\n%%s");
98
+ msgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, cmd, cmd);
99
+
100
+ if (!strcmp(cmd, "checkout"))
101
+ msg = advice_commit_before_merge
102
+ ? _("The following untracked working tree files would be overwritten by checkout:\n%%s"
103
+ "Please move or remove them before you can switch branches.")
104
+ : _("The following untracked working tree files would be overwritten by checkout:\n%%s");
105
+ else if (!strcmp(cmd, "merge"))
106
+ msg = advice_commit_before_merge
107
+ ? _("The following untracked working tree files would be overwritten by merge:\n%%s"
108
+ "Please move or remove them before you can merge.")
109
+ : _("The following untracked working tree files would be overwritten by merge:\n%%s");
110
+ else
111
+ msg = advice_commit_before_merge
112
+ ? _("The following untracked working tree files would be overwritten by %s:\n%%s"
113
+ "Please move or remove them before you can %s.")
114
+ : _("The following untracked working tree files would be overwritten by %s:\n%%s");
115
+ msgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, cmd, cmd);
116
117
/*
118
* Special case: ERROR_BIND_OVERLAP refers to a pair of paths, we