{"thread":{"id":"42069","subject":"[PATCH v3 3/7] i18n: git-parse-remote.sh: mark strings for translation","startedAt":"2016-04-19T13:19:18Z","lastAt":"2016-05-12T23:30:50Z","messageCount":23,"participants":["Vasco Almeida","Junio C Hamano"],"isPatch":true,"patchVersion":3,"patchTotal":7},"messages":[{"id":"283783","messageId":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":null,"subject":"[PATCH v3 1/7] i18n: index-pack: use plural string instead of normal one","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-04-19T13:19:18Z","receivedAt":"2016-04-19T13:19:18Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Git could output \"completed with 1 local objects\", but in this case\nusing \"object\" instead of \"objects\" is the correct form.\nUse Q_() instead of _().\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/index-pack.c | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)\n\ndiff --git a/builtin/index-pack.c b/builtin/index-pack.c\nindex 2d1eb8b..e8c71fc 100644\n--- a/builtin/index-pack.c\n+++ b/builtin/index-pack.c\n@@ -1250,7 +1250,9 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha\n \t\t       nr_unresolved * sizeof(*objects));\n \t\tf = sha1fd(output_fd, curr_pack);\n \t\tfix_unresolved_deltas(f);\n-\t\tstrbuf_addf(&msg, _(\"completed with %d local objects\"),\n+\t\tstrbuf_addf(&msg, Q_(\"completed with %d local object\",\n+\t\t\t\t     \"completed with %d local objects\",\n+\t\t\t\t     nr_objects - nr_objects_initial),\n \t\t\t    nr_objects - nr_objects_initial);\n \t\tstop_progress_msg(&progress, msg.buf);\n \t\tstrbuf_release(&msg);\n-- \n2.1.4\n"},{"id":"283782","messageId":"1461071964-323-2-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v3 2/7] i18n: unpack-trees: mark strings for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-04-19T13:19:19Z","receivedAt":"2016-04-19T13:19:19Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Mark strings seen by the user inside setup_unpack_trees_porcelain() and\ndisplay_error_msgs() functions for translation.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n unpack-trees.c | 24 ++++++++++++------------\n 1 file changed, 12 insertions(+), 12 deletions(-)\n\ndiff --git a/unpack-trees.c b/unpack-trees.c\nindex 9f55cc2..4bc6b4f 100644\n--- a/unpack-trees.c\n+++ b/unpack-trees.c\n@@ -61,21 +61,21 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,\n \tconst char *cmd2 = strcmp(cmd, \"checkout\") ? cmd : \"switch branches\";\n \n \tif (advice_commit_before_merge)\n-\t\tmsg = \"Your local changes to the following files would be overwritten by %s:\\n%%s\"\n-\t\t\t\"Please, commit your changes or stash them before you can %s.\";\n+\t\tmsg = _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\"\n+\t\t\t\"Please, commit your changes or stash them before you can %s.\");\n \telse\n-\t\tmsg = \"Your local changes to the following files would be overwritten by %s:\\n%%s\";\n+\t\tmsg = _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\");\n \tmsgs[ERROR_WOULD_OVERWRITE] = msgs[ERROR_NOT_UPTODATE_FILE] =\n \t\txstrfmt(msg, cmd, cmd2);\n \n \tmsgs[ERROR_NOT_UPTODATE_DIR] =\n-\t\t\"Updating the following directories would lose untracked files in it:\\n%s\";\n+\t\t_(\"Updating the following directories would lose untracked files in it:\\n%s\");\n \n \tif (advice_commit_before_merge)\n-\t\tmsg = \"The following untracked working tree files would be %s by %s:\\n%%s\"\n-\t\t\t\"Please move or remove them before you can %s.\";\n+\t\tmsg = _(\"The following untracked working tree files would be %s by %s:\\n%%s\"\n+\t\t\t\"Please move or remove them before you can %s.\");\n \telse\n-\t\tmsg = \"The following untracked working tree files would be %s by %s:\\n%%s\";\n+\t\tmsg = _(\"The following untracked working tree files would be %s by %s:\\n%%s\");\n \n \tmsgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, \"removed\", cmd, cmd2);\n \tmsgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, \"overwritten\", cmd, cmd2);\n@@ -84,14 +84,14 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,\n \t * Special case: ERROR_BIND_OVERLAP refers to a pair of paths, we\n \t * cannot easily display it as a list.\n \t */\n-\tmsgs[ERROR_BIND_OVERLAP] = \"Entry '%s' overlaps with '%s'.  Cannot bind.\";\n+\tmsgs[ERROR_BIND_OVERLAP] = _(\"Entry '%s' overlaps with '%s'.  Cannot bind.\");\n \n \tmsgs[ERROR_SPARSE_NOT_UPTODATE_FILE] =\n-\t\t\"Cannot update sparse checkout: the following entries are not up-to-date:\\n%s\";\n+\t\t_(\"Cannot update sparse checkout: the following entries are not up-to-date:\\n%s\");\n \tmsgs[ERROR_WOULD_LOSE_ORPHANED_OVERWRITTEN] =\n-\t\t\"The following Working tree files would be overwritten by sparse checkout update:\\n%s\";\n+\t\t_(\"The following Working tree files would be overwritten by sparse checkout update:\\n%s\");\n \tmsgs[ERROR_WOULD_LOSE_ORPHANED_REMOVED] =\n-\t\t\"The following Working tree files would be removed by sparse checkout update:\\n%s\";\n+\t\t_(\"The following Working tree files would be removed by sparse checkout update:\\n%s\");\n \n \topts->show_all_errors = 1;\n \t/* rejected paths may not have a static buffer */\n@@ -168,7 +168,7 @@ static void display_error_msgs(struct unpack_trees_options *o)\n \t\tstring_list_clear(rejects, 0);\n \t}\n \tif (something_displayed)\n-\t\tfprintf(stderr, \"Aborting\\n\");\n+\t\tfprintf(stderr, _(\"Aborting\\n\"));\n }\n \n /*\n-- \n2.1.4\n"},{"id":"283777","messageId":"1461071964-323-3-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v3 3/7] i18n: git-parse-remote.sh: mark strings for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-04-19T13:19:20Z","receivedAt":"2016-04-19T13:19:20Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Change Makefile to include git-parse-remote.sh in LOCALIZED_SH.\n\nTODO: remove 3rd argument of error_on_missing_default_upstream function\nthat is no longer required.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n Makefile            |  2 +-\n git-parse-remote.sh | 46 +++++++++++++++++++++++++++++-----------------\n 2 files changed, 30 insertions(+), 18 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex c7354bf..677b934 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -2069,7 +2069,7 @@ XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \\\n \t--keyword=gettextln --keyword=eval_gettextln\n XGETTEXT_FLAGS_PERL = $(XGETTEXT_FLAGS) --keyword=__ --language=Perl\n LOCALIZED_C = $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H)\n-LOCALIZED_SH = $(SCRIPT_SH)\n+LOCALIZED_SH = $(SCRIPT_SH) git-parse-remote.sh\n LOCALIZED_PERL = $(SCRIPT_PERL)\n \n ifdef XGETTEXT_INCLUDE_TESTS\ndiff --git a/git-parse-remote.sh b/git-parse-remote.sh\nindex 55fe8d5..d3c3998 100644\n--- a/git-parse-remote.sh\n+++ b/git-parse-remote.sh\n@@ -56,11 +56,13 @@ get_remote_merge_branch () {\n error_on_missing_default_upstream () {\n \tcmd=\"$1\"\n \top_type=\"$2\"\n-\top_prep=\"$3\"\n+\top_prep=\"$3\" # FIXME: op_prep is no longer used\n \texample=\"$4\"\n \tbranch_name=$(git symbolic-ref -q HEAD)\n+\tdisplay_branch_name=\"${branch_name#refs/heads/}\"\n \t# If there's only one remote, use that in the suggestion\n-\tremote=\"<remote>\"\n+\tremote=\"$(gettext \"<remote>\")\"\n+\tbranch=\"$(gettext \"<branch>\")\"\n \tif test $(git remote | wc -l) = 1\n \tthen\n \t\tremote=$(git remote)\n@@ -68,22 +70,32 @@ error_on_missing_default_upstream () {\n \n \tif test -z \"$branch_name\"\n \tthen\n-\t\techo \"You are not currently on a branch. Please specify which\n-branch you want to $op_type $op_prep. See git-${cmd}(1) for details.\n-\n-    $example\n-\"\n+\t\tgettextln \"You are not currently on a branch.\"\n \telse\n-\t\techo \"There is no tracking information for the current branch.\n-Please specify which branch you want to $op_type $op_prep.\n-See git-${cmd}(1) for details\n-\n-    $example\n-\n-If you wish to set tracking information for this branch you can do so with:\n-\n-    git branch --set-upstream-to=$remote/<branch> ${branch_name#refs/heads/}\n-\"\n+\t\tgettextln \"There is no tracking information for the current branch.\"\n+\tfi\n+\tcase \"$op_type\" in\n+\trebase)\n+\t\tgettextln \"Please specify which branch you want to rebase against.\"\n+\t\t;;\n+\tmerge)\n+\t\tgettextln \"Please specify which branch you want to merge with.\"\n+\t\t;;\n+\t*)\n+\t\techo >&2 \"BUG: unknown operation type: $op_type\"\n+\t\texit 1\n+\t\t;;\n+\tesac\n+\teval_gettextln \"See git-\\${cmd}(1) for details.\"\n+\techo\n+\techo \"    $example\"\n+\techo\n+\tif test -n \"$branch_name\"\n+\tthen\n+\t\tgettextln \"If you wish to set tracking information for this branch you can do so with:\"\n+\t\techo\n+\t\techo \"    git branch --set-upstream-to=$remote/$branch $display_branch_name\"\n+\t\techo\n \tfi\n \texit 1\n }\n-- \n2.1.4\n"},{"id":"283778","messageId":"1461071964-323-4-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v3 4/7] i18n: builtin/pull.c: mark placeholders for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-04-19T13:19:21Z","receivedAt":"2016-04-19T13:19:21Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Some translations might also translate \"<remote>\" and \"<branch>\".\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\nI opted to mark also the brackets of placeholders, which I think is a good\ncompromise between consistency and letting the translators know what\nthey're translating.\n\n builtin/pull.c | 6 +++---\n 1 file changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/builtin/pull.c b/builtin/pull.c\nindex d98f481..c199f28 100644\n--- a/builtin/pull.c\n+++ b/builtin/pull.c\n@@ -474,13 +474,13 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs\n \t\t\tfprintf_ln(stderr, _(\"Please specify which branch you want to merge with.\"));\n \t\tfprintf_ln(stderr, _(\"See git-pull(1) for details.\"));\n \t\tfprintf(stderr, \"\\n\");\n-\t\tfprintf_ln(stderr, \"    git pull <remote> <branch>\");\n+\t\tfprintf_ln(stderr, \"    git pull %s %s\", _(\"<remote>\"), _(\"<branch>\"));\n \t\tfprintf(stderr, \"\\n\");\n \t} else if (!curr_branch->merge_nr) {\n \t\tconst char *remote_name = NULL;\n \n \t\tif (for_each_remote(get_only_remote, &remote_name) || !remote_name)\n-\t\t\tremote_name = \"<remote>\";\n+\t\t\tremote_name = _(\"<remote>\");\n \n \t\tfprintf_ln(stderr, _(\"There is no tracking information for the current branch.\"));\n \t\tif (opt_rebase)\n@@ -489,7 +489,7 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs\n \t\t\tfprintf_ln(stderr, _(\"Please specify which branch you want to merge with.\"));\n \t\tfprintf_ln(stderr, _(\"See git-pull(1) for details.\"));\n \t\tfprintf(stderr, \"\\n\");\n-\t\tfprintf_ln(stderr, \"    git pull <remote> <branch>\");\n+\t\tfprintf_ln(stderr, \"    git pull %s %s\", _(\"<remote>\"), _(\"<branch>\"));\n \t\tfprintf(stderr, \"\\n\");\n \t\tfprintf_ln(stderr, _(\"If you wish to set tracking information for this branch you can do so with:\\n\"\n \t\t\t\t\"\\n\"\n-- \n2.1.4\n"},{"id":"283779","messageId":"1461071964-323-5-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v3 5/7] i18n: builtin/pull.c: split strings marked for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-04-19T13:19:22Z","receivedAt":"2016-04-19T13:19:22Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Split string \"If you wish to set tracking information\nfor this branch you can do so with:\\n\" to match occurring string in\ngit-parse-remote.sh. In this case, the translator handles it only once.\n\nOn the other hand, the translations of the string that were already made\nare mark as fuzzy and the translator needs to correct it herself.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/pull.c | 8 ++++----\n 1 file changed, 4 insertions(+), 4 deletions(-)\n\ndiff --git a/builtin/pull.c b/builtin/pull.c\nindex c199f28..2ec5a9b 100644\n--- a/builtin/pull.c\n+++ b/builtin/pull.c\n@@ -491,10 +491,10 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs\n \t\tfprintf(stderr, \"\\n\");\n \t\tfprintf_ln(stderr, \"    git pull %s %s\", _(\"<remote>\"), _(\"<branch>\"));\n \t\tfprintf(stderr, \"\\n\");\n-\t\tfprintf_ln(stderr, _(\"If you wish to set tracking information for this branch you can do so with:\\n\"\n-\t\t\t\t\"\\n\"\n-\t\t\t\t\"    git branch --set-upstream-to=%s/<branch> %s\\n\"),\n-\t\t\t\tremote_name, curr_branch->name);\n+\t\tfprintf_ln(stderr, _(\"If you wish to set tracking information for this branch you can do so with:\"));\n+\t\tfprintf(stderr, \"\\n\");\n+\t\tfprintf_ln(stderr, \"    git branch --set-upstream-to=%s/%s %s\\n\",\n+\t\t\t\tremote_name, _(\"<branch>\"), curr_branch->name);\n \t} else\n \t\tfprintf_ln(stderr, _(\"Your configuration specifies to merge with the ref '%s'\\n\"\n \t\t\t\"from the remote, but no such ref was fetched.\"),\n-- \n2.1.4\n"},{"id":"283781","messageId":"1461071964-323-6-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v3 6/7] i18n: builtin/rm.c: remove a comma ',' from string","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-04-19T13:19:23Z","receivedAt":"2016-04-19T13:19:23Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Remove a comma from string marked for translation. Make the string match the\none in builtin/mv.c. Now translators have do handle this string only once.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/rm.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/builtin/rm.c b/builtin/rm.c\nindex 8829b09..be83c43 100644\n--- a/builtin/rm.c\n+++ b/builtin/rm.c\n@@ -314,7 +314,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)\n \t\tlist.entry[list.nr].is_submodule = S_ISGITLINK(ce->ce_mode);\n \t\tif (list.entry[list.nr++].is_submodule &&\n \t\t    !is_staging_gitmodules_ok())\n-\t\t\tdie (_(\"Please, stage your changes to .gitmodules or stash them to proceed\"));\n+\t\t\tdie (_(\"Please stage your changes to .gitmodules or stash them to proceed\"));\n \t}\n \n \tif (pathspec.nr) {\n-- \n2.1.4\n"},{"id":"283780","messageId":"1461071964-323-7-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v3 7/7] i18n: builtin/branch.c: mark option for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-04-19T13:19:24Z","receivedAt":"2016-04-19T13:19:24Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Mark description and parameter for option \"set-upstream-to\" for translation.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/branch.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/builtin/branch.c b/builtin/branch.c\nindex 0adba62..b7d906d 100644\n--- a/builtin/branch.c\n+++ b/builtin/branch.c\n@@ -630,7 +630,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \t\t\tBRANCH_TRACK_EXPLICIT),\n \t\tOPT_SET_INT( 0, \"set-upstream\",  &track, N_(\"change upstream info\"),\n \t\t\tBRANCH_TRACK_OVERRIDE),\n-\t\tOPT_STRING('u', \"set-upstream-to\", &new_upstream, \"upstream\", \"change the upstream info\"),\n+\t\tOPT_STRING('u', \"set-upstream-to\", &new_upstream, N_(\"upstream\"), N_(\"change the upstream info\")),\n \t\tOPT_BOOL(0, \"unset-upstream\", &unset_upstream, \"Unset the upstream info\"),\n \t\tOPT__COLOR(&branch_use_color, N_(\"use colored output\")),\n \t\tOPT_SET_INT('r', \"remotes\",     &filter.kind, N_(\"act on remote-tracking branches\"),\n-- \n2.1.4\n"},{"id":"283831","messageId":"xmqqbn551kqb.fsf@gitster.mtv.corp.google.com","threadId":"42069","inReplyTo":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","subject":"Re: [PATCH v3 1/7] i18n: index-pack: use plural string instead of normal one","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-04-19T19:06:52Z","receivedAt":"2016-04-19T19:06:52Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Hmph, two patches in the previous series seem to be missing.  On\npurpose, or by mistake?  Their net-effect is shown at the end of\nthis message, and I thought they made sense.\n\nPuzzled...\n\ndiff --git a/builtin/branch.c b/builtin/branch.c\nindex 5ab106b..32be954 100644\n--- a/builtin/branch.c\n+++ b/builtin/branch.c\n@@ -369,12 +369,14 @@ static char *get_head_description(void)\n \t\tstrbuf_addf(&desc, _(\"(no branch, bisect started on %s)\"),\n \t\t\t    state.branch);\n \telse if (state.detached_from) {\n-\t\t/* TRANSLATORS: make sure these match _(\"HEAD detached at \")\n-\t\t   and _(\"HEAD detached from \") in wt-status.c */\n \t\tif (state.detached_at)\n+\t\t\t/* TRANSLATORS: make sure this matches\n+\t\t\t   \"HEAD detached at \" in wt-status.c */\n \t\t\tstrbuf_addf(&desc, _(\"(HEAD detached at %s)\"),\n \t\t\t\tstate.detached_from);\n \t\telse\n+\t\t\t/* TRANSLATORS: make sure this matches\n+\t\t\t   \"HEAD detached from \" in wt-status.c */\n \t\t\tstrbuf_addf(&desc, _(\"(HEAD detached from %s)\"),\n \t\t\t\tstate.detached_from);\n \t}\n@@ -828,8 +830,8 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \t\tif (argc == 1 && track == BRANCH_TRACK_OVERRIDE &&\n \t\t    !branch_existed && remote_tracking) {\n \t\t\tfprintf(stderr, _(\"\\nIf you wanted to make '%s' track '%s', do this:\\n\\n\"), head, branch->name);\n-\t\t\tfprintf(stderr, _(\"    git branch -d %s\\n\"), branch->name);\n-\t\t\tfprintf(stderr, _(\"    git branch --set-upstream-to %s\\n\"), branch->name);\n+\t\t\tfprintf(stderr, \"    git branch -d %s\\n\", branch->name);\n+\t\t\tfprintf(stderr, \"    git branch --set-upstream-to %s\\n\", branch->name);\n \t\t}\n \n \t} else\n"},{"id":"283837","messageId":"xmqq37qh1ivo.fsf@gitster.mtv.corp.google.com","threadId":"42069","inReplyTo":"xmqqbn551kqb.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH v3 1/7] i18n: index-pack: use plural string instead of normal one","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-04-19T19:46:51Z","receivedAt":"2016-04-19T19:46:51Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Hmph, two patches in the previous series seem to be missing.  On\n> purpose, or by mistake?  Their net-effect is shown at the end of\n> this message, and I thought they made sense.\n>\n> Puzzled...\n\nAh, I see.  These two were sent outside the series, but because they\nare on the same theme, I chose to queue them together.\n\nWill keep them.  Thanks.\n"},{"id":"286362","messageId":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1461071964-323-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v4 0/7] i18n miscellaneous updates","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T19:59:21Z","receivedAt":"2016-05-12T19:59:21Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"This re-roll upadates patch\n  i18n: unpack-trees: mark strings for translation\n\nI have decoupled/untangled some strings to mark entire sentences instead of\nassemble them using placeholders \"%s\". This makes the translation work\neasier and more reliable.\n\nVasco Almeida (7):\n  i18n: index-pack: use plural string instead of normal one\n  i18n: unpack-trees: mark strings for translation\n  i18n: git-parse-remote.sh: mark strings for translation\n  i18n: builtin/pull.c: mark placeholders for translation\n  i18n: builtin/pull.c: split strings marked for translation\n  i18n: builtin/rm.c: remove a comma ',' from string\n  i18n: builtin/branch.c: mark option for translation\n\n Makefile             |  2 +-\n builtin/branch.c     |  2 +-\n builtin/index-pack.c |  4 ++-\n builtin/pull.c       | 14 +++++-----\n builtin/rm.c         |  2 +-\n git-parse-remote.sh  | 46 ++++++++++++++++++++------------\n unpack-trees.c       | 74 ++++++++++++++++++++++++++++++++++++++--------------\n 7 files changed, 96 insertions(+), 48 deletions(-)\n\n-- \n2.7.3\n"},{"id":"286363","messageId":"1463083168-29213-2-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v4 1/7] i18n: index-pack: use plural string instead of normal one","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T19:59:22Z","receivedAt":"2016-05-12T19:59:22Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Git could output \"completed with 1 local objects\", but in this case\nusing \"object\" instead of \"objects\" is the correct form.\nUse Q_() instead of _().\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/index-pack.c | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)\n\ndiff --git a/builtin/index-pack.c b/builtin/index-pack.c\nindex 2d1eb8b..e8c71fc 100644\n--- a/builtin/index-pack.c\n+++ b/builtin/index-pack.c\n@@ -1250,7 +1250,9 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha\n \t\t       nr_unresolved * sizeof(*objects));\n \t\tf = sha1fd(output_fd, curr_pack);\n \t\tfix_unresolved_deltas(f);\n-\t\tstrbuf_addf(&msg, _(\"completed with %d local objects\"),\n+\t\tstrbuf_addf(&msg, Q_(\"completed with %d local object\",\n+\t\t\t\t     \"completed with %d local objects\",\n+\t\t\t\t     nr_objects - nr_objects_initial),\n \t\t\t    nr_objects - nr_objects_initial);\n \t\tstop_progress_msg(&progress, msg.buf);\n \t\tstrbuf_release(&msg);\n-- \n2.7.3\n"},{"id":"286366","messageId":"1463083168-29213-3-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v4 2/7] i18n: unpack-trees: mark strings for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T19:59:23Z","receivedAt":"2016-05-12T19:59:23Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Mark strings seen by the user inside setup_unpack_trees_porcelain() and\ndisplay_error_msgs() functions for translation.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n unpack-trees.c | 74 ++++++++++++++++++++++++++++++++++++++++++----------------\n 1 file changed, 54 insertions(+), 20 deletions(-)\n\ndiff --git a/unpack-trees.c b/unpack-trees.c\nindex 11308e9..673a04e 100644\n--- a/unpack-trees.c\n+++ b/unpack-trees.c\n@@ -58,40 +58,74 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,\n \tint i;\n \tconst char **msgs = opts->msgs;\n \tconst char *msg;\n-\tconst char *cmd2 = strcmp(cmd, \"checkout\") ? cmd : \"switch branches\";\n \n-\tif (advice_commit_before_merge)\n-\t\tmsg = \"Your local changes to the following files would be overwritten by %s:\\n%%s\"\n-\t\t\t\"Please, commit your changes or stash them before you can %s.\";\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by checkout:\\n%%s\"\n+\t\t\t  \"Please, commit your changes or stash them before you can switch branches.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by merge:\\n%%s\"\n+\t\t\t  \"Please, commit your changes or stash them before you can merge.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by merge:\\n%%s\");\n \telse\n-\t\tmsg = \"Your local changes to the following files would be overwritten by %s:\\n%%s\";\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\"\n+\t\t\t  \"Please, commit your changes or stash them before you can %s.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\");\n \tmsgs[ERROR_WOULD_OVERWRITE] = msgs[ERROR_NOT_UPTODATE_FILE] =\n-\t\txstrfmt(msg, cmd, cmd2);\n+\t\txstrfmt(msg, cmd, cmd);\n \n \tmsgs[ERROR_NOT_UPTODATE_DIR] =\n-\t\t\"Updating the following directories would lose untracked files in it:\\n%s\";\n-\n-\tif (advice_commit_before_merge)\n-\t\tmsg = \"The following untracked working tree files would be %s by %s:\\n%%s\"\n-\t\t\t\"Please move or remove them before you can %s.\";\n+\t\t_(\"Updating the following directories would lose untracked files in it:\\n%s\");\n+\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by checkout:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can switch branches.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by merge:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can merge.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by merge:\\n%%s\");\n \telse\n-\t\tmsg = \"The following untracked working tree files would be %s by %s:\\n%%s\";\n-\n-\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, \"removed\", cmd, cmd2);\n-\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, \"overwritten\", cmd, cmd2);\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by %s:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can %s.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by %s:\\n%%s\");\n+\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, cmd, cmd);\n+\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by checkout:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can switch branches.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by merge:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can merge.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by merge:\\n%%s\");\n+\telse\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by %s:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can %s.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by %s:\\n%%s\");\n+\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, cmd, cmd);\n \n \t/*\n \t * Special case: ERROR_BIND_OVERLAP refers to a pair of paths, we\n \t * cannot easily display it as a list.\n \t */\n-\tmsgs[ERROR_BIND_OVERLAP] = \"Entry '%s' overlaps with '%s'.  Cannot bind.\";\n+\tmsgs[ERROR_BIND_OVERLAP] = _(\"Entry '%s' overlaps with '%s'.  Cannot bind.\");\n \n \tmsgs[ERROR_SPARSE_NOT_UPTODATE_FILE] =\n-\t\t\"Cannot update sparse checkout: the following entries are not up-to-date:\\n%s\";\n+\t\t_(\"Cannot update sparse checkout: the following entries are not up-to-date:\\n%s\");\n \tmsgs[ERROR_WOULD_LOSE_ORPHANED_OVERWRITTEN] =\n-\t\t\"The following Working tree files would be overwritten by sparse checkout update:\\n%s\";\n+\t\t_(\"The following Working tree files would be overwritten by sparse checkout update:\\n%s\");\n \tmsgs[ERROR_WOULD_LOSE_ORPHANED_REMOVED] =\n-\t\t\"The following Working tree files would be removed by sparse checkout update:\\n%s\";\n+\t\t_(\"The following Working tree files would be removed by sparse checkout update:\\n%s\");\n \n \topts->show_all_errors = 1;\n \t/* rejected paths may not have a static buffer */\n@@ -168,7 +202,7 @@ static void display_error_msgs(struct unpack_trees_options *o)\n \t\tstring_list_clear(rejects, 0);\n \t}\n \tif (something_displayed)\n-\t\tfprintf(stderr, \"Aborting\\n\");\n+\t\tfprintf(stderr, _(\"Aborting\\n\"));\n }\n \n /*\n-- \n2.7.3\n"},{"id":"286365","messageId":"1463083168-29213-4-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v4 3/7] i18n: git-parse-remote.sh: mark strings for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T19:59:24Z","receivedAt":"2016-05-12T19:59:24Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Change Makefile to include git-parse-remote.sh in LOCALIZED_SH.\n\nTODO: remove 3rd argument of error_on_missing_default_upstream function\nthat is no longer required.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n Makefile            |  2 +-\n git-parse-remote.sh | 46 +++++++++++++++++++++++++++++-----------------\n 2 files changed, 30 insertions(+), 18 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 3f03366..bc3d41e 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -2062,7 +2062,7 @@ XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \\\n \t--keyword=gettextln --keyword=eval_gettextln\n XGETTEXT_FLAGS_PERL = $(XGETTEXT_FLAGS) --keyword=__ --language=Perl\n LOCALIZED_C = $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H)\n-LOCALIZED_SH = $(SCRIPT_SH)\n+LOCALIZED_SH = $(SCRIPT_SH) git-parse-remote.sh\n LOCALIZED_PERL = $(SCRIPT_PERL)\n \n ifdef XGETTEXT_INCLUDE_TESTS\ndiff --git a/git-parse-remote.sh b/git-parse-remote.sh\nindex 55fe8d5..d3c3998 100644\n--- a/git-parse-remote.sh\n+++ b/git-parse-remote.sh\n@@ -56,11 +56,13 @@ get_remote_merge_branch () {\n error_on_missing_default_upstream () {\n \tcmd=\"$1\"\n \top_type=\"$2\"\n-\top_prep=\"$3\"\n+\top_prep=\"$3\" # FIXME: op_prep is no longer used\n \texample=\"$4\"\n \tbranch_name=$(git symbolic-ref -q HEAD)\n+\tdisplay_branch_name=\"${branch_name#refs/heads/}\"\n \t# If there's only one remote, use that in the suggestion\n-\tremote=\"<remote>\"\n+\tremote=\"$(gettext \"<remote>\")\"\n+\tbranch=\"$(gettext \"<branch>\")\"\n \tif test $(git remote | wc -l) = 1\n \tthen\n \t\tremote=$(git remote)\n@@ -68,22 +70,32 @@ error_on_missing_default_upstream () {\n \n \tif test -z \"$branch_name\"\n \tthen\n-\t\techo \"You are not currently on a branch. Please specify which\n-branch you want to $op_type $op_prep. See git-${cmd}(1) for details.\n-\n-    $example\n-\"\n+\t\tgettextln \"You are not currently on a branch.\"\n \telse\n-\t\techo \"There is no tracking information for the current branch.\n-Please specify which branch you want to $op_type $op_prep.\n-See git-${cmd}(1) for details\n-\n-    $example\n-\n-If you wish to set tracking information for this branch you can do so with:\n-\n-    git branch --set-upstream-to=$remote/<branch> ${branch_name#refs/heads/}\n-\"\n+\t\tgettextln \"There is no tracking information for the current branch.\"\n+\tfi\n+\tcase \"$op_type\" in\n+\trebase)\n+\t\tgettextln \"Please specify which branch you want to rebase against.\"\n+\t\t;;\n+\tmerge)\n+\t\tgettextln \"Please specify which branch you want to merge with.\"\n+\t\t;;\n+\t*)\n+\t\techo >&2 \"BUG: unknown operation type: $op_type\"\n+\t\texit 1\n+\t\t;;\n+\tesac\n+\teval_gettextln \"See git-\\${cmd}(1) for details.\"\n+\techo\n+\techo \"    $example\"\n+\techo\n+\tif test -n \"$branch_name\"\n+\tthen\n+\t\tgettextln \"If you wish to set tracking information for this branch you can do so with:\"\n+\t\techo\n+\t\techo \"    git branch --set-upstream-to=$remote/$branch $display_branch_name\"\n+\t\techo\n \tfi\n \texit 1\n }\n-- \n2.7.3\n"},{"id":"286364","messageId":"1463083168-29213-5-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v4 4/7] i18n: builtin/pull.c: mark placeholders for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T19:59:25Z","receivedAt":"2016-05-12T19:59:25Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Some translations might also translate \"<remote>\" and \"<branch>\".\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/pull.c | 6 +++---\n 1 file changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/builtin/pull.c b/builtin/pull.c\nindex 596b92f..96b98ea 100644\n--- a/builtin/pull.c\n+++ b/builtin/pull.c\n@@ -478,13 +478,13 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs\n \t\t\tfprintf_ln(stderr, _(\"Please specify which branch you want to merge with.\"));\n \t\tfprintf_ln(stderr, _(\"See git-pull(1) for details.\"));\n \t\tfprintf(stderr, \"\\n\");\n-\t\tfprintf_ln(stderr, \"    git pull <remote> <branch>\");\n+\t\tfprintf_ln(stderr, \"    git pull %s %s\", _(\"<remote>\"), _(\"<branch>\"));\n \t\tfprintf(stderr, \"\\n\");\n \t} else if (!curr_branch->merge_nr) {\n \t\tconst char *remote_name = NULL;\n \n \t\tif (for_each_remote(get_only_remote, &remote_name) || !remote_name)\n-\t\t\tremote_name = \"<remote>\";\n+\t\t\tremote_name = _(\"<remote>\");\n \n \t\tfprintf_ln(stderr, _(\"There is no tracking information for the current branch.\"));\n \t\tif (opt_rebase)\n@@ -493,7 +493,7 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs\n \t\t\tfprintf_ln(stderr, _(\"Please specify which branch you want to merge with.\"));\n \t\tfprintf_ln(stderr, _(\"See git-pull(1) for details.\"));\n \t\tfprintf(stderr, \"\\n\");\n-\t\tfprintf_ln(stderr, \"    git pull <remote> <branch>\");\n+\t\tfprintf_ln(stderr, \"    git pull %s %s\", _(\"<remote>\"), _(\"<branch>\"));\n \t\tfprintf(stderr, \"\\n\");\n \t\tfprintf_ln(stderr, _(\"If you wish to set tracking information for this branch you can do so with:\\n\"\n \t\t\t\t\"\\n\"\n-- \n2.7.3\n"},{"id":"286367","messageId":"1463083168-29213-6-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v4 5/7] i18n: builtin/pull.c: split strings marked for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T19:59:26Z","receivedAt":"2016-05-12T19:59:26Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Split string \"If you wish to set tracking information\nfor this branch you can do so with:\\n\" to match occurring string in\ngit-parse-remote.sh. In this case, the translator handles it only once.\n\nOn the other hand, the translations of the string that were already made\nare mark as fuzzy and the translator needs to correct it herself.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/pull.c | 8 ++++----\n 1 file changed, 4 insertions(+), 4 deletions(-)\n\ndiff --git a/builtin/pull.c b/builtin/pull.c\nindex 96b98ea..1d7333c 100644\n--- a/builtin/pull.c\n+++ b/builtin/pull.c\n@@ -495,10 +495,10 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs\n \t\tfprintf(stderr, \"\\n\");\n \t\tfprintf_ln(stderr, \"    git pull %s %s\", _(\"<remote>\"), _(\"<branch>\"));\n \t\tfprintf(stderr, \"\\n\");\n-\t\tfprintf_ln(stderr, _(\"If you wish to set tracking information for this branch you can do so with:\\n\"\n-\t\t\t\t\"\\n\"\n-\t\t\t\t\"    git branch --set-upstream-to=%s/<branch> %s\\n\"),\n-\t\t\t\tremote_name, curr_branch->name);\n+\t\tfprintf_ln(stderr, _(\"If you wish to set tracking information for this branch you can do so with:\"));\n+\t\tfprintf(stderr, \"\\n\");\n+\t\tfprintf_ln(stderr, \"    git branch --set-upstream-to=%s/%s %s\\n\",\n+\t\t\t\tremote_name, _(\"<branch>\"), curr_branch->name);\n \t} else\n \t\tfprintf_ln(stderr, _(\"Your configuration specifies to merge with the ref '%s'\\n\"\n \t\t\t\"from the remote, but no such ref was fetched.\"),\n-- \n2.7.3\n"},{"id":"286369","messageId":"1463083168-29213-7-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v4 6/7] i18n: builtin/rm.c: remove a comma ',' from string","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T19:59:27Z","receivedAt":"2016-05-12T19:59:27Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Remove a comma from string marked for translation. Make the string match the\none in builtin/mv.c. Now translators have do handle this string only once.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/rm.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/builtin/rm.c b/builtin/rm.c\nindex 8829b09..be83c43 100644\n--- a/builtin/rm.c\n+++ b/builtin/rm.c\n@@ -314,7 +314,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)\n \t\tlist.entry[list.nr].is_submodule = S_ISGITLINK(ce->ce_mode);\n \t\tif (list.entry[list.nr++].is_submodule &&\n \t\t    !is_staging_gitmodules_ok())\n-\t\t\tdie (_(\"Please, stage your changes to .gitmodules or stash them to proceed\"));\n+\t\t\tdie (_(\"Please stage your changes to .gitmodules or stash them to proceed\"));\n \t}\n \n \tif (pathspec.nr) {\n-- \n2.7.3\n"},{"id":"286368","messageId":"1463083168-29213-8-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","subject":"[PATCH v4 7/7] i18n: builtin/branch.c: mark option for translation","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T19:59:28Z","receivedAt":"2016-05-12T19:59:28Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Mark description and parameter for option \"set-upstream-to\" for translation.\n\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n builtin/branch.c | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/builtin/branch.c b/builtin/branch.c\nindex 0adba62..b7d906d 100644\n--- a/builtin/branch.c\n+++ b/builtin/branch.c\n@@ -630,7 +630,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \t\t\tBRANCH_TRACK_EXPLICIT),\n \t\tOPT_SET_INT( 0, \"set-upstream\",  &track, N_(\"change upstream info\"),\n \t\t\tBRANCH_TRACK_OVERRIDE),\n-\t\tOPT_STRING('u', \"set-upstream-to\", &new_upstream, \"upstream\", \"change the upstream info\"),\n+\t\tOPT_STRING('u', \"set-upstream-to\", &new_upstream, N_(\"upstream\"), N_(\"change the upstream info\")),\n \t\tOPT_BOOL(0, \"unset-upstream\", &unset_upstream, \"Unset the upstream info\"),\n \t\tOPT__COLOR(&branch_use_color, N_(\"use colored output\")),\n \t\tOPT_SET_INT('r', \"remotes\",     &filter.kind, N_(\"act on remote-tracking branches\"),\n-- \n2.7.3\n"},{"id":"286399","messageId":"xmqqtwi3c7gx.fsf@gitster.mtv.corp.google.com","threadId":"42069","inReplyTo":"1463083168-29213-7-git-send-email-vascomalmeida@sapo.pt","subject":"Re: [PATCH v4 6/7] i18n: builtin/rm.c: remove a comma ',' from string","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-05-12T21:05:50Z","receivedAt":"2016-05-12T21:05:50Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Vasco Almeida <vascomalmeida@sapo.pt> writes:\n\n> Remove a comma from string marked for translation. Make the string match the\n> one in builtin/mv.c. Now translators have do handle this string only once.\n>\n> Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n> ---\n\nLooks good.  BTW, I think you just added two more \"Please,\" in\n\"i18n: unpack-trees\" patch by repeating a set of very similar\nmessages.\n\n>  builtin/rm.c | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n>\n> diff --git a/builtin/rm.c b/builtin/rm.c\n> index 8829b09..be83c43 100644\n> --- a/builtin/rm.c\n> +++ b/builtin/rm.c\n> @@ -314,7 +314,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)\n>  \t\tlist.entry[list.nr].is_submodule = S_ISGITLINK(ce->ce_mode);\n>  \t\tif (list.entry[list.nr++].is_submodule &&\n>  \t\t    !is_staging_gitmodules_ok())\n> -\t\t\tdie (_(\"Please, stage your changes to .gitmodules or stash them to proceed\"));\n> +\t\t\tdie (_(\"Please stage your changes to .gitmodules or stash them to proceed\"));\n>  \t}\n>  \n>  \tif (pathspec.nr) {\n"},{"id":"286400","messageId":"xmqqposrc78w.fsf@gitster.mtv.corp.google.com","threadId":"42069","inReplyTo":"1463083168-29213-1-git-send-email-vascomalmeida@sapo.pt","subject":"Re: [PATCH v4 0/7] i18n miscellaneous updates","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-05-12T21:10:39Z","receivedAt":"2016-05-12T21:10:39Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Vasco Almeida <vascomalmeida@sapo.pt> writes:\n\n> This re-roll upadates patch\n>   i18n: unpack-trees: mark strings for translation\n\nSorry, unfortunately you cannot take them back anymore.  These from\nthe previous round are already in 'next'.\n\n    daf9f64 i18n: builtin/pull.c: split strings marked for translation\n    8a0de58 i18n: builtin/pull.c: mark placeholders for translation\n    045fac5 i18n: git-parse-remote.sh: mark strings for translation\n    60ea78b i18n: branch: move comment for translators\n    2010aab i18n: branch: unmark string for translation\n    8ae51c4 i18n: builtin/rm.c: remove a comma ',' from string\n    ed47fdf i18n: unpack-trees: mark strings for translation\n    ab86885 i18n: builtin/branch.c: mark option for translation\n    71d99b8 i18n: index-pack: use plural string instead of normal one\n\nI think the update to unpack-trees.c (v4 2/7) makes more sense than\nwhat was in ed47fdf, so perhaps you can send it in as an incremental\nupdate (and others changes made since the commits listed above)?\n\nThanks.\n"},{"id":"286409","messageId":"xmqqy47ec2n2.fsf@gitster.mtv.corp.google.com","threadId":"42069","inReplyTo":"1463083168-29213-3-git-send-email-vascomalmeida@sapo.pt","subject":"Re: [PATCH v4 2/7] i18n: unpack-trees: mark strings for translation","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-05-12T22:50:09Z","receivedAt":"2016-05-12T22:50:09Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I think this patch is better than what is already in 'next', so let\nme see if I can make it into an incremental update.\n\nWe'd need your sign-off, of course.\n\n-- >8 --\nSubject: i18n: unpack-trees: avoid substituting only a verb in sentences\n\nInstead of reusing the same set of message templates for checkout\nand other actions and substituting the verb with \"%s\", prepare\nseparate message templates for each known action.  That would make\nit easier for translation into languages where the same verb may\nconjugate differently depending on the message we are giving.\n\n---\n\ndiff --git a/unpack-trees.c b/unpack-trees.c\nindex 4bc6b4f..edb1ee5 100644\n--- a/unpack-trees.c\n+++ b/unpack-trees.c\n@@ -58,27 +58,61 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,\n \tint i;\n \tconst char **msgs = opts->msgs;\n \tconst char *msg;\n-\tconst char *cmd2 = strcmp(cmd, \"checkout\") ? cmd : \"switch branches\";\n \n-\tif (advice_commit_before_merge)\n-\t\tmsg = _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\"\n-\t\t\t\"Please, commit your changes or stash them before you can %s.\");\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by checkout:\\n%%s\"\n+\t\t\t  \"Please, commit your changes or stash them before you can switch branches.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by merge:\\n%%s\"\n+\t\t\t  \"Please, commit your changes or stash them before you can merge.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by merge:\\n%%s\");\n \telse\n-\t\tmsg = _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\");\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\"\n+\t\t\t  \"Please, commit your changes or stash them before you can %s.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\");\n \tmsgs[ERROR_WOULD_OVERWRITE] = msgs[ERROR_NOT_UPTODATE_FILE] =\n-\t\txstrfmt(msg, cmd, cmd2);\n+\t\txstrfmt(msg, cmd, cmd);\n \n \tmsgs[ERROR_NOT_UPTODATE_DIR] =\n \t\t_(\"Updating the following directories would lose untracked files in it:\\n%s\");\n \n-\tif (advice_commit_before_merge)\n-\t\tmsg = _(\"The following untracked working tree files would be %s by %s:\\n%%s\"\n-\t\t\t\"Please move or remove them before you can %s.\");\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by checkout:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can switch branches.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by merge:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can merge.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by merge:\\n%%s\");\n \telse\n-\t\tmsg = _(\"The following untracked working tree files would be %s by %s:\\n%%s\");\n-\n-\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, \"removed\", cmd, cmd2);\n-\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, \"overwritten\", cmd, cmd2);\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by %s:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can %s.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by %s:\\n%%s\");\n+\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, cmd, cmd);\n+\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by checkout:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can switch branches.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by merge:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can merge.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by merge:\\n%%s\");\n+\telse\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by %s:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can %s.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by %s:\\n%%s\");\n+\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, cmd, cmd);\n \n \t/*\n \t * Special case: ERROR_BIND_OVERLAP refers to a pair of paths, we\n"},{"id":"286411","messageId":"1463094986-7344-1-git-send-email-vascomalmeida@sapo.pt","threadId":"42069","inReplyTo":"xmqqy47ec2n2.fsf@gitster.mtv.corp.google.com","subject":"[PATCH] i18n: unpack-trees: avoid substituting only a verb in sentences","fromName":"Vasco Almeida","fromEmail":"vascomalmeida@sapo.pt","sentAt":"2016-05-12T23:16:26Z","receivedAt":"2016-05-12T23:16:26Z","isPatch":true,"sender":{"key":"vascomalmeida@sapo.pt","avatar":"https://avatars.githubusercontent.com/u/9001556?v=4"},"body":"Instead of reusing the same set of message templates for checkout\nand other actions and substituting the verb with \"%s\", prepare\nseparate message templates for each known action. That would make\nit easier for translation into languages where the same verb may\nconjugate differently depending on the message we are giving.\n\nSee gettext documentation for details:\nhttp://www.gnu.org/software/gettext/manual/html_node/Preparing-Strings.html\n\nHelped-by: Junio C Hamano <gitster@pobox.com>\nSigned-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n---\n\nI removed \"Please,\" in favor of \"Please\" as Junio C Hamano sugested.\n\n unpack-trees.c | 60 +++++++++++++++++++++++++++++++++++++++++++++-------------\n 1 file changed, 47 insertions(+), 13 deletions(-)\n\ndiff --git a/unpack-trees.c b/unpack-trees.c\nindex 630a8cf..6bc9512 100644\n--- a/unpack-trees.c\n+++ b/unpack-trees.c\n@@ -58,27 +58,61 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,\n \tint i;\n \tconst char **msgs = opts->msgs;\n \tconst char *msg;\n-\tconst char *cmd2 = strcmp(cmd, \"checkout\") ? cmd : \"switch branches\";\n \n-\tif (advice_commit_before_merge)\n-\t\tmsg = _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\"\n-\t\t\t\"Please, commit your changes or stash them before you can %s.\");\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by checkout:\\n%%s\"\n+\t\t\t  \"Please commit your changes or stash them before you can switch branches.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by merge:\\n%%s\"\n+\t\t\t  \"Please commit your changes or stash them before you can merge.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by merge:\\n%%s\");\n \telse\n-\t\tmsg = _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\");\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\"\n+\t\t\t  \"Please commit your changes or stash them before you can %s.\")\n+\t\t      : _(\"Your local changes to the following files would be overwritten by %s:\\n%%s\");\n \tmsgs[ERROR_WOULD_OVERWRITE] = msgs[ERROR_NOT_UPTODATE_FILE] =\n-\t\txstrfmt(msg, cmd, cmd2);\n+\t\txstrfmt(msg, cmd, cmd);\n \n \tmsgs[ERROR_NOT_UPTODATE_DIR] =\n \t\t_(\"Updating the following directories would lose untracked files in it:\\n%s\");\n \n-\tif (advice_commit_before_merge)\n-\t\tmsg = _(\"The following untracked working tree files would be %s by %s:\\n%%s\"\n-\t\t\t\"Please move or remove them before you can %s.\");\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by checkout:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can switch branches.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by merge:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can merge.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by merge:\\n%%s\");\n \telse\n-\t\tmsg = _(\"The following untracked working tree files would be %s by %s:\\n%%s\");\n-\n-\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, \"removed\", cmd, cmd2);\n-\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, \"overwritten\", cmd, cmd2);\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be removed by %s:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can %s.\")\n+\t\t      : _(\"The following untracked working tree files would be removed by %s:\\n%%s\");\n+\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, cmd, cmd);\n+\n+\tif (!strcmp(cmd, \"checkout\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by checkout:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can switch branches.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by checkout:\\n%%s\");\n+\telse if (!strcmp(cmd, \"merge\"))\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by merge:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can merge.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by merge:\\n%%s\");\n+\telse\n+\t\tmsg = advice_commit_before_merge\n+\t\t      ? _(\"The following untracked working tree files would be overwritten by %s:\\n%%s\"\n+\t\t\t  \"Please move or remove them before you can %s.\")\n+\t\t      : _(\"The following untracked working tree files would be overwritten by %s:\\n%%s\");\n+\tmsgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, cmd, cmd);\n \n \t/*\n \t * Special case: ERROR_BIND_OVERLAP refers to a pair of paths, we\n-- \n2.7.3\n"},{"id":"286412","messageId":"xmqqoa8ac0v1.fsf@gitster.mtv.corp.google.com","threadId":"42069","inReplyTo":"1463094986-7344-1-git-send-email-vascomalmeida@sapo.pt","subject":"Re: [PATCH] i18n: unpack-trees: avoid substituting only a verb in sentences","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-05-12T23:28:34Z","receivedAt":"2016-05-12T23:28:34Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Vasco Almeida <vascomalmeida@sapo.pt> writes:\n\n> Instead of reusing the same set of message templates for checkout\n> and other actions and substituting the verb with \"%s\", prepare\n> separate message templates for each known action. That would make\n> it easier for translation into languages where the same verb may\n> conjugate differently depending on the message we are giving.\n>\n> See gettext documentation for details:\n> http://www.gnu.org/software/gettext/manual/html_node/Preparing-Strings.html\n>\n> Helped-by: Junio C Hamano <gitster@pobox.com>\n> Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>\n> ---\n>\n> I removed \"Please,\" in favor of \"Please\" as Junio C Hamano sugested.\n\nThanks.  I think we should squash the following in, as all these\nmessages are now i18ned and without being marked with test_i18ncmp,\nGETTEXT_POISON build would fail to pass these tests.\n\n t/t7609-merge-co-error-msgs.sh | 18 +++++++++---------\n 1 file changed, 9 insertions(+), 9 deletions(-)\n\ndiff --git a/t/t7609-merge-co-error-msgs.sh b/t/t7609-merge-co-error-msgs.sh\nindex 0e4a682..6729cb3 100755\n--- a/t/t7609-merge-co-error-msgs.sh\n+++ b/t/t7609-merge-co-error-msgs.sh\n@@ -37,14 +37,14 @@ EOF\n \n test_expect_success 'untracked files overwritten by merge (fast and non-fast forward)' '\n \ttest_must_fail git merge branch 2>out &&\n-\ttest_cmp out expect &&\n+\ttest_i18ncmp out expect &&\n \tgit commit --allow-empty -m empty &&\n \t(\n \t\tGIT_MERGE_VERBOSITY=0 &&\n \t\texport GIT_MERGE_VERBOSITY &&\n \t\ttest_must_fail git merge branch 2>out2\n \t) &&\n-\ttest_cmp out2 expect &&\n+\ttest_i18ncmp out2 expect &&\n \tgit reset --hard HEAD^\n '\n \n@@ -53,7 +53,7 @@ error: Your local changes to the following files would be overwritten by merge:\n \tfour\n \tthree\n \ttwo\n-Please, commit your changes or stash them before you can merge.\n+Please commit your changes or stash them before you can merge.\n error: The following untracked working tree files would be overwritten by merge:\n \tfive\n Please move or remove them before you can merge.\n@@ -65,14 +65,14 @@ test_expect_success 'untracked files or local changes ovewritten by merge' '\n \tgit add three &&\n \tgit add four &&\n \ttest_must_fail git merge branch 2>out &&\n-\ttest_cmp out expect\n+\ttest_i18ncmp out expect\n '\n \n cat >expect <<\\EOF\n error: Your local changes to the following files would be overwritten by checkout:\n \trep/one\n \trep/two\n-Please, commit your changes or stash them before you can switch branches.\n+Please commit your changes or stash them before you can switch branches.\n Aborting\n EOF\n \n@@ -87,21 +87,21 @@ test_expect_success 'cannot switch branches because of local changes' '\n \techo uno >rep/one &&\n \techo dos >rep/two &&\n \ttest_must_fail git checkout branch 2>out &&\n-\ttest_cmp out expect\n+\ttest_i18ncmp out expect\n '\n \n cat >expect <<\\EOF\n error: Your local changes to the following files would be overwritten by checkout:\n \trep/one\n \trep/two\n-Please, commit your changes or stash them before you can switch branches.\n+Please commit your changes or stash them before you can switch branches.\n Aborting\n EOF\n \n test_expect_success 'not uptodate file porcelain checkout error' '\n \tgit add rep/one rep/two &&\n \ttest_must_fail git checkout branch 2>out &&\n-\ttest_cmp out expect\n+\ttest_i18ncmp out expect\n '\n \n cat >expect <<\\EOF\n@@ -132,7 +132,7 @@ test_expect_success 'not_uptodate_dir porcelain checkout error' '\n \t>rep/untracked-file &&\n \t>rep2/untracked-file &&\n \ttest_must_fail git checkout branch 2>out &&\n-\ttest_cmp out ../expect\n+\ttest_i18ncmp out ../expect\n '\n \n test_done\n"},{"id":"286413","messageId":"xmqqk2iyc0r9.fsf@gitster.mtv.corp.google.com","threadId":"42069","inReplyTo":"xmqqoa8ac0v1.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH] i18n: unpack-trees: avoid substituting only a verb in sentences","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-05-12T23:30:50Z","receivedAt":"2016-05-12T23:30:50Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Thanks.  I think we should squash the following in, as all these\n> messages are now i18ned and without being marked with test_i18ncmp,\n> GETTEXT_POISON build would fail to pass these tests.\n\n... this was not a request for you to re-send your patch with the\nupdate to the test.  I'll just squash it in.\n\nThanks for the i18n updates.\n"}]}