git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 03/22] i18n: advice: internationalize message for conflicts

From
Vasco Almeida <vascomalmeida@sapo.pt>
Date
May 23, 2016, 19:27 UTC
Message-ID
<1464031661-18988-4-git-send-email-vascomalmeida@sapo.pt>
In-Reply-To
<1464031661-18988-1-git-send-email-vascomalmeida@sapo.pt>

Mark message for translation telling the user she has conflicts to resolve. Expose each particular use case, in order to enable translating entire sentences which would facilitate translating into other languages.

Change "Pull" to lowercase to match other instances. Update test t5520-pull.sh, that relied on the old error message, to use the new one.

Although we loose in source code conciseness, we would gain better translations because translators can 1) translate the entire sentence, including those terms concerning Git (committing, merging, etc) 2) have leeway to adapt to their languages.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---

It is not clear to me what is the current stand on this approach, so I've updated the commit message to include more information and changed the messages a bit.

 advice.c        | 17 +++++++++++++++--
 builtin/pull.c  |  2 +-
 t/t5520-pull.sh |  2 +-
 3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/advice.c b/advice.c
index 703a847..4612165 100644
--- a/advice.c
+++ b/advice.c
@@ -79,7 +79,20 @@ int git_default_advice_config(const char *var, const char *value)
 
 int error_resolve_conflict(const char *me)
 {
-	error("%s is not possible because you have unmerged files.", me);
+	if (!strcmp(me, "cherry-pick"))
+		error(_("Cherry-picking is not possible because you have unmerged files."));
+	else if (!strcmp(me, "commit"))
+		error(_("Committing is not possible because you have unmerged files."));
+	else if (!strcmp(me, "merge"))
+		error(_("Merging is not possible because you have unmerged files."));
+	else if (!strcmp(me, "pull"))
+		error(_("Pulling is not possible because you have unmerged files."));
+	else if (!strcmp(me, "revert"))
+		error(_("Reverting is not possible because you have unmerged files."));
+	else
+		error(_("It is not possible to %s because you have unmerged files."),
+			me);
+
 	if (advice_resolve_conflict)
 		/*
 		 * Message used both when 'git commit' fails and when
@@ -93,7 +106,7 @@ int error_resolve_conflict(const char *me)
 void NORETURN die_resolve_conflict(const char *me)
 {
 	error_resolve_conflict(me);
-	die("Exiting because of an unresolved conflict.");
+	die(_("Exiting because of an unresolved conflict."));
 }
 
 void NORETURN die_conclude_merge(void)
diff --git a/builtin/pull.c b/builtin/pull.c
index 1d7333c..a980dcf 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -852,7 +852,7 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
 	git_config(git_pull_config, NULL);
 
 	if (read_cache_unmerged())
-		die_resolve_conflict("Pull");
+		die_resolve_conflict("pull");
 
 	if (file_exists(git_path("MERGE_HEAD")))
 		die_conclude_merge();
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
index 739c089..45e44ca 100755
--- a/t/t5520-pull.sh
+++ b/t/t5520-pull.sh
@@ -211,7 +211,7 @@ test_expect_success 'fail if the index has unresolved entries' '
 	test -n "$(git ls-files -u)" &&
 	cp file expected &&
 	test_must_fail git pull . second 2>err &&
-	test_i18ngrep "Pull is not possible because you have unmerged files" err &&
+	test_i18ngrep "Pulling is not possible because you have unmerged files." err &&
 	test_cmp expected file &&
 	git add file &&
 	test -z "$(git ls-files -u)" &&
-- 
2.7.3
Previous: Vasco AlmeidaNext: Vasco Almeida
Message 5 of 38 in “i18n and test updates”
  1. 00/22 i18n and test updatesVasco Almeida, May 23, 2016
  2. 01/22 i18n: builtin/remote.c: fix mark for translationVasco Almeida, May 23, 2016
  3. 02/22 i18n: advice: mark string about detached head for translationVasco Almeida, May 23, 2016
  4. Vasco AlmeidaMay 30, 2016
  5. 03/22 i18n: advice: internationalize message for conflictsVasco Almeida, May 23, 2016
  6. 04/22 i18n: transport: mark strings for translationVasco Almeida, May 23, 2016
  7. 05/22 i18n: sequencer: mark entire sentences for translationVasco Almeida, May 23, 2016
  8. 06/22 i18n: sequencer: mark string for translationVasco Almeida, May 23, 2016
  9. 07/22 i18n: merge-octopus: mark messages for translationVasco Almeida, May 23, 2016
  10. 08/22 merge-octupus: use die shell function from git-sh-setup.shVasco Almeida, May 23, 2016
  11. 09/22 i18n: rebase: fix marked string to use eval_gettext variantVasco Almeida, May 23, 2016
  12. 10/22 i18n: rebase: mark placeholder for translationVasco Almeida, May 23, 2016
  13. 11/22 i18n: bisect: simplify error message for i18nVasco Almeida, May 23, 2016
  14. 12/22 t6030: update to use test_i18ncmpVasco Almeida, May 23, 2016
  15. 13/22 i18n: git-sh-setup.sh: mark strings for translationVasco Almeida, May 23, 2016
  16. Junio C HamanoMay 26, 2016
  17. Vasco AlmeidaMay 27, 2016
  18. 14/22 i18n: rebase-interactive: mark strings for translationVasco Almeida, May 23, 2016
  19. Junio C HamanoMay 26, 2016
  20. Vasco AlmeidaMay 27, 2016
  21. Junio C HamanoMay 27, 2016
  22. 15/22 i18n: rebase-interactive: mark here-doc strings for translationVasco Almeida, May 23, 2016
  23. Vasco AlmeidaMay 25, 2016
  24. 16/22 i18n: rebase-interactive: mark comments of squash for translationVasco Almeida, May 23, 2016
  25. Junio C HamanoMay 26, 2016
  26. Vasco AlmeidaMay 27, 2016
  27. 17/22 i18n: setup: mark strings for translationVasco Almeida, May 23, 2016
  28. 18/22 tests: use test_i18n* functions to suppress false positivesVasco Almeida, May 23, 2016
  29. Junio C HamanoMay 27, 2016
  30. Vasco AlmeidaMay 27, 2016
  31. Junio C HamanoMay 27, 2016
  32. 19/22 tests: unpack-trees: update to use test_i18n* functionsVasco Almeida, May 23, 2016
  33. 20/22 t9003: become resilient to GETTEXT_POISONVasco Almeida, May 23, 2016
  34. 21/22 t4153: fix negated test_i18ngrep callVasco Almeida, May 23, 2016
  35. 22/22 t5523: use test_i18ngrep for negationVasco Almeida, May 23, 2016
  36. Junio C HamanoMay 27, 2016
  37. Vasco AlmeidaMay 28, 2016
  38. Junio C HamanoMay 30, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.