Web lists-archives.com

Re: [PATCH] submodule: avoid sentence-lego in translated string

From: "Martin Ågren" <martin.agren@xxxxxxxxx>
We currently build an error message like "entry is a %s, not a commit",
where the placeholder will be replaced with "blob", "tag" or "tree".
Apart from those three placeholder words not being translated, in some
languages it might be awkward or impossible to ensure a grammatically
correct end result.

Shorten the error message to "entry is not a commit". We will still
error out, we will still give a hint about what is wrong, but we will
not be as explicit as before.

Alternatively, we could have different switch-cases for the different
types and pick one of three different error messages. We might still
want a `default` and maybe more tests. So go for this simpler approach

Signed-off-by: Martin Ågren <martin.agren@xxxxxxxxx>
I browsed the diff of the .pot and found an addition that looked a bit
translation-unfriendly. Maybe something like this?

submodule.c                    | 4 ++--
t/t5531-deep-submodule-push.sh | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/submodule.c b/submodule.c
index 63e7094e1..3d91dbfd5 100644
--- a/submodule.c
+++ b/submodule.c
@@ -796,8 +796,8 @@ static int check_has_commit(const struct object_id *oid, void *data)
 cb->result = 0;
 return 0;
- die(_("submodule entry '%s' (%s) is a %s, not a commit"),
-     cb->path, oid_to_hex(oid), typename(type));
+ die(_("submodule entry '%s' (%s) is not a commit"),
+     cb->path, oid_to_hex(oid));
"submodule entry '%s' (%s) is not a commit. It is a %s"
This puts the two parts in separate sentences?



diff --git a/t/t5531-deep-submodule-push.sh b/t/t5531-deep-submodule-push.sh
index 39cb2c1c3..e4c98bbc5 100755
--- a/t/t5531-deep-submodule-push.sh
+++ b/t/t5531-deep-submodule-push.sh
@@ -305,7 +305,7 @@ test_expect_success 'submodule entry pointing at a tag is error' '
 git -C work commit -m "bad commit" &&
 test_when_finished "git -C work reset --hard HEAD^" &&
test_must_fail git -C work push --recurse-submodules=on-demand ../pub.git master 2>err &&
- test_i18ngrep "is a tag, not a commit" err
+ test_i18ngrep "is not a commit" err

test_expect_success 'push fails if recurse submodules option passed as yes' '