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

[PATCH v3 06/16] read-cache.c: mark more strings for translation

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Nov 10, 2018, 05:16 UTC
Message-ID
<20181110051615.8641-7-pclouds@gmail.com>
In-Reply-To
<20181110051615.8641-1-pclouds@gmail.com>
There are a couple other improvements on these strings as well:
 - add missing colon (as separator)
 - quote paths
 - provide more information on error messages
 - keep first word in lowercase
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 read-cache.c    | 57 +++++++++++++++++++++++++------------------------
 t/t1450-fsck.sh |  2 +-
 2 files changed, 30 insertions(+), 29 deletions(-)
diff --git a/read-cache.c b/read-cache.c
index 0c37f4885e..858befe738 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -672,7 +672,8 @@ static struct cache_entry *create_alias_ce(struct index_state *istate,
 	struct cache_entry *new_entry;
 
 	if (alias->ce_flags & CE_ADDED)
-		die("Will not add file alias '%s' ('%s' already exists in index)", ce->name, alias->name);
+		die(_("will not add file alias '%s' ('%s' already exists in index)"),
+		    ce->name, alias->name);
 
 	/* Ok, create the new entry using the name of the existing alias */
 	len = ce_namelen(alias);
@@ -687,7 +688,7 @@ void set_object_name_for_intent_to_add_entry(struct cache_entry *ce)
 {
 	struct object_id oid;
 	if (write_object_file("", 0, blob_type, &oid))
-		die("cannot create an empty blob in the object database");
+		die(_("cannot create an empty blob in the object database"));
 	oidcpy(&ce->oid, &oid);
 }
 
@@ -708,7 +709,7 @@ int add_to_index(struct index_state *istate, const char *path, struct stat *st,
 		newflags |= HASH_RENORMALIZE;
 
 	if (!S_ISREG(st_mode) && !S_ISLNK(st_mode) && !S_ISDIR(st_mode))
-		return error("%s: can only add regular files, symbolic links or git-directories", path);
+		return error(_("%s: can only add regular files, symbolic links or git-directories"), path);
 
 	namelen = strlen(path);
 	if (S_ISDIR(st_mode)) {
@@ -763,7 +764,7 @@ int add_to_index(struct index_state *istate, const char *path, struct stat *st,
 	if (!intent_only) {
 		if (index_path(istate, &ce->oid, path, st, newflags)) {
 			discard_cache_entry(ce);
-			return error("unable to index file %s", path);
+			return error(_("unable to index file '%s'"), path);
 		}
 	} else
 		set_object_name_for_intent_to_add_entry(ce);
@@ -782,7 +783,7 @@ int add_to_index(struct index_state *istate, const char *path, struct stat *st,
 		discard_cache_entry(ce);
 	else if (add_index_entry(istate, ce, add_option)) {
 		discard_cache_entry(ce);
-		return error("unable to add %s to index", path);
+		return error(_("unable to add '%s' to index"), path);
 	}
 	if (verbose && !was_same)
 		printf("add '%s'\n", path);
@@ -793,7 +794,7 @@ int add_file_to_index(struct index_state *istate, const char *path, int flags)
 {
 	struct stat st;
 	if (lstat(path, &st))
-		die_errno("unable to stat '%s'", path);
+		die_errno(_("unable to stat '%s'"), path);
 	return add_to_index(istate, path, &st, flags);
 }
 
@@ -818,7 +819,7 @@ struct cache_entry *make_cache_entry(struct index_state *istate,
 	int len;
 
 	if (!verify_path(path, mode)) {
-		error("Invalid path '%s'", path);
+		error(_("invalid path '%s'"), path);
 		return NULL;
 	}
 
@@ -844,7 +845,7 @@ struct cache_entry *make_transient_cache_entry(unsigned int mode, const struct o
 	int len;
 
 	if (!verify_path(path, mode)) {
-		error("Invalid path '%s'", path);
+		error(_("invalid path '%s'"), path);
 		return NULL;
 	}
 
@@ -1297,12 +1298,12 @@ static int add_index_entry_with_check(struct index_state *istate, struct cache_e
 	if (!ok_to_add)
 		return -1;
 	if (!verify_path(ce->name, ce->ce_mode))
-		return error("Invalid path '%s'", ce->name);
+		return error(_("invalid path '%s'"), ce->name);
 
 	if (!skip_df_check &&
 	    check_file_directory_conflict(istate, ce, pos, ok_to_replace)) {
 		if (!ok_to_replace)
-			return error("'%s' appears as both a file and as a directory",
+			return error(_("'%s' appears as both a file and as a directory"),
 				     ce->name);
 		pos = index_name_stage_pos(istate, ce->name, ce_namelen(ce), ce_stage(ce));
 		pos = -pos-1;
@@ -1676,10 +1677,10 @@ static int verify_hdr(const struct cache_header *hdr, unsigned long size)
 	int hdr_version;
 
 	if (hdr->hdr_signature != htonl(CACHE_SIGNATURE))
-		return error("bad signature");
+		return error(_("bad signature 0x%08x"), hdr->hdr_signature);
 	hdr_version = ntohl(hdr->hdr_version);
 	if (hdr_version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < hdr_version)
-		return error("bad index version %d", hdr_version);
+		return error(_("bad index version %d"), hdr_version);
 
 	if (!verify_index_checksum)
 		return 0;
@@ -1688,7 +1689,7 @@ static int verify_hdr(const struct cache_header *hdr, unsigned long size)
 	the_hash_algo->update_fn(&c, hdr, size - the_hash_algo->rawsz);
 	the_hash_algo->final_fn(hash, &c);
 	if (!hasheq(hash, (unsigned char *)hdr + size - the_hash_algo->rawsz))
-		return error("bad index file sha1 signature");
+		return error(_("bad index file sha1 signature"));
 	return 0;
 }
 
@@ -1718,9 +1719,9 @@ static int read_index_extension(struct index_state *istate,
 		break;
 	default:
 		if (*ext < 'A' || 'Z' < *ext)
-			return error("index uses %.4s extension, which we do not understand",
+			return error(_("index uses %.4s extension, which we do not understand"),
 				     ext);
-		fprintf(stderr, "ignoring %.4s extension\n", ext);
+		fprintf_ln(stderr, _("ignoring %.4s extension"), ext);
 		break;
 	}
 	return 0;
@@ -1767,7 +1768,7 @@ static struct cache_entry *create_from_disk(struct mem_pool *ce_mem_pool,
 		extended_flags = get_be16(&ondisk2->flags2) << 16;
 		/* We do not yet understand any bit out of CE_EXTENDED_FLAGS */
 		if (extended_flags & ~CE_EXTENDED_FLAGS)
-			die("Unknown index entry format %08x", extended_flags);
+			die(_("unknown index entry format 0x%08x"), extended_flags);
 		flags |= extended_flags;
 		name = ondisk2->name;
 	}
@@ -1840,13 +1841,13 @@ static void check_ce_order(struct index_state *istate)
 		int name_compare = strcmp(ce->name, next_ce->name);
 
 		if (0 < name_compare)
-			die("unordered stage entries in index");
+			die(_("unordered stage entries in index"));
 		if (!name_compare) {
 			if (!ce_stage(ce))
-				die("multiple stage entries for merged file '%s'",
+				die(_("multiple stage entries for merged file '%s'"),
 				    ce->name);
 			if (ce_stage(ce) > ce_stage(next_ce))
-				die("unordered stage entries for '%s'",
+				die(_("unordered stage entries for '%s'"),
 				    ce->name);
 		}
 	}
@@ -2149,19 +2150,19 @@ int do_read_index(struct index_state *istate, const char *path, int must_exist)
 	if (fd < 0) {
 		if (!must_exist && errno == ENOENT)
 			return 0;
-		die_errno("%s: index file open failed", path);
+		die_errno(_("%s: index file open failed"), path);
 	}
 
 	if (fstat(fd, &st))
-		die_errno("cannot stat the open index");
+		die_errno(_("%s: cannot stat the open index"), path);
 
 	mmap_size = xsize_t(st.st_size);
 	if (mmap_size < sizeof(struct cache_header) + the_hash_algo->rawsz)
-		die("index file smaller than expected");
+		die(_("%s: index file smaller than expected"), path);
 
 	mmap = xmmap(NULL, mmap_size, PROT_READ, MAP_PRIVATE, fd, 0);
 	if (mmap == MAP_FAILED)
-		die_errno("unable to map index file");
+		die_errno(_("%s: unable to map index file"), path);
 	close(fd);
 
 	hdr = (const struct cache_header *)mmap;
@@ -2243,7 +2244,7 @@ int do_read_index(struct index_state *istate, const char *path, int must_exist)
 
 unmap:
 	munmap((void *)mmap, mmap_size);
-	die("index file corrupt");
+	die(_("index file corrupt"));
 }
 
 /*
@@ -2255,7 +2256,7 @@ int do_read_index(struct index_state *istate, const char *path, int must_exist)
 static void freshen_shared_index(const char *shared_index, int warn)
 {
 	if (!check_and_freshen_file(shared_index, 1) && warn)
-		warning("could not freshen shared index '%s'", shared_index);
+		warning(_("could not freshen shared index '%s'"), shared_index);
 }
 
 int read_index_from(struct index_state *istate, const char *path,
@@ -2290,7 +2291,7 @@ int read_index_from(struct index_state *istate, const char *path,
 	base_path = xstrfmt("%s/sharedindex.%s", gitdir, base_oid_hex);
 	ret = do_read_index(split_index->base, base_path, 1);
 	if (!oideq(&split_index->base_oid, &split_index->base->oid))
-		die("broken index, expect %s in %s, got %s",
+		die(_("broken index, expect %s in %s, got %s"),
 		    base_oid_hex, base_path,
 		    oid_to_hex(&split_index->base->oid));
 
@@ -3076,7 +3077,7 @@ static int write_shared_index(struct index_state *istate,
 		return ret;
 	ret = adjust_shared_perm(get_tempfile_path(*temp));
 	if (ret) {
-		error("cannot fix permission bits on %s", get_tempfile_path(*temp));
+		error(_("cannot fix permission bits on '%s'"), get_tempfile_path(*temp));
 		return ret;
 	}
 	ret = rename_tempfile(temp,
@@ -3222,7 +3223,7 @@ int read_index_unmerged(struct index_state *istate)
 		new_ce->ce_namelen = len;
 		new_ce->ce_mode = ce->ce_mode;
 		if (add_index_entry(istate, new_ce, ADD_CACHE_SKIP_DFCHECK))
-			return error("%s: cannot drop to stage #0",
+			return error(_("%s: cannot drop to stage #0"),
 				     new_ce->name);
 	}
 	return unmerged;
diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh
index 0f2dd26f74..90c765df3a 100755
--- a/t/t1450-fsck.sh
+++ b/t/t1450-fsck.sh
@@ -754,7 +754,7 @@ test_expect_success 'detect corrupt index file in fsck' '
 	test_when_finished "mv .git/index.backup .git/index" &&
 	corrupt_index_checksum &&
 	test_must_fail git fsck --cache 2>errors &&
-	grep "bad index file" errors
+	test_i18ngrep "bad index file" errors
 '
 
 test_done
-- 
2.19.1.1231.g84aef82467
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 60 of 71 in “Mark more strings for translation”
  1. 00/12 Mark more strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  2. 01/12 git.c: mark more strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  3. 02/12 alias.c: mark split_cmdline_strerror() strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  4. 03/12 archive.c: mark more strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  5. 04/12 attr.c: mark more string for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  6. 05/12 read-cache.c: mark more strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  7. 06/12 read-cache.c: add missing colon separatorsNguyễn Thái Ngọc Duy, Oct 28, 2018
  8. 07/12 reflog: mark strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  9. 09/12 repack: mark more strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  10. 08/12 remote.c: mark messages for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  11. Junio C HamanoOct 29, 2018
  12. Duy NguyenOct 29, 2018
  13. 11/12 parse-options.c: mark more strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  14. 10/12 parse-options: replace opterror() with optname()Nguyễn Thái Ngọc Duy, Oct 28, 2018
  15. 12/12 fsck: mark strings for translationNguyễn Thái Ngọc Duy, Oct 28, 2018
  16. SZEDER GáborOct 29, 2018
  17. Junio C HamanoOct 29, 2018
  18. Duy NguyenOct 29, 2018
  19. Ævar Arnfjörð BjarmasonOct 29, 2018
  20. Ævar Arnfjörð BjarmasonOct 29, 2018
  21. Jiang XinNov 1, 2018
  22. Jonathan NiederOct 30, 2018
  23. Duy NguyenNov 5, 2018
  24. 00/16 Mark more strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  25. 01/16 git.c: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  26. Junio C HamanoNov 6, 2018
  27. 02/16 alias.c: mark split_cmdline_strerror() strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  28. 03/16 archive.c: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  29. Junio C HamanoNov 6, 2018
  30. 04/16 attr.c: mark more string for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  31. 05/16 read-cache.c: turn die("internal error") to BUG()Nguyễn Thái Ngọc Duy, Nov 5, 2018
  32. Junio C HamanoNov 6, 2018
  33. 06/16 read-cache.c: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  34. 07/16 read-cache.c: add missing colon separatorsNguyễn Thái Ngọc Duy, Nov 5, 2018
  35. Junio C HamanoNov 6, 2018
  36. 09/16 remote.c: turn some error() or die() to BUG()Nguyễn Thái Ngọc Duy, Nov 5, 2018
  37. Junio C HamanoNov 6, 2018
  38. 08/16 reflog: mark strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  39. Junio C HamanoNov 6, 2018
  40. 11/16 repack: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  41. 10/16 remote.c: mark messages for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  42. 13/16 parse-options.c: turn some die() to BUG()Nguyễn Thái Ngọc Duy, Nov 5, 2018
  43. Junio C HamanoNov 6, 2018
  44. 14/16 parse-options.c: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  45. 12/16 parse-options: replace opterror() with optname()Nguyễn Thái Ngọc Duy, Nov 5, 2018
  46. Junio C HamanoNov 6, 2018
  47. Ramsay JonesNov 6, 2018
  48. Jeff KingNov 6, 2018
  49. Duy NguyenNov 10, 2018
  50. Ramsay JonesNov 10, 2018
  51. 15/16 fsck: reduce word legos to help i18nNguyễn Thái Ngọc Duy, Nov 5, 2018
  52. Junio C HamanoNov 6, 2018
  53. Duy NguyenNov 10, 2018
  54. 16/16 fsck: mark strings for translationNguyễn Thái Ngọc Duy, Nov 5, 2018
  55. 00/16 Mark more strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  56. 16/16 fsck: mark strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  57. 03/16 archive.c: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  58. 02/16 alias.c: mark split_cmdline_strerror() strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  59. 04/16 attr.c: mark more string for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  60. 06/16 read-cache.c: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  61. 07/16 read-cache.c: add missing colon separatorsNguyễn Thái Ngọc Duy, Nov 10, 2018
  62. 14/16 parse-options.c: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  63. 01/16 git.c: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  64. 09/16 remote.c: turn some error() or die() to BUG()Nguyễn Thái Ngọc Duy, Nov 10, 2018
  65. 05/16 read-cache.c: turn die("internal error") to BUG()Nguyễn Thái Ngọc Duy, Nov 10, 2018
  66. 12/16 parse-options: replace opterror() with optname()Nguyễn Thái Ngọc Duy, Nov 10, 2018
  67. 10/16 remote.c: mark messages for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  68. 15/16 fsck: reduce word legos to help i18nNguyễn Thái Ngọc Duy, Nov 10, 2018
  69. 13/16 parse-options.c: turn some die() to BUG()Nguyễn Thái Ngọc Duy, Nov 10, 2018
  70. 11/16 repack: mark more strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018
  71. 08/16 reflog: mark strings for translationNguyễn Thái Ngọc Duy, Nov 10, 2018

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.