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

[PATCH/RFC 05/17] gettext: make the simple parts of git-init localizable

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Aug 30, 2010, 21:28 UTC
Message-ID
<1283203703-26923-6-git-send-email-avarab@gmail.com>
In-Reply-To
<1283203703-26923-1-git-send-email-avarab@gmail.com>

Change the user visible strings in init-db.c to use gettext localizations. This only converts messages which needed to be changed from "foo" to _("foo"), and didn't need any TRANSLATORS comments.

I haven't marked the messages in init_db_usage or init_db_options for translation, since that would require additional changes in parse-options.c. Those can be done later.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 builtin/init-db.c |   46 +++++++++++++++++++++++-----------------------
 1 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/builtin/init-db.c b/builtin/init-db.c
index 0271285..9c08985 100644
--- a/builtin/init-db.c
+++ b/builtin/init-db.c
@@ -31,7 +31,7 @@ static void safe_create_dir(const char *dir, int share)
 		}
 	}
 	else if (share && adjust_shared_perm(dir))
-		die("Could not make %s writable by group", dir);
+		die(_("Could not make %s writable by group"), dir);
 }
 
 static void copy_templates_1(char *path, int baselen,
@@ -58,25 +58,25 @@ static void copy_templates_1(char *path, int baselen,
 		namelen = strlen(de->d_name);
 		if ((PATH_MAX <= baselen + namelen) ||
 		    (PATH_MAX <= template_baselen + namelen))
-			die("insanely long template name %s", de->d_name);
+			die(_("insanely long template name %s"), de->d_name);
 		memcpy(path + baselen, de->d_name, namelen+1);
 		memcpy(template + template_baselen, de->d_name, namelen+1);
 		if (lstat(path, &st_git)) {
 			if (errno != ENOENT)
-				die_errno("cannot stat '%s'", path);
+				die_errno(_("cannot stat '%s'"), path);
 		}
 		else
 			exists = 1;
 
 		if (lstat(template, &st_template))
-			die_errno("cannot stat template '%s'", template);
+			die_errno(_("cannot stat template '%s'"), template);
 
 		if (S_ISDIR(st_template.st_mode)) {
 			DIR *subdir = opendir(template);
 			int baselen_sub = baselen + namelen;
 			int template_baselen_sub = template_baselen + namelen;
 			if (!subdir)
-				die_errno("cannot opendir '%s'", template);
+				die_errno(_("cannot opendir '%s'"), template);
 			path[baselen_sub++] =
 				template[template_baselen_sub++] = '/';
 			path[baselen_sub] =
@@ -93,20 +93,20 @@ static void copy_templates_1(char *path, int baselen,
 			int len;
 			len = readlink(template, lnk, sizeof(lnk));
 			if (len < 0)
-				die_errno("cannot readlink '%s'", template);
+				die_errno(_("cannot readlink '%s'"), template);
 			if (sizeof(lnk) <= len)
-				die("insanely long symlink %s", template);
+				die(_("insanely long symlink %s"), template);
 			lnk[len] = 0;
 			if (symlink(lnk, path))
-				die_errno("cannot symlink '%s' '%s'", lnk, path);
+				die_errno(_("cannot symlink '%s' '%s'"), lnk, path);
 		}
 		else if (S_ISREG(st_template.st_mode)) {
 			if (copy_file(path, template, st_template.st_mode))
-				die_errno("cannot copy '%s' to '%s'", template,
+				die_errno(_("cannot copy '%s' to '%s'"), template,
 					  path);
 		}
 		else
-			error("ignoring template %s", template);
+			error(_("ignoring template %s"), template);
 	}
 }
 
@@ -129,7 +129,7 @@ static void copy_templates(const char *template_dir)
 		return;
 	template_len = strlen(template_dir);
 	if (PATH_MAX <= (template_len+strlen("/config")))
-		die("insanely long template path %s", template_dir);
+		die(_("insanely long template path %s"), template_dir);
 	strcpy(template_path, template_dir);
 	if (template_path[template_len-1] != '/') {
 		template_path[template_len++] = '/';
@@ -137,7 +137,7 @@ static void copy_templates(const char *template_dir)
 	}
 	dir = opendir(template_path);
 	if (!dir) {
-		warning("templates not found %s", template_dir);
+		warning(_("templates not found %s"), template_dir);
 		return;
 	}
 
@@ -150,8 +150,8 @@ static void copy_templates(const char *template_dir)
 
 	if (repository_format_version &&
 	    repository_format_version != GIT_REPO_VERSION) {
-		warning("not copying templates of "
-			"a wrong format version %d from '%s'",
+		warning(_("not copying templates of "
+			"a wrong format version %d from '%s'"),
 			repository_format_version,
 			template_dir);
 		closedir(dir);
@@ -188,7 +188,7 @@ static int create_default_files(const char *template_path)
 	int filemode;
 
 	if (len > sizeof(path)-50)
-		die("insane git directory %s", git_dir);
+		die(_("insane git directory %s"), git_dir);
 	memcpy(path, git_dir, len);
 
 	if (len && path[len-1] != '/')
@@ -369,7 +369,7 @@ static int guess_repository_type(const char *git_dir)
 	if (!strcmp(".", git_dir))
 		return 1;
 	if (!getcwd(cwd, sizeof(cwd)))
-		die_errno("cannot tell cwd");
+		die_errno(_("cannot tell cwd"));
 	if (!strcmp(git_dir, cwd))
 		return 1;
 	/*
@@ -443,18 +443,18 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
 					errno = EEXIST;
 					/* fallthru */
 				case -1:
-					die_errno("cannot mkdir %s", argv[0]);
+					die_errno(_("cannot mkdir %s"), argv[0]);
 					break;
 				default:
 					break;
 				}
 				shared_repository = saved;
 				if (mkdir(argv[0], 0777) < 0)
-					die_errno("cannot mkdir %s", argv[0]);
+					die_errno(_("cannot mkdir %s"), argv[0]);
 				mkdir_tried = 1;
 				goto retry;
 			}
-			die_errno("cannot chdir to %s", argv[0]);
+			die_errno(_("cannot chdir to %s"), argv[0]);
 		}
 	} else if (0 < argc) {
 		usage(init_db_usage[0]);
@@ -476,8 +476,8 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
 	git_dir = getenv(GIT_DIR_ENVIRONMENT);
 	if ((!git_dir || is_bare_repository_cfg == 1)
 	    && getenv(GIT_WORK_TREE_ENVIRONMENT))
-		die("%s (or --work-tree=<directory>) not allowed without "
-		    "specifying %s (or --git-dir=<directory>)",
+		die(_("%s (or --work-tree=<directory>) not allowed without "
+			  "specifying %s (or --git-dir=<directory>)"),
 		    GIT_WORK_TREE_ENVIRONMENT,
 		    GIT_DIR_ENVIRONMENT);
 
@@ -502,10 +502,10 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
 		if (!git_work_tree_cfg) {
 			git_work_tree_cfg = xcalloc(PATH_MAX, 1);
 			if (!getcwd(git_work_tree_cfg, PATH_MAX))
-				die_errno ("Cannot access current working directory");
+				die_errno (_("Cannot access current working directory"));
 		}
 		if (access(get_git_work_tree(), X_OK))
-			die_errno ("Cannot access work tree '%s'",
+			die_errno (_("Cannot access work tree '%s'"),
 				   get_git_work_tree());
 	}
 
-- 
1.7.2.2.536.g3f548
Previous: Ævar Arnfjörð BjarmasonNext: Jonathan Nieder
Message 8 of 55 in “Begin gettextizing Git”
  1. 00/17 Begin gettextizing GitÆvar Arnfjörð Bjarmason, Aug 30, 2010
  2. 01/17 Makefile: A variable for options used by xgettext(1) callsÆvar Arnfjörð Bjarmason, Aug 30, 2010
  3. Jonathan NiederAug 31, 2010
  4. Ævar Arnfjörð BjarmasonAug 31, 2010
  5. 02/17 Makefile: provide a --msgid-bugs-address to xgettext(1)Ævar Arnfjörð Bjarmason, Aug 30, 2010
  6. 03/17 Makefile: tell xgettext(1) that our source is in UTF-8Ævar Arnfjörð Bjarmason, Aug 30, 2010
  7. 04/17 builtin.h: Include gettext.hÆvar Arnfjörð Bjarmason, Aug 30, 2010
  8. 05/17 gettext: make the simple parts of git-init localizableÆvar Arnfjörð Bjarmason, Aug 30, 2010
  9. Jonathan NiederAug 31, 2010
  10. Ævar Arnfjörð BjarmasonAug 31, 2010
  11. Jonathan NiederAug 31, 2010
  12. Ævar Arnfjörð BjarmasonAug 31, 2010
  13. Jonathan NiederAug 31, 2010
  14. Junio C HamanoAug 31, 2010
  15. 06/17 gettext: localize the main git-init messageÆvar Arnfjörð Bjarmason, Aug 30, 2010
  16. Jonathan NiederAug 31, 2010
  17. Ævar Arnfjörð BjarmasonAug 31, 2010
  18. Jonathan NiederAug 31, 2010
  19. 07/17 gettext.c: work around us not using setlocale(LC_CTYPE, "")Ævar Arnfjörð Bjarmason, Aug 30, 2010
  20. Jonathan NiederAug 31, 2010
  21. Marcin CieslakAug 31, 2010
  22. Jonathan NiederAug 31, 2010
  23. Ævar Arnfjörð BjarmasonAug 31, 2010
  24. Jonathan NiederAug 31, 2010
  25. Erik Faye-LundAug 31, 2010
  26. 08/17 gettext tests: test if $VERSION exists before using itÆvar Arnfjörð Bjarmason, Aug 30, 2010
  27. 09/17 gettext tests: update test/is.po to match t/t0200/test.cÆvar Arnfjörð Bjarmason, Aug 30, 2010
  28. 10/17 gettext tests: add detection for is_IS.ISO-8859-1 localeÆvar Arnfjörð Bjarmason, Aug 30, 2010
  29. 11/17 gettext tests: test message re-encoding under ShellÆvar Arnfjörð Bjarmason, Aug 30, 2010
  30. 12/17 gettext tests: test re-encoding with a UTF-8 msgid under ShellÆvar Arnfjörð Bjarmason, Aug 30, 2010
  31. 13/17 gettext tests: mark a test message as not needing translationÆvar Arnfjörð Bjarmason, Aug 30, 2010
  32. 14/17 po/is.po: msgmerge and add Language: headerÆvar Arnfjörð Bjarmason, Aug 30, 2010
  33. 15/17 po/is.po: add Icelandic translationÆvar Arnfjörð Bjarmason, Aug 30, 2010
  34. Jonathan NiederAug 31, 2010
  35. Ævar Arnfjörð BjarmasonAug 31, 2010
  36. Erik Faye-LundAug 31, 2010
  37. Ævar Arnfjörð BjarmasonAug 31, 2010
  38. Erik Faye-LundAug 31, 2010
  39. 16/17 po/pl.po: add Polish translationÆvar Arnfjörð Bjarmason, Aug 30, 2010
  40. 17/17 gettext tests: test message re-encoding under CÆvar Arnfjörð Bjarmason, Aug 30, 2010
  41. Junio C HamanoAug 30, 2010
  42. gettext: Make NO_GETTEXT=YesPlease the default in releasesÆvar Arnfjörð Bjarmason, Aug 31, 2010
  43. Ævar Arnfjörð BjarmasonAug 31, 2010
  44. Jonathan NiederAug 31, 2010
  45. Ævar Arnfjörð BjarmasonAug 31, 2010
  46. Jonathan NiederAug 31, 2010
  47. Ævar Arnfjörð BjarmasonAug 31, 2010
  48. Jonathan NiederAug 31, 2010
  49. Peter KreftingAug 31, 2010
  50. Ævar Arnfjörð BjarmasonAug 31, 2010
  51. Peter KreftingAug 31, 2010
  52. Matthieu MoyAug 31, 2010
  53. Ævar Arnfjörð BjarmasonAug 31, 2010
  54. Jonathan NiederAug 31, 2010
  55. Ævar Arnfjörð BjarmasonAug 31, 2010

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.