{"thread":{"id":"46933","subject":"[L10N] Kickoff of translation for Git 2.15.0 round 1","startedAt":"2017-10-08T07:38:11Z","lastAt":"2017-10-10T18:14:51Z","messageCount":13,"participants":["Jiang Xin","Martin Ågren","Philip Oakley","Jean-Noel Avila","brian m. carlson","Junio C Hamano","Stefan Beller","Jean-Noël AVILA","Changwoo Ryu"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"329979","messageId":"CANYiYbGHBDGMEjbrvX_ayXkXkciT3GgL4seM_X1NmWtud2upcg@mail.gmail.com","threadId":"46933","inReplyTo":null,"subject":"[L10N] Kickoff of translation for Git 2.15.0 round 1","fromName":"Jiang Xin","fromEmail":"worldhello.net@gmail.com","sentAt":"2017-10-08T07:38:04Z","receivedAt":"2017-10-08T07:38:11Z","isPatch":false,"sender":{"key":"worldhello.net@gmail.com","avatar":"https://avatars.githubusercontent.com/u/183860?v=4"},"body":"Hi,\n\nGit v2.15.0-rc0 has been released, and it's time to start new round of git l10n.\nThis time there are 68 updated messages need to be translated since last\nupdate.\n\nYou can get it from the usual place:\n\n    https://github.com/git-l10n/git-po/\n\nAs how to update your XX.po and help to translate Git, please see\n\"Updating a XX.po file\" and other sections in “po/README\" file.\n\n--\nJiang Xin\n"},{"id":"329981","messageId":"20171008084824.5331-1-martin.agren@gmail.com","threadId":"46933","inReplyTo":"CANYiYbGHBDGMEjbrvX_ayXkXkciT3GgL4seM_X1NmWtud2upcg@mail.gmail.com","subject":"[PATCH] submodule: avoid sentence-lego in translated string","fromName":"Martin Ågren","fromEmail":"martin.agren@gmail.com","sentAt":"2017-10-08T08:48:24Z","receivedAt":"2017-10-08T08:48:37Z","isPatch":true,"sender":{"key":"martin.agren@gmail.com","avatar":null},"body":"We currently build an error message like \"entry is a %s, not a commit\",\nwhere the placeholder will be replaced with \"blob\", \"tag\" or \"tree\".\nApart from those three placeholder words not being translated, in some\nlanguages it might be awkward or impossible to ensure a grammatically\ncorrect end result.\n\nShorten the error message to \"entry is not a commit\". We will still\nerror out, we will still give a hint about what is wrong, but we will\nnot be as explicit as before.\n\nAlternatively, we could have different switch-cases for the different\ntypes and pick one of three different error messages. We might still\nwant a `default` and maybe more tests. So go for this simpler approach\ninstead.\n\nSigned-off-by: Martin Ågren <martin.agren@gmail.com>\n---\nI browsed the diff of the .pot and found an addition that looked a bit\ntranslation-unfriendly. Maybe something like this?\n\n submodule.c                    | 4 ++--\n t/t5531-deep-submodule-push.sh | 2 +-\n 2 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/submodule.c b/submodule.c\nindex 63e7094e1..3d91dbfd5 100644\n--- a/submodule.c\n+++ b/submodule.c\n@@ -796,8 +796,8 @@ static int check_has_commit(const struct object_id *oid, void *data)\n \t\tcb->result = 0;\n \t\treturn 0;\n \tdefault:\n-\t\tdie(_(\"submodule entry '%s' (%s) is a %s, not a commit\"),\n-\t\t    cb->path, oid_to_hex(oid), typename(type));\n+\t\tdie(_(\"submodule entry '%s' (%s) is not a commit\"),\n+\t\t    cb->path, oid_to_hex(oid));\n \t}\n }\n \ndiff --git a/t/t5531-deep-submodule-push.sh b/t/t5531-deep-submodule-push.sh\nindex 39cb2c1c3..e4c98bbc5 100755\n--- a/t/t5531-deep-submodule-push.sh\n+++ b/t/t5531-deep-submodule-push.sh\n@@ -305,7 +305,7 @@ test_expect_success 'submodule entry pointing at a tag is error' '\n \tgit -C work commit -m \"bad commit\" &&\n \ttest_when_finished \"git -C work reset --hard HEAD^\" &&\n \ttest_must_fail git -C work push --recurse-submodules=on-demand ../pub.git master 2>err &&\n-\ttest_i18ngrep \"is a tag, not a commit\" err\n+\ttest_i18ngrep \"is not a commit\" err\n '\n \n test_expect_success 'push fails if recurse submodules option passed as yes' '\n-- \n2.15.0.rc0.37.gd35688db1\n\n"},{"id":"329983","messageId":"8686C1FA80EF45099730B50235CAFF6F@PhilipOakley","threadId":"46933","inReplyTo":"20171008084824.5331-1-martin.agren@gmail.com","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2017-10-08T09:32:35Z","receivedAt":"2017-10-08T09:32:44Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"From: \"Martin Ågren\" <martin.agren@gmail.com>\n> We currently build an error message like \"entry is a %s, not a commit\",\n> where the placeholder will be replaced with \"blob\", \"tag\" or \"tree\".\n> Apart from those three placeholder words not being translated, in some\n> languages it might be awkward or impossible to ensure a grammatically\n> correct end result.\n>\n> Shorten the error message to \"entry is not a commit\". We will still\n> error out, we will still give a hint about what is wrong, but we will\n> not be as explicit as before.\n>\n> Alternatively, we could have different switch-cases for the different\n> types and pick one of three different error messages. We might still\n> want a `default` and maybe more tests. So go for this simpler approach\n> instead.\n>\n> Signed-off-by: Martin Ågren <martin.agren@gmail.com>\n> ---\n> I browsed the diff of the .pot and found an addition that looked a bit\n> translation-unfriendly. Maybe something like this?\n>\n> submodule.c                    | 4 ++--\n> t/t5531-deep-submodule-push.sh | 2 +-\n> 2 files changed, 3 insertions(+), 3 deletions(-)\n>\n> diff --git a/submodule.c b/submodule.c\n> index 63e7094e1..3d91dbfd5 100644\n> --- a/submodule.c\n> +++ b/submodule.c\n> @@ -796,8 +796,8 @@ static int check_has_commit(const struct object_id \n> *oid, void *data)\n>  cb->result = 0;\n>  return 0;\n>  default:\n> - die(_(\"submodule entry '%s' (%s) is a %s, not a commit\"),\n> -     cb->path, oid_to_hex(oid), typename(type));\n> + die(_(\"submodule entry '%s' (%s) is not a commit\"),\n> +     cb->path, oid_to_hex(oid));\nBikeshed,\n maybe:\n\"submodule entry '%s' (%s) is not a commit. It is a %s\"\nThis puts the two parts in separate sentences?\n\n--\nPhilip\n\n\n>  }\n> }\n>\n> diff --git a/t/t5531-deep-submodule-push.sh \n> b/t/t5531-deep-submodule-push.sh\n> index 39cb2c1c3..e4c98bbc5 100755\n> --- a/t/t5531-deep-submodule-push.sh\n> +++ b/t/t5531-deep-submodule-push.sh\n> @@ -305,7 +305,7 @@ test_expect_success 'submodule entry pointing at a tag \n> is error' '\n>  git -C work commit -m \"bad commit\" &&\n>  test_when_finished \"git -C work reset --hard HEAD^\" &&\n>  test_must_fail git -C work push --recurse-submodules=on-demand ../pub.git \n> master 2>err &&\n> - test_i18ngrep \"is a tag, not a commit\" err\n> + test_i18ngrep \"is not a commit\" err\n> '\n>\n> test_expect_success 'push fails if recurse submodules option passed as \n> yes' '\n> -- \n> 2.15.0.rc0.37.gd35688db1\n> \n\n"},{"id":"329984","messageId":"CAN0heSpP1xxnUt8nVMXBdh1ynQUTH3Jo4C34F7=9TNFSb-k1ZQ@mail.gmail.com","threadId":"46933","inReplyTo":"8686C1FA80EF45099730B50235CAFF6F@PhilipOakley","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Martin Ågren","fromEmail":"martin.agren@gmail.com","sentAt":"2017-10-08T10:26:57Z","receivedAt":"2017-10-08T10:27:03Z","isPatch":true,"sender":{"key":"martin.agren@gmail.com","avatar":null},"body":"On 8 October 2017 at 11:32, Philip Oakley <philipoakley@iee.org> wrote:\n> From: \"Martin Ågren\" <martin.agren@gmail.com>\n>\n>> We currently build an error message like \"entry is a %s, not a commit\",\n>> where the placeholder will be replaced with \"blob\", \"tag\" or \"tree\".\n>> Apart from those three placeholder words not being translated, in some\n>> languages it might be awkward or impossible to ensure a grammatically\n>> correct end result.\n...\n>>  default:\n>> - die(_(\"submodule entry '%s' (%s) is a %s, not a commit\"),\n>> -     cb->path, oid_to_hex(oid), typename(type));\n>> + die(_(\"submodule entry '%s' (%s) is not a commit\"),\n>> +     cb->path, oid_to_hex(oid));\n>\n> Bikeshed,\n> maybe:\n> \"submodule entry '%s' (%s) is not a commit. It is a %s\"\n> This puts the two parts in separate sentences?\n\nI'm not doing the Swedish translation, but if I did, I would find this\njust as hard to translate as the original. There are two problems here.\nThe first is \"blob\"/\"tag\"/\"tree\". \"Blob\" is already used in the Swedish\ntranslation, but \"tag\" should be \"tagg\" and \"tree\" should be \"träd\"\n(IMHO).\n\nThe second problem is that even if all three words were valid Swedish\nwords, then (IMHO) using \"en %s\" instead of \"a %s\" would be needed to\nmake sense with \"en blob\" and \"en tag\", but it wouldn't work with \"en\ntree\" which should arguably be \"ett tree\". (But to be clear, seeing any\nof \"en tree\" and \"ett tree\" makes me shiver.)\n\nI should perhaps have been clearer that grammatical problems might arise\nfrom the \"a\". (It's more or less by chance that it works in English in\nthe first place. Luckily there is no type \"aardvark\", \"index\" or\n\"other\".) But I wouldn't be surprised if there's a language out there\nwhere \"a\" is not a problem, but something else is.\n\nIt just occurred to me that one approach would be something like \"... is\nof type '%s', not 'commit'\" where \"commit\" should not be translated and\n%s would be one of \"blob\", \"tag\" and \"tree\". That would be sort of in\nline with what `git cat-file` does, but not quite. In cat-file it seems\nnatural because it's about the command-line argument, here it's in an\nerror string and seems a bit awkward.\n\nMartin\n"},{"id":"329987","messageId":"20171008121839.30067-1-jn.avila@free.fr","threadId":"46933","inReplyTo":"CANYiYbGHBDGMEjbrvX_ayXkXkciT3GgL4seM_X1NmWtud2upcg@mail.gmail.com","subject":"[PATCH] i18n: add a missing space in message","fromName":"Jean-Noel Avila","fromEmail":"jn.avila@free.fr","sentAt":"2017-10-08T12:18:39Z","receivedAt":"2017-10-08T12:19:43Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"The message spans over 2 lines but the C conconcatenation does not add\nthe needed space between the two lines.\n\nSigned-off-by: Jean-Noel Avila <jn.avila@free.fr>\n---\n sequencer.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\nThis is a single change discovered while doing the localization task.\n\nMoreover, what's the status of the options in '--<option>' in the\nmessages?  Must they be single-quoted or not? This may sound a bit\npicky, but there has been some shifts from one form to the other in\nthe latest batch of strings, leading to fuzzy matchings. Settling on a\ngiven \"standard\" would probably reduce translators'work.\n\ndiff --git a/sequencer.c b/sequencer.c\nindex 7886e2269..e258bb646 100644\n--- a/sequencer.c\n+++ b/sequencer.c\n@@ -2558,7 +2558,7 @@ static enum check_level get_missing_commit_check_level(void)\n \t\treturn CHECK_WARN;\n \tif (!strcasecmp(\"error\", value))\n \t\treturn CHECK_ERROR;\n-\twarning(_(\"unrecognized setting %s for option\"\n+\twarning(_(\"unrecognized setting %s for option \"\n \t\t  \"rebase.missingCommitsCheck. Ignoring.\"), value);\n \treturn CHECK_IGNORE;\n }\n-- \n2.14.0\n\n"},{"id":"330006","messageId":"20171009005137.4qwvkpedjslvbkca@genre.crustytoothpaste.net","threadId":"46933","inReplyTo":"8686C1FA80EF45099730B50235CAFF6F@PhilipOakley","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2017-10-09T00:51:37Z","receivedAt":"2017-10-09T00:51:56Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On Sun, Oct 08, 2017 at 10:32:35AM +0100, Philip Oakley wrote:\n> From: \"Martin Ågren\" <martin.agren@gmail.com>\n> > - die(_(\"submodule entry '%s' (%s) is a %s, not a commit\"),\n> > -     cb->path, oid_to_hex(oid), typename(type));\n> > + die(_(\"submodule entry '%s' (%s) is not a commit\"),\n> > +     cb->path, oid_to_hex(oid));\n> Bikeshed,\n> maybe:\n> \"submodule entry '%s' (%s) is not a commit. It is a %s\"\n> This puts the two parts in separate sentences?\n\nLanguages with multiple grammatical genders are going to have problems\nwith this.  In French, \"a tree\" is \"un arbre\" (masculine), but \"a tag\"\nis \"une étiquette\" (feminine).  We don't currently have a Spanish\ntranslation, but this would break there as well.\n\nSplitting the article out with the type name is still problematic for\nlanguages where articles vary by case, like German, since the\ntranslation might be reused in another place requiring a different case.\n-- \nbrian m. carlson / brian with sandals: Houston, Texas, US\nhttps://www.crustytoothpaste.net/~bmc | My opinion only\nOpenPGP: https://keybase.io/bk2204\n"},{"id":"330032","messageId":"CAPc5daVk+sPLmw4G_AghOVFeO5myKTADQjKr823U3xaQZK+43g@mail.gmail.com","threadId":"46933","inReplyTo":"20171009005137.4qwvkpedjslvbkca@genre.crustytoothpaste.net","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-10-09T01:30:37Z","receivedAt":"2017-10-09T01:31:03Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"On Mon, Oct 9, 2017 at 9:51 AM, brian m. carlson\n<sandals@crustytoothpaste.net> wrote:\n> On Sun, Oct 08, 2017 at 10:32:35AM +0100, Philip Oakley wrote:\n>> From: \"Martin Ågren\" <martin.agren@gmail.com>\n>> > - die(_(\"submodule entry '%s' (%s) is a %s, not a commit\"),\n>> > -     cb->path, oid_to_hex(oid), typename(type));\n>> > + die(_(\"submodule entry '%s' (%s) is not a commit\"),\n>> > +     cb->path, oid_to_hex(oid));\n>> Bikeshed,\n>> maybe:\n>> \"submodule entry '%s' (%s) is not a commit. It is a %s\"\n>> This puts the two parts in separate sentences?\n>\n> Languages with multiple grammatical genders are going to have problems\n> with this.  In French, \"a tree\" is \"un arbre\" (masculine), but \"a tag\"\n> is \"une étiquette\" (feminine).  We don't currently have a Spanish\n> translation, but this would break there as well.\n>\n> Splitting the article out with the type name is still problematic for\n> languages where articles vary by case, like German, since the\n> translation might be reused in another place requiring a different case.\n\nWhile all of the above is correct, would we really need to subject typename()\nto translation? IOW, can't we just treat 'blob', 'tree', 'commit' and\n'tag' as-is,\nas terms of art (i.e. with a specific or precise meaning within a\ngiven discipline\nor field and might have a different meaning in common usage)?\n"},{"id":"330034","messageId":"CAN0heSqFSiev8BeZVu3KBA5vswsbQrrOH=tYYOSs_h_eq=8-3Q@mail.gmail.com","threadId":"46933","inReplyTo":"CAPc5daVk+sPLmw4G_AghOVFeO5myKTADQjKr823U3xaQZK+43g@mail.gmail.com","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Martin Ågren","fromEmail":"martin.agren@gmail.com","sentAt":"2017-10-09T04:14:12Z","receivedAt":"2017-10-09T04:14:18Z","isPatch":true,"sender":{"key":"martin.agren@gmail.com","avatar":null},"body":"On 9 October 2017 at 03:30, Junio C Hamano <gitster@pobox.com> wrote:\n> On Mon, Oct 9, 2017 at 9:51 AM, brian m. carlson\n> <sandals@crustytoothpaste.net> wrote:\n>> On Sun, Oct 08, 2017 at 10:32:35AM +0100, Philip Oakley wrote:\n>>> From: \"Martin Ågren\" <martin.agren@gmail.com>\n>>> > - die(_(\"submodule entry '%s' (%s) is a %s, not a commit\"),\n>>> > -     cb->path, oid_to_hex(oid), typename(type));\n>>> > + die(_(\"submodule entry '%s' (%s) is not a commit\"),\n>>> > +     cb->path, oid_to_hex(oid));\n>>> Bikeshed,\n>>> maybe:\n>>> \"submodule entry '%s' (%s) is not a commit. It is a %s\"\n>>> This puts the two parts in separate sentences?\n>>\n>> Languages with multiple grammatical genders are going to have problems\n>> with this.  In French, \"a tree\" is \"un arbre\" (masculine), but \"a tag\"\n>> is \"une étiquette\" (feminine).  We don't currently have a Spanish\n>> translation, but this would break there as well.\n>>\n>> Splitting the article out with the type name is still problematic for\n>> languages where articles vary by case, like German, since the\n>> translation might be reused in another place requiring a different case.\n>\n> While all of the above is correct, would we really need to subject typename()\n> to translation? IOW, can't we just treat 'blob', 'tree', 'commit' and\n> 'tag' as-is,\n> as terms of art (i.e. with a specific or precise meaning within a\n> given discipline\n> or field and might have a different meaning in common usage)?\n\nIn another subthread, I sort of suggested \"... is of type '%s', not 'commit'\".\nSo \"commit\" and \"%s\" would appear as the file-format-level terms that they are.\nI think it looks odd but I guess it might work in Swedish, FWIW.\n\nIn this particular case, we could have three specific messages plus one default\nmessage (which at the time shouldn't ever occur). Or we have one specific\nmessage for the \"tag\"-case, which seems to have been Stefan's original\nmotivation, and a generic message for the other cases.\n"},{"id":"330040","messageId":"CAGZ79ka7xo96MHaAUbkDuFjWMQaaD4j2UrRndcinAg6uzaP6Kw@mail.gmail.com","threadId":"46933","inReplyTo":"CAN0heSqFSiev8BeZVu3KBA5vswsbQrrOH=tYYOSs_h_eq=8-3Q@mail.gmail.com","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Stefan Beller","fromEmail":"sbeller@google.com","sentAt":"2017-10-09T16:47:26Z","receivedAt":"2017-10-09T16:47:34Z","isPatch":true,"sender":{"key":"stefanbeller@gmail.com","avatar":"https://avatars.githubusercontent.com/u/455868?v=4"},"body":"On Sun, Oct 8, 2017 at 9:14 PM, Martin Ågren <martin.agren@gmail.com> wrote:\n> In this particular case, we could have three specific messages plus one default\n> message (which at the time shouldn't ever occur). Or we have one specific\n> message for the \"tag\"-case, which seems to have been Stefan's original\n> motivation, and a generic message for the other cases.\n\nI think the original patch is an improvement for the translations,\nbut I'd really want to deliver as much information to the user,\n(it's an error message after all, so tell as much as possible that can\nbe helpful,)\nwhich is why I would prefer to keep `typename(type)` in there.\n\nI always assumed that translators are aware of these issues and sort of\nwork around this somehow, maybe like this:\n\n  \"submodule entry '%s' (%s) is not a commit. It is of type %s\"\n\nThanks,\nStefan\n"},{"id":"330052","messageId":"7894534.MaGmRTisnX@cayenne","threadId":"46933","inReplyTo":"CAGZ79ka7xo96MHaAUbkDuFjWMQaaD4j2UrRndcinAg6uzaP6Kw@mail.gmail.com","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Jean-Noël AVILA","fromEmail":"jn.avila@free.fr","sentAt":"2017-10-09T21:11:42Z","receivedAt":"2017-10-09T21:12:13Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"On Monday, 9 October 2017, 09:47:26 CEST Stefan Beller wrote:\n\n> I always assumed that translators are aware of these issues and sort of\n> work around this somehow, maybe like this:\n> \n>   \"submodule entry '%s' (%s) is not a commit. It is of type %s\"\n\nTranslators can be aware of the issue if the coder commented the \ninternationalization string with some possible candidates for the placeholders \nwhen it is not clear unless you check in the source code. Much effort was \npoured into translating the technical terms in other parts of Git; it seems \nawkward to just step back in this occurence.\n\n"},{"id":"330080","messageId":"xmqq7ew3rdxa.fsf@gitster.mtv.corp.google.com","threadId":"46933","inReplyTo":"7894534.MaGmRTisnX@cayenne","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-10-10T01:26:25Z","receivedAt":"2017-10-10T01:26:34Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jean-Noël AVILA <jn.avila@free.fr> writes:\n\n> On Monday, 9 October 2017, 09:47:26 CEST Stefan Beller wrote:\n>\n>> I always assumed that translators are aware of these issues and sort of\n>> work around this somehow, maybe like this:\n>> \n>>   \"submodule entry '%s' (%s) is not a commit. It is of type %s\"\n>\n> Translators can be aware of the issue if the coder commented the \n> internationalization string with some possible candidates for the placeholders \n> when it is not clear unless you check in the source code. Much effort was \n> poured into translating the technical terms in other parts of Git; it seems \n> awkward to just step back in this occurence.\n\nI do not see this particular case as \"stepping back\", though.\n\nOur users do not spell \"git cat-file -t commit v2.0^{commit}\" with\n'commit' translated to their language, right?  Shouldn't an error\nmessage output use the same phrase the input side requests users to\nuse?\n"},{"id":"330088","messageId":"CAEe2ifX5+OUOWw75pFZN86pT1iwYk2vb6u+uEMYLDpxYzmJLEQ@mail.gmail.com","threadId":"46933","inReplyTo":"xmqq7ew3rdxa.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Changwoo Ryu","fromEmail":"cwryu@debian.org","sentAt":"2017-10-10T02:35:05Z","receivedAt":"2017-10-10T02:35:12Z","isPatch":true,"sender":{"key":"cwryu@debian.org","avatar":null},"body":"2017-10-10 10:26 GMT+09:00 Junio C Hamano <gitster@pobox.com>:\n> Jean-Noël AVILA <jn.avila@free.fr> writes:\n>\n>> On Monday, 9 October 2017, 09:47:26 CEST Stefan Beller wrote:\n>>\n>>> I always assumed that translators are aware of these issues and sort of\n>>> work around this somehow, maybe like this:\n>>>\n>>>   \"submodule entry '%s' (%s) is not a commit. It is of type %s\"\n>>\n>> Translators can be aware of the issue if the coder commented the\n>> internationalization string with some possible candidates for the placeholders\n>> when it is not clear unless you check in the source code. Much effort was\n>> poured into translating the technical terms in other parts of Git; it seems\n>> awkward to just step back in this occurence.\n>\n> I do not see this particular case as \"stepping back\", though.\n>\n> Our users do not spell \"git cat-file -t commit v2.0^{commit}\" with\n> 'commit' translated to their language, right?  Shouldn't an error\n> message output use the same phrase the input side requests users to\n> use?\n\nUsers know the limit of command-line translation. They type \"commit\"\nto commit but they see translated \"commit\" in output messages. It is\nactually confusing. But the untranslated English literals in the\nmiddle of translated sentences does not remove the confusion but\nincrease it in a different way.\n"},{"id":"330124","messageId":"CAN0heSoetaKFsZ8b0kD5w=G4g3GJJHWwBzR9RreEQoaJz_YnTg@mail.gmail.com","threadId":"46933","inReplyTo":"CAEe2ifX5+OUOWw75pFZN86pT1iwYk2vb6u+uEMYLDpxYzmJLEQ@mail.gmail.com","subject":"Re: [PATCH] submodule: avoid sentence-lego in translated string","fromName":"Martin Ågren","fromEmail":"martin.agren@gmail.com","sentAt":"2017-10-10T18:14:44Z","receivedAt":"2017-10-10T18:14:51Z","isPatch":true,"sender":{"key":"martin.agren@gmail.com","avatar":null},"body":"On 10 October 2017 at 04:35, Changwoo Ryu <cwryu@debian.org> wrote:\n> 2017-10-10 10:26 GMT+09:00 Junio C Hamano <gitster@pobox.com>:\n>> Jean-Noël AVILA <jn.avila@free.fr> writes:\n>>\n>>> On Monday, 9 October 2017, 09:47:26 CEST Stefan Beller wrote:\n>>>\n>>>> I always assumed that translators are aware of these issues and sort of\n>>>> work around this somehow, maybe like this:\n>>>>\n>>>>   \"submodule entry '%s' (%s) is not a commit. It is of type %s\"\n>>>\n>>> Translators can be aware of the issue if the coder commented the\n>>> internationalization string with some possible candidates for the placeholders\n>>> when it is not clear unless you check in the source code. Much effort was\n>>> poured into translating the technical terms in other parts of Git; it seems\n>>> awkward to just step back in this occurence.\n>>\n>> I do not see this particular case as \"stepping back\", though.\n>>\n>> Our users do not spell \"git cat-file -t commit v2.0^{commit}\" with\n>> 'commit' translated to their language, right?  Shouldn't an error\n>> message output use the same phrase the input side requests users to\n>> use?\n\nI thought Jean-Noël meant at least partially the translator-experience,\nnot just the user-experience, but I might be wrong.\n\nI prepared a patch to give a TRANSLATORS:-comment, but then I realized\nthat we have more instances like this with `typename()`. Actually, quite\noften we avoid the issue (intentionally or unintentionally) by writing\n\"of type %s\", but other times, we do the \"is a %s\". So I don't know,\nmaybe it all works anyway. The regular translators have now received 10\nmails (11 counting this) so might be aware of this particular string by\nnow. :-/\n\n> Users know the limit of command-line translation. They type \"commit\"\n> to commit but they see translated \"commit\" in output messages. It is\n> actually confusing. But the untranslated English literals in the\n> middle of translated sentences does not remove the confusion but\n> increase it in a different way.\n\nWhat you describe seems plausible, but I have to admit that I don't use\ni18n-ized software myself.\n\nMartin\n"}]}