git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/65] Mark parseopt strings for translation
@ 2012-05-06 14:23 Nguyễn Thái Ngọc Duy
  2012-05-06 14:23 ` [PATCH 01/65] i18n: parseopt: lookup help and argument translations when showing usage Nguyễn Thái Ngọc Duy
                   ` (2 more replies)
  0 siblings, 3 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-06 14:23 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Jonathan Niedier,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

The main code change is in the first patch, which enables parseopt to
use gettext(). The rest is a bunch of N_(). I only post 2 patches
here. The rest can be found at

https://github.com/pclouds/git/commits/parseopt-i18n

About 1000 strings are marked for translation in this series.
Shell-based parseopt is not supported because I don't know how to mark
strings in shell scripts.

I suggest to merge this series (once it passes the review) in a
quiet time in next. Then I'll add additional patches to all topics in
pu that touch parseopt and keep doing so until the series graduates to
master.

Surprisingly, this series (based on master) does not cause any
conflicts with pu. So now may be a good time.

Nguyễn Thái Ngọc Duy (65):
  i18n: parseopt: lookup help and argument translations when showing
    usage
  i18n: apply: mark parseopt strings for translation
  i18n: archive: mark parseopt strings for translation
  i18n: add: mark parseopt strings for translation
  i18n: bisect--helper: mark parseopt strings for translation
  i18n: blame: mark parseopt strings for translation
  i18n: branch: mark parseopt strings for translation
  i18n: cat-file: mark parseopt strings for translation
  i18n: check-attr: mark parseopt strings for translation
  i18n: checkout-index: mark parseopt strings for translation
  i18n: checkout: mark parseopt strings for translation
  i18n: cherry: mark parseopt strings for translation
  i18n: clean: mark parseopt strings for translation
  i18n: clone: mark parseopt strings for translation
  i18n: column: mark parseopt strings for translation
  i18n: commit: mark parseopt strings for translation
  i18n: config: mark parseopt strings for translation
  i18n: count-objects: mark parseopt strings for translation
  i18n: describe: mark parseopt strings for translation
  i18n: fast-export: mark parseopt strings for translation
  i18n: fetch: mark parseopt strings for translation
  i18n: fmt-merge-msg: mark parseopt strings for translation
  i18n: for-each-ref: mark parseopt strings for translation
  i18n: format-patch: mark parseopt strings for translation
  i18n: fsck: mark parseopt strings for translation
  i18n: gc: mark parseopt strings for translation
  i18n: grep: mark parseopt strings for translation
  i18n: hash-object: mark parseopt strings for translation
  i18n: help: mark parseopt strings for translation
  i18n: init-db: mark parseopt strings for translation
  i18n: log: mark parseopt strings for translation
  i18n: ls-files: mark parseopt strings for translation
  i18n: ls-tree: mark parseopt strings for translation
  i18n: merge-base: mark parseopt strings for translation
  i18n: merge-file: mark parseopt strings for translation
  i18n: merge: mark parseopt strings for translation
  i18n: mktree: mark parseopt strings for translation
  i18n: mv: mark parseopt strings for translation
  i18n: name-rev: mark parseopt strings for translation
  i18n: notes: mark parseopt strings for translation
  i18n: pack-objects: mark parseopt strings for translation
  i18n: pack-refs: mark parseopt strings for translation
  i18n: prune-packed: mark parseopt strings for translation
  i18n: prune: mark parseopt strings for translation
  i18n: push: mark parseopt strings for translation
  i18n: read-tree: mark parseopt strings for translation
  i18n: remote: mark parseopt strings for translation
  i18n: replace: mark parseopt strings for translation
  i18n: status: mark parseopt strings for translation
  i18n: rerere: mark parseopt strings for translation
  i18n: reset: mark parseopt strings for translation
  i18n: rev-parse: mark parseopt strings for translation
  i18n: revert, cherry-pick: mark parseopt strings for translation
  i18n: rm: mark parseopt strings for translation
  i18n: shortlog: mark parseopt strings for translation
  i18n: show-branch: mark parseopt strings for translation
  i18n: show-ref: mark parseopt strings for translation
  i18n: symbolic-ref: mark parseopt strings for translation
  i18n: tag: mark parseopt strings for translation
  i18n: update-index: mark parseopt strings for translation
  i18n: update-ref: mark parseopt strings for translation
  i18n: update-server-info: mark parseopt strings for translation
  i18n: verify-pack: mark parseopt strings for translation
  i18n: verify-tag: mark parseopt strings for translation
  i18n: write-tree: mark parseopt strings for translation

 archive.c                    |   38 +++++++-------
 builtin/add.c                |   26 +++++-----
 builtin/apply.c              |   62 +++++++++++-----------
 builtin/archive.c            |   12 ++--
 builtin/bisect--helper.c     |    6 +-
 builtin/blame.c              |   46 ++++++++--------
 builtin/branch.c             |   54 +++++++++---------
 builtin/cat-file.c           |   20 ++++----
 builtin/check-attr.c         |   12 ++--
 builtin/checkout-index.c     |   24 ++++----
 builtin/checkout.c           |   40 +++++++-------
 builtin/clean.c              |   18 +++---
 builtin/clone.c              |   56 ++++++++++----------
 builtin/column.c             |   16 +++---
 builtin/commit.c             |   98 +++++++++++++++++-----------------
 builtin/config.c             |   56 ++++++++++----------
 builtin/count-objects.c      |    4 +-
 builtin/describe.c           |   28 +++++-----
 builtin/fast-export.c        |   28 +++++-----
 builtin/fetch.c              |   48 ++++++++--------
 builtin/fmt-merge-msg.c      |   16 +++---
 builtin/for-each-ref.c       |   18 +++---
 builtin/fsck.c               |   24 ++++----
 builtin/gc.c                 |   12 ++--
 builtin/grep.c               |   90 ++++++++++++++++----------------
 builtin/hash-object.c        |   16 +++---
 builtin/help.c               |   10 ++--
 builtin/init-db.c            |   18 +++---
 builtin/log.c                |   80 ++++++++++++++--------------
 builtin/ls-files.c           |   54 +++++++++---------
 builtin/ls-tree.c            |   22 ++++----
 builtin/merge-base.c         |   12 ++--
 builtin/merge-file.c         |   20 ++++----
 builtin/merge.c              |   48 ++++++++--------
 builtin/mktree.c             |    8 ++--
 builtin/mv.c                 |   10 ++--
 builtin/name-rev.c           |   22 ++++----
 builtin/notes.c              |  120 +++++++++++++++++++++---------------------
 builtin/pack-objects.c       |   64 +++++++++++-----------
 builtin/pack-refs.c          |    6 +-
 builtin/prune-packed.c       |    6 +-
 builtin/prune.c              |   10 ++--
 builtin/push.c               |   34 ++++++------
 builtin/read-tree.c          |   38 +++++++-------
 builtin/remote.c             |   84 +++++++++++++++---------------
 builtin/replace.c            |   12 ++--
 builtin/rerere.c             |    4 +-
 builtin/reset.c              |   20 ++++----
 builtin/rev-parse.c          |   18 +++---
 builtin/revert.c             |   36 ++++++------
 builtin/rm.c                 |   14 +++---
 builtin/shortlog.c           |   14 +++---
 builtin/show-branch.c        |   42 +++++++-------
 builtin/show-ref.c           |   28 +++++-----
 builtin/symbolic-ref.c       |    8 ++--
 builtin/tag.c                |   56 ++++++++++----------
 builtin/update-index.c       |   54 +++++++++---------
 builtin/update-ref.c         |   10 ++--
 builtin/update-server-info.c |    4 +-
 builtin/verify-pack.c        |    6 +-
 builtin/verify-tag.c         |    4 +-
 builtin/write-tree.c         |   10 ++--
 parse-options.c              |   19 ++++---
 parse-options.h              |   25 +++++----
 64 files changed, 962 insertions(+), 956 deletions(-)

-- 
1.7.8.36.g69ee2

^ permalink raw reply	[flat|nested] 87+ messages in thread

* [PATCH 01/65] i18n: parseopt: lookup help and argument translations when showing usage
  2012-05-06 14:23 [PATCH 00/65] Mark parseopt strings for translation Nguyễn Thái Ngọc Duy
@ 2012-05-06 14:23 ` Nguyễn Thái Ngọc Duy
  2012-05-06 14:23 ` [PATCH 02/65] i18n: apply: mark parseopt strings for translation Nguyễn Thái Ngọc Duy
  2012-05-08 18:40 ` [PATCH 00/65] Mark " Junio C Hamano
  2 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-06 14:23 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Jonathan Niedier,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy


Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 parse-options.c |   19 +++++++++++--------
 parse-options.h |   25 ++++++++++++++-----------
 2 files changed, 25 insertions(+), 19 deletions(-)

diff --git a/parse-options.c b/parse-options.c
index 850cfa7..ab70c29 100644
--- a/parse-options.c
+++ b/parse-options.c
@@ -490,7 +490,7 @@ static int usage_argh(const struct option *opts, FILE *outfile)
 			s = literal ? "[%s]" : "[<%s>]";
 	else
 		s = literal ? " %s" : " <%s>";
-	return fprintf(outfile, s, opts->argh ? opts->argh : "...");
+	return fprintf(outfile, s, opts->argh ? _(opts->argh) : _("..."));
 }
 
 #define USAGE_OPTS_WIDTH 24
@@ -508,13 +508,16 @@ static int usage_with_options_internal(struct parse_opt_ctx_t *ctx,
 	if (!err && ctx && ctx->flags & PARSE_OPT_SHELL_EVAL)
 		fprintf(outfile, "cat <<\\EOF\n");
 
-	fprintf(outfile, "usage: %s\n", *usagestr++);
+	fprintf_ln(outfile, _("usage: %s"), _(*usagestr++));
 	while (*usagestr && **usagestr)
-		fprintf(outfile, "   or: %s\n", *usagestr++);
+		/* TRANSLATORS: the colon here should align with the
+		   one in "usage: %s" translation */
+		fprintf_ln(outfile, _("   or: %s"), _(*usagestr++));
 	while (*usagestr) {
-		fprintf(outfile, "%s%s\n",
-				**usagestr ? "    " : "",
-				*usagestr);
+		if (**usagestr)
+			fprintf_ln(outfile, _("    %s"), _(*usagestr));
+		else
+			putchar('\n');
 		usagestr++;
 	}
 
@@ -528,7 +531,7 @@ static int usage_with_options_internal(struct parse_opt_ctx_t *ctx,
 		if (opts->type == OPTION_GROUP) {
 			fputc('\n', outfile);
 			if (*opts->help)
-				fprintf(outfile, "%s\n", opts->help);
+				fprintf(outfile, "%s\n", _(opts->help));
 			continue;
 		}
 		if (!full && (opts->flags & PARSE_OPT_HIDDEN))
@@ -558,7 +561,7 @@ static int usage_with_options_internal(struct parse_opt_ctx_t *ctx,
 			fputc('\n', outfile);
 			pad = USAGE_OPTS_WIDTH;
 		}
-		fprintf(outfile, "%*s%s\n", pad + USAGE_GAP, "", opts->help);
+		fprintf(outfile, "%*s%s\n", pad + USAGE_GAP, "", _(opts->help));
 	}
 	fputc('\n', outfile);
 
diff --git a/parse-options.h b/parse-options.h
index da999f8..77a4a8b 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -66,12 +66,14 @@ typedef int parse_opt_ll_cb(struct parse_opt_ctx_t *ctx,
  *
  * `argh`::
  *   token to explain the kind of argument this option wants. Keep it
- *   homogeneous across the repository.
+ *   homogeneous across the repository. Should be wrapped by N_() for
+ *   translation.
  *
  * `help`::
  *   the short help associated to what the option does.
  *   Must never be NULL (except for OPTION_END).
  *   OPTION_GROUP uses this pointer to store the group header.
+ *   Should be wrapped by N_() for translation.
  *
  * `flags`::
  *   mask of parse_opt_option_flags.
@@ -128,7 +130,7 @@ struct option {
 #define OPT_BOOL(s, l, v, h)        OPT_SET_INT(s, l, v, h, 1)
 #define OPT_SET_PTR(s, l, v, h, p)  { OPTION_SET_PTR, (s), (l), (v), NULL, \
 				      (h), PARSE_OPT_NOARG, NULL, (p) }
-#define OPT_INTEGER(s, l, v, h)     { OPTION_INTEGER, (s), (l), (v), "n", (h) }
+#define OPT_INTEGER(s, l, v, h)     { OPTION_INTEGER, (s), (l), (v), N_("n"), (h) }
 #define OPT_STRING(s, l, v, a, h)   { OPTION_STRING,  (s), (l), (v), (a), (h) }
 #define OPT_STRING_LIST(s, l, v, a, h) \
 				    { OPTION_CALLBACK, (s), (l), (v), (a), \
@@ -136,7 +138,7 @@ struct option {
 #define OPT_UYN(s, l, v, h)         { OPTION_CALLBACK, (s), (l), (v), NULL, \
 				      (h), PARSE_OPT_NOARG, &parse_opt_tertiary }
 #define OPT_DATE(s, l, v, h) \
-	{ OPTION_CALLBACK, (s), (l), (v), "time",(h), 0, \
+	{ OPTION_CALLBACK, (s), (l), (v), N_("time"),(h), 0,	\
 	  parse_opt_approxidate_cb }
 #define OPT_CALLBACK(s, l, v, a, h, f) \
 	{ OPTION_CALLBACK, (s), (l), (v), (a), (h), 0, (f) }
@@ -144,21 +146,22 @@ struct option {
 	{ OPTION_NUMBER, 0, NULL, (v), NULL, (h), \
 	  PARSE_OPT_NOARG | PARSE_OPT_NONEG, (f) }
 #define OPT_FILENAME(s, l, v, h)    { OPTION_FILENAME, (s), (l), (v), \
-				       "file", (h) }
+				       N_("file"), (h) }
 #define OPT_COLOR_FLAG(s, l, v, h) \
-	{ OPTION_CALLBACK, (s), (l), (v), "when", (h), PARSE_OPT_OPTARG, \
+	{ OPTION_CALLBACK, (s), (l), (v), N_("when"), (h), PARSE_OPT_OPTARG, \
 		parse_opt_color_flag_cb, (intptr_t)"always" }
 
 #define OPT_NOOP_NOARG(s, l) \
 	{ OPTION_CALLBACK, (s), (l), NULL, NULL, \
-	  "no-op (backward compatibility)", \
+	  N_("no-op (backward compatibility)"),		\
 	  PARSE_OPT_HIDDEN | PARSE_OPT_NOARG, parse_opt_noop_cb }
 
 /* Deprecated synonym */
 #define OPT_BOOLEAN OPT_COUNTUP
 
 /* parse_options() will filter out the processed options and leave the
- * non-option arguments in argv[].
+ * non-option arguments in argv[]. usagestr strings should be marked
+ * for translation with N_().
  * Returns the number of arguments left in argv[].
  */
 extern int parse_options(int argc, const char **argv, const char *prefix,
@@ -222,15 +225,15 @@ extern int parse_opt_noop_cb(const struct option *, const char *, int);
 #define OPT__VERBOSE(var, h)  OPT_BOOLEAN('v', "verbose", (var), (h))
 #define OPT__QUIET(var, h)    OPT_BOOLEAN('q', "quiet",   (var), (h))
 #define OPT__VERBOSITY(var) \
-	{ OPTION_CALLBACK, 'v', "verbose", (var), NULL, "be more verbose", \
+	{ OPTION_CALLBACK, 'v', "verbose", (var), NULL, N_("be more verbose"), \
 	  PARSE_OPT_NOARG, &parse_opt_verbosity_cb, 0 }, \
-	{ OPTION_CALLBACK, 'q', "quiet", (var), NULL, "be more quiet", \
+	{ OPTION_CALLBACK, 'q', "quiet", (var), NULL, N_("be more quiet"), \
 	  PARSE_OPT_NOARG, &parse_opt_verbosity_cb, 0 }
 #define OPT__DRY_RUN(var, h)  OPT_BOOLEAN('n', "dry-run", (var), (h))
 #define OPT__FORCE(var, h)    OPT_BOOLEAN('f', "force",   (var), (h))
 #define OPT__ABBREV(var)  \
-	{ OPTION_CALLBACK, 0, "abbrev", (var), "n", \
-	  "use <n> digits to display SHA-1s", \
+	{ OPTION_CALLBACK, 0, "abbrev", (var), N_("n"),	\
+	  N_("use <n> digits to display SHA-1s"),	\
 	  PARSE_OPT_OPTARG, &parse_opt_abbrev_cb, 0 }
 #define OPT__COLOR(var, h) \
 	OPT_COLOR_FLAG(0, "color", (var), (h))
-- 
1.7.8.36.g69ee2

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 02/65] i18n: apply: mark parseopt strings for translation
  2012-05-06 14:23 [PATCH 00/65] Mark parseopt strings for translation Nguyễn Thái Ngọc Duy
  2012-05-06 14:23 ` [PATCH 01/65] i18n: parseopt: lookup help and argument translations when showing usage Nguyễn Thái Ngọc Duy
@ 2012-05-06 14:23 ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
  2012-05-08 18:40 ` [PATCH 00/65] Mark " Junio C Hamano
  2 siblings, 1 reply; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-06 14:23 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Jonathan Niedier,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy


Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/apply.c |   62 +++++++++++++++++++++++++++---------------------------
 1 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/builtin/apply.c b/builtin/apply.c
index 725712d..5621a66 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -50,7 +50,7 @@ static const char *fake_ancestor;
 static int line_termination = '\n';
 static unsigned int p_context = UINT_MAX;
 static const char * const apply_usage[] = {
-	"git apply [options] [<patch>...]",
+	N_("git apply [options] [<patch>...]"),
 	NULL
 };
 
@@ -3952,66 +3952,66 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
 	const char *whitespace_option = NULL;
 
 	struct option builtin_apply_options[] = {
-		{ OPTION_CALLBACK, 0, "exclude", NULL, "path",
-			"don't apply changes matching the given path",
+		{ OPTION_CALLBACK, 0, "exclude", NULL, N_("path"),
+			N_("don't apply changes matching the given path"),
 			0, option_parse_exclude },
-		{ OPTION_CALLBACK, 0, "include", NULL, "path",
-			"apply changes matching the given path",
+		{ OPTION_CALLBACK, 0, "include", NULL, N_("path"),
+			N_("apply changes matching the given path"),
 			0, option_parse_include },
-		{ OPTION_CALLBACK, 'p', NULL, NULL, "num",
-			"remove <num> leading slashes from traditional diff paths",
+		{ OPTION_CALLBACK, 'p', NULL, NULL, N_("num"),
+			N_("remove <num> leading slashes from traditional diff paths"),
 			0, option_parse_p },
 		OPT_BOOLEAN(0, "no-add", &no_add,
-			"ignore additions made by the patch"),
+			N_("ignore additions made by the patch")),
 		OPT_BOOLEAN(0, "stat", &diffstat,
-			"instead of applying the patch, output diffstat for the input"),
+			N_("instead of applying the patch, output diffstat for the input")),
 		OPT_NOOP_NOARG(0, "allow-binary-replacement"),
 		OPT_NOOP_NOARG(0, "binary"),
 		OPT_BOOLEAN(0, "numstat", &numstat,
-			"shows number of added and deleted lines in decimal notation"),
+			N_("shows number of added and deleted lines in decimal notation")),
 		OPT_BOOLEAN(0, "summary", &summary,
-			"instead of applying the patch, output a summary for the input"),
+			N_("instead of applying the patch, output a summary for the input")),
 		OPT_BOOLEAN(0, "check", &check,
-			"instead of applying the patch, see if the patch is applicable"),
+			N_("instead of applying the patch, see if the patch is applicable")),
 		OPT_BOOLEAN(0, "index", &check_index,
-			"make sure the patch is applicable to the current index"),
+			N_("make sure the patch is applicable to the current index")),
 		OPT_BOOLEAN(0, "cached", &cached,
-			"apply a patch without touching the working tree"),
+			N_("apply a patch without touching the working tree")),
 		OPT_BOOLEAN(0, "apply", &force_apply,
-			"also apply the patch (use with --stat/--summary/--check)"),
+			N_("also apply the patch (use with --stat/--summary/--check)")),
 		OPT_FILENAME(0, "build-fake-ancestor", &fake_ancestor,
-			"build a temporary index based on embedded index information"),
+			N_("build a temporary index based on embedded index information")),
 		{ OPTION_CALLBACK, 'z', NULL, NULL, NULL,
-			"paths are separated with NUL character",
+			N_("paths are separated with NUL character"),
 			PARSE_OPT_NOARG, option_parse_z },
 		OPT_INTEGER('C', NULL, &p_context,
-				"ensure at least <n> lines of context match"),
-		{ OPTION_CALLBACK, 0, "whitespace", &whitespace_option, "action",
-			"detect new or modified lines that have whitespace errors",
+				N_("ensure at least <n> lines of context match")),
+		{ OPTION_CALLBACK, 0, "whitespace", &whitespace_option, N_("action"),
+			N_("detect new or modified lines that have whitespace errors"),
 			0, option_parse_whitespace },
 		{ OPTION_CALLBACK, 0, "ignore-space-change", NULL, NULL,
-			"ignore changes in whitespace when finding context",
+			N_("ignore changes in whitespace when finding context"),
 			PARSE_OPT_NOARG, option_parse_space_change },
 		{ OPTION_CALLBACK, 0, "ignore-whitespace", NULL, NULL,
-			"ignore changes in whitespace when finding context",
+			N_("ignore changes in whitespace when finding context"),
 			PARSE_OPT_NOARG, option_parse_space_change },
 		OPT_BOOLEAN('R', "reverse", &apply_in_reverse,
-			"apply the patch in reverse"),
+			N_("apply the patch in reverse")),
 		OPT_BOOLEAN(0, "unidiff-zero", &unidiff_zero,
-			"don't expect at least one line of context"),
+			N_("don't expect at least one line of context")),
 		OPT_BOOLEAN(0, "reject", &apply_with_reject,
-			"leave the rejected hunks in corresponding *.rej files"),
+			N_("leave the rejected hunks in corresponding *.rej files")),
 		OPT_BOOLEAN(0, "allow-overlap", &allow_overlap,
-			"allow overlapping hunks"),
-		OPT__VERBOSE(&apply_verbosely, "be verbose"),
+			N_("allow overlapping hunks")),
+		OPT__VERBOSE(&apply_verbosely, N_("be verbose")),
 		OPT_BIT(0, "inaccurate-eof", &options,
-			"tolerate incorrectly detected missing new-line at the end of file",
+			N_("tolerate incorrectly detected missing new-line at the end of file"),
 			INACCURATE_EOF),
 		OPT_BIT(0, "recount", &options,
-			"do not trust the line counts in the hunk headers",
+			N_("do not trust the line counts in the hunk headers"),
 			RECOUNT),
-		{ OPTION_CALLBACK, 0, "directory", NULL, "root",
-			"prepend <root> to all filenames",
+		{ OPTION_CALLBACK, 0, "directory", NULL, N_("root"),
+			N_("prepend <root> to all filenames"),
 			0, option_parse_directory },
 		OPT_END()
 	};
-- 
1.7.8.36.g69ee2

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* Re: [PATCH 00/65] Mark parseopt strings for translation
  2012-05-06 14:23 [PATCH 00/65] Mark parseopt strings for translation Nguyễn Thái Ngọc Duy
  2012-05-06 14:23 ` [PATCH 01/65] i18n: parseopt: lookup help and argument translations when showing usage Nguyễn Thái Ngọc Duy
  2012-05-06 14:23 ` [PATCH 02/65] i18n: apply: mark parseopt strings for translation Nguyễn Thái Ngọc Duy
@ 2012-05-08 18:40 ` Junio C Hamano
  2012-05-18  4:25   ` Nguyen Thai Ngoc Duy
  2 siblings, 1 reply; 87+ messages in thread
From: Junio C Hamano @ 2012-05-08 18:40 UTC (permalink / raw)
  To: Nguyễn Thái Ngọc Duy
  Cc: git, Jonathan Niedier, Ævar Arnfjörð Bjarmason, Jiang Xin

Both 01/65 (the parse-options implementation) and 02/65 (sample conversion
of apply.c) made sense, so I'll queue them first.

Thanks.

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 00/65] Mark parseopt strings for translation
  2012-05-08 18:40 ` [PATCH 00/65] Mark " Junio C Hamano
@ 2012-05-18  4:25   ` Nguyen Thai Ngoc Duy
  0 siblings, 0 replies; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-05-18  4:25 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: git, Jonathan Niedier, Ævar Arnfjörð, Jiang Xin

On Wed, May 9, 2012 at 1:40 AM, Junio C Hamano <gitster@pobox.com> wrote:
> Both 01/65 (the parse-options implementation) and 02/65 (sample conversion
> of apply.c) made sense, so I'll queue them first.

parseopt-i18n branch [1] has been rebased on master now that the first
two patches are merged. I find "git log --patch --color-words=." much
easier to review this series (because it just highlights the added
parts "N_(" and ")") than line-by-line diff format for email review.

[1] https://github.com/pclouds/git/commits/parseopt-i18n
-- 
Duy

^ permalink raw reply	[flat|nested] 87+ messages in thread

* [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-06 14:23 ` [PATCH 02/65] i18n: apply: mark parseopt strings for translation Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13   ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 04/65] i18n: add: " Nguyễn Thái Ngọc Duy
                       ` (63 more replies)
  0 siblings, 64 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 rc times are usually more quiet times, let's slip the series in..
 minor conflict with revert topic in pu, but should be easy to
 resolve.

 archive.c         | 38 +++++++++++++++++++-------------------
 builtin/archive.c | 12 ++++++------
 2 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/archive.c b/archive.c
index a484433..2584324 100644
--- a/archive.c
+++ b/archive.c
@@ -7,10 +7,10 @@
 #include "unpack-trees.h"
 
 static char const * const archive_usage[] = {
-	"git archive [options] <tree-ish> [<path>...]",
-	"git archive --list",
-	"git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]",
-	"git archive --remote <repo> [--exec <cmd>] --list",
+	N_("git archive [options] <tree-ish> [<path>...]"),
+	N_("git archive --list"),
+	N_("git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]"),
+	N_("git archive --remote <repo> [--exec <cmd>] --list"),
 	NULL
 };
 
@@ -319,16 +319,16 @@ static int parse_archive_args(int argc, const char **argv,
 	int worktree_attributes = 0;
 	struct option opts[] = {
 		OPT_GROUP(""),
-		OPT_STRING(0, "format", &format, "fmt", "archive format"),
-		OPT_STRING(0, "prefix", &base, "prefix",
-			"prepend prefix to each pathname in the archive"),
-		OPT_STRING('o', "output", &output, "file",
-			"write the archive to this file"),
+		OPT_STRING(0, "format", &format, N_("fmt"), N_("archive format")),
+		OPT_STRING(0, "prefix", &base, N_("prefix"),
+			N_("prepend prefix to each pathname in the archive")),
+		OPT_STRING('o', "output", &output, N_("file"),
+			N_("write the archive to this file")),
 		OPT_BOOL(0, "worktree-attributes", &worktree_attributes,
-			"read .gitattributes in working directory"),
-		OPT__VERBOSE(&verbose, "report archived files on stderr"),
-		OPT__COMPR('0', &compression_level, "store only", 0),
-		OPT__COMPR('1', &compression_level, "compress faster", 1),
+			N_("read .gitattributes in working directory")),
+		OPT__VERBOSE(&verbose, N_("report archived files on stderr")),
+		OPT__COMPR('0', &compression_level, N_("store only"), 0),
+		OPT__COMPR('1', &compression_level, N_("compress faster"), 1),
 		OPT__COMPR_HIDDEN('2', &compression_level, 2),
 		OPT__COMPR_HIDDEN('3', &compression_level, 3),
 		OPT__COMPR_HIDDEN('4', &compression_level, 4),
@@ -336,15 +336,15 @@ static int parse_archive_args(int argc, const char **argv,
 		OPT__COMPR_HIDDEN('6', &compression_level, 6),
 		OPT__COMPR_HIDDEN('7', &compression_level, 7),
 		OPT__COMPR_HIDDEN('8', &compression_level, 8),
-		OPT__COMPR('9', &compression_level, "compress better", 9),
+		OPT__COMPR('9', &compression_level, N_("compress better"), 9),
 		OPT_GROUP(""),
 		OPT_BOOL('l', "list", &list,
-			"list supported archive formats"),
+			N_("list supported archive formats")),
 		OPT_GROUP(""),
-		OPT_STRING(0, "remote", &remote, "repo",
-			"retrieve the archive from remote repository <repo>"),
-		OPT_STRING(0, "exec", &exec, "cmd",
-			"path to the remote git-upload-archive command"),
+		OPT_STRING(0, "remote", &remote, N_("repo"),
+			N_("retrieve the archive from remote repository <repo>")),
+		OPT_STRING(0, "exec", &exec, N_("cmd"),
+			N_("path to the remote git-upload-archive command")),
 		OPT_END()
 	};
 
diff --git a/builtin/archive.c b/builtin/archive.c
index 931956d..e7965bf 100644
--- a/builtin/archive.c
+++ b/builtin/archive.c
@@ -88,12 +88,12 @@ int cmd_archive(int argc, const char **argv, const char *prefix)
 	const char *output = NULL;
 	const char *remote = NULL;
 	struct option local_opts[] = {
-		OPT_STRING('o', "output", &output, "file",
-			"write the archive to this file"),
-		OPT_STRING(0, "remote", &remote, "repo",
-			"retrieve the archive from remote repository <repo>"),
-		OPT_STRING(0, "exec", &exec, "cmd",
-			"path to the remote git-upload-archive command"),
+		OPT_STRING('o', "output", &output, N_("file"),
+			N_("write the archive to this file")),
+		OPT_STRING(0, "remote", &remote, N_("repo"),
+			N_("retrieve the archive from remote repository <repo>")),
+		OPT_STRING(0, "exec", &exec, N_("cmd"),
+			N_("path to the remote git-upload-archive command")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 04/65] i18n: add: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 05/65] i18n: bisect--helper: " Nguyễn Thái Ngọc Duy
                       ` (62 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/add.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/builtin/add.c b/builtin/add.c
index b79336d..6f7c7e1 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -16,7 +16,7 @@
 #include "bulk-checkin.h"
 
 static const char * const builtin_add_usage[] = {
-	"git add [options] [--] <filepattern>...",
+	N_("git add [options] [--] <filepattern>..."),
 	NULL
 };
 static int patch_interactive, add_interactive, edit_interactive;
@@ -315,19 +315,19 @@ static int verbose = 0, show_only = 0, ignored_too = 0, refresh_only = 0;
 static int ignore_add_errors, addremove, intent_to_add, ignore_missing = 0;
 
 static struct option builtin_add_options[] = {
-	OPT__DRY_RUN(&show_only, "dry run"),
-	OPT__VERBOSE(&verbose, "be verbose"),
+	OPT__DRY_RUN(&show_only, N_("dry run")),
+	OPT__VERBOSE(&verbose, N_("be verbose")),
 	OPT_GROUP(""),
-	OPT_BOOLEAN('i', "interactive", &add_interactive, "interactive picking"),
-	OPT_BOOLEAN('p', "patch", &patch_interactive, "select hunks interactively"),
-	OPT_BOOLEAN('e', "edit", &edit_interactive, "edit current diff and apply"),
-	OPT__FORCE(&ignored_too, "allow adding otherwise ignored files"),
-	OPT_BOOLEAN('u', "update", &take_worktree_changes, "update tracked files"),
-	OPT_BOOLEAN('N', "intent-to-add", &intent_to_add, "record only the fact that the path will be added later"),
-	OPT_BOOLEAN('A', "all", &addremove, "add changes from all tracked and untracked files"),
-	OPT_BOOLEAN( 0 , "refresh", &refresh_only, "don't add, only refresh the index"),
-	OPT_BOOLEAN( 0 , "ignore-errors", &ignore_add_errors, "just skip files which cannot be added because of errors"),
-	OPT_BOOLEAN( 0 , "ignore-missing", &ignore_missing, "check if - even missing - files are ignored in dry run"),
+	OPT_BOOLEAN('i', "interactive", &add_interactive, N_("interactive picking")),
+	OPT_BOOLEAN('p', "patch", &patch_interactive, N_("select hunks interactively")),
+	OPT_BOOLEAN('e', "edit", &edit_interactive, N_("edit current diff and apply")),
+	OPT__FORCE(&ignored_too, N_("allow adding otherwise ignored files")),
+	OPT_BOOLEAN('u', "update", &take_worktree_changes, N_("update tracked files")),
+	OPT_BOOLEAN('N', "intent-to-add", &intent_to_add, N_("record only the fact that the path will be added later")),
+	OPT_BOOLEAN('A', "all", &addremove, N_("add changes from all tracked and untracked files")),
+	OPT_BOOLEAN( 0 , "refresh", &refresh_only, N_("don't add, only refresh the index")),
+	OPT_BOOLEAN( 0 , "ignore-errors", &ignore_add_errors, N_("just skip files which cannot be added because of errors")),
+	OPT_BOOLEAN( 0 , "ignore-missing", &ignore_missing, N_("check if - even missing - files are ignored in dry run")),
 	OPT_END(),
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 05/65] i18n: bisect--helper: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 04/65] i18n: add: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 06/65] i18n: blame: " Nguyễn Thái Ngọc Duy
                       ` (61 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/bisect--helper.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c
index 8d325a5..e3884e3 100644
--- a/builtin/bisect--helper.c
+++ b/builtin/bisect--helper.c
@@ -4,7 +4,7 @@
 #include "bisect.h"
 
 static const char * const git_bisect_helper_usage[] = {
-	"git bisect--helper --next-all [--no-checkout]",
+	N_("git bisect--helper --next-all [--no-checkout]"),
 	NULL
 };
 
@@ -14,9 +14,9 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
 	int no_checkout = 0;
 	struct option options[] = {
 		OPT_BOOLEAN(0, "next-all", &next_all,
-			    "perform 'git bisect next'"),
+			    N_("perform 'git bisect next'")),
 		OPT_BOOLEAN(0, "no-checkout", &no_checkout,
-			    "update BISECT_HEAD instead of checking out the current commit"),
+			    N_("update BISECT_HEAD instead of checking out the current commit")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 06/65] i18n: blame: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 04/65] i18n: add: " Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 05/65] i18n: bisect--helper: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 07/65] i18n: branch: " Nguyễn Thái Ngọc Duy
                       ` (60 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/blame.c | 46 +++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/builtin/blame.c b/builtin/blame.c
index 24d3dd5..fe8aa4d 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -22,12 +22,12 @@
 #include "utf8.h"
 #include "userdiff.h"
 
-static char blame_usage[] = "git blame [options] [rev-opts] [rev] [--] file";
+static char blame_usage[] = N_("git blame [options] [rev-opts] [rev] [--] file");
 
 static const char *blame_opt_usage[] = {
 	blame_usage,
 	"",
-	"[rev-opts] are documented in git-rev-list(1)",
+	N_("[rev-opts] are documented in git-rev-list(1)"),
 	NULL
 };
 
@@ -2296,27 +2296,27 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
 	static const char *revs_file = NULL;
 	static const char *contents_from = NULL;
 	static const struct option options[] = {
-		OPT_BOOLEAN(0, "incremental", &incremental, "Show blame entries as we find them, incrementally"),
-		OPT_BOOLEAN('b', NULL, &blank_boundary, "Show blank SHA-1 for boundary commits (Default: off)"),
-		OPT_BOOLEAN(0, "root", &show_root, "Do not treat root commits as boundaries (Default: off)"),
-		OPT_BOOLEAN(0, "show-stats", &show_stats, "Show work cost statistics"),
-		OPT_BIT(0, "score-debug", &output_option, "Show output score for blame entries", OUTPUT_SHOW_SCORE),
-		OPT_BIT('f', "show-name", &output_option, "Show original filename (Default: auto)", OUTPUT_SHOW_NAME),
-		OPT_BIT('n', "show-number", &output_option, "Show original linenumber (Default: off)", OUTPUT_SHOW_NUMBER),
-		OPT_BIT('p', "porcelain", &output_option, "Show in a format designed for machine consumption", OUTPUT_PORCELAIN),
-		OPT_BIT(0, "line-porcelain", &output_option, "Show porcelain format with per-line commit information", OUTPUT_PORCELAIN|OUTPUT_LINE_PORCELAIN),
-		OPT_BIT('c', NULL, &output_option, "Use the same output mode as git-annotate (Default: off)", OUTPUT_ANNOTATE_COMPAT),
-		OPT_BIT('t', NULL, &output_option, "Show raw timestamp (Default: off)", OUTPUT_RAW_TIMESTAMP),
-		OPT_BIT('l', NULL, &output_option, "Show long commit SHA1 (Default: off)", OUTPUT_LONG_OBJECT_NAME),
-		OPT_BIT('s', NULL, &output_option, "Suppress author name and timestamp (Default: off)", OUTPUT_NO_AUTHOR),
-		OPT_BIT('e', "show-email", &output_option, "Show author email instead of name (Default: off)", OUTPUT_SHOW_EMAIL),
-		OPT_BIT('w', NULL, &xdl_opts, "Ignore whitespace differences", XDF_IGNORE_WHITESPACE),
-		OPT_BIT(0, "minimal", &xdl_opts, "Spend extra cycles to find better match", XDF_NEED_MINIMAL),
-		OPT_STRING('S', NULL, &revs_file, "file", "Use revisions from <file> instead of calling git-rev-list"),
-		OPT_STRING(0, "contents", &contents_from, "file", "Use <file>'s contents as the final image"),
-		{ OPTION_CALLBACK, 'C', NULL, &opt, "score", "Find line copies within and across files", PARSE_OPT_OPTARG, blame_copy_callback },
-		{ OPTION_CALLBACK, 'M', NULL, &opt, "score", "Find line movements within and across files", PARSE_OPT_OPTARG, blame_move_callback },
-		OPT_CALLBACK('L', NULL, &bottomtop, "n,m", "Process only line range n,m, counting from 1", blame_bottomtop_callback),
+		OPT_BOOLEAN(0, "incremental", &incremental, N_("Show blame entries as we find them, incrementally")),
+		OPT_BOOLEAN('b', NULL, &blank_boundary, N_("Show blank SHA-1 for boundary commits (Default: off)")),
+		OPT_BOOLEAN(0, "root", &show_root, N_("Do not treat root commits as boundaries (Default: off)")),
+		OPT_BOOLEAN(0, "show-stats", &show_stats, N_("Show work cost statistics")),
+		OPT_BIT(0, "score-debug", &output_option, N_("Show output score for blame entries"), OUTPUT_SHOW_SCORE),
+		OPT_BIT('f', "show-name", &output_option, N_("Show original filename (Default: auto)"), OUTPUT_SHOW_NAME),
+		OPT_BIT('n', "show-number", &output_option, N_("Show original linenumber (Default: off)"), OUTPUT_SHOW_NUMBER),
+		OPT_BIT('p', "porcelain", &output_option, N_("Show in a format designed for machine consumption"), OUTPUT_PORCELAIN),
+		OPT_BIT(0, "line-porcelain", &output_option, N_("Show porcelain format with per-line commit information"), OUTPUT_PORCELAIN|OUTPUT_LINE_PORCELAIN),
+		OPT_BIT('c', NULL, &output_option, N_("Use the same output mode as git-annotate (Default: off)"), OUTPUT_ANNOTATE_COMPAT),
+		OPT_BIT('t', NULL, &output_option, N_("Show raw timestamp (Default: off)"), OUTPUT_RAW_TIMESTAMP),
+		OPT_BIT('l', NULL, &output_option, N_("Show long commit SHA1 (Default: off)"), OUTPUT_LONG_OBJECT_NAME),
+		OPT_BIT('s', NULL, &output_option, N_("Suppress author name and timestamp (Default: off)"), OUTPUT_NO_AUTHOR),
+		OPT_BIT('e', "show-email", &output_option, N_("Show author email instead of name (Default: off)"), OUTPUT_SHOW_EMAIL),
+		OPT_BIT('w', NULL, &xdl_opts, N_("Ignore whitespace differences"), XDF_IGNORE_WHITESPACE),
+		OPT_BIT(0, "minimal", &xdl_opts, N_("Spend extra cycles to find better match"), XDF_NEED_MINIMAL),
+		OPT_STRING('S', NULL, &revs_file, N_("file"), N_("Use revisions from <file> instead of calling git-rev-list")),
+		OPT_STRING(0, "contents", &contents_from, N_("file"), N_("Use <file>'s contents as the final image")),
+		{ OPTION_CALLBACK, 'C', NULL, &opt, N_("score"), N_("Find line copies within and across files"), PARSE_OPT_OPTARG, blame_copy_callback },
+		{ OPTION_CALLBACK, 'M', NULL, &opt, N_("score"), N_("Find line movements within and across files"), PARSE_OPT_OPTARG, blame_move_callback },
+		OPT_CALLBACK('L', NULL, &bottomtop, N_("n,m"), N_("Process only line range n,m, counting from 1"), blame_bottomtop_callback),
 		OPT__ABBREV(&abbrev),
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 07/65] i18n: branch: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (2 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 06/65] i18n: blame: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 08/65] i18n: cat-file: " Nguyễn Thái Ngọc Duy
                       ` (59 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/branch.c | 54 +++++++++++++++++++++++++++---------------------------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/builtin/branch.c b/builtin/branch.c
index 0e060f2..f9135ed 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -19,10 +19,10 @@
 #include "column.h"
 
 static const char * const builtin_branch_usage[] = {
-	"git branch [options] [-r | -a] [--merged | --no-merged]",
-	"git branch [options] [-l] [-f] <branchname> [<start-point>]",
-	"git branch [options] [-r] (-d | -D) <branchname>...",
-	"git branch [options] (-m | -M) [<oldbranch>] <newbranch>",
+	N_("git branch [options] [-r | -a] [--merged | --no-merged]"),
+	N_("git branch [options] [-l] [-f] <branchname> [<start-point>]"),
+	N_("git branch [options] [-r] (-d | -D) <branchname>..."),
+	N_("git branch [options] (-m | -M) [<oldbranch>] <newbranch>"),
 	NULL
 };
 
@@ -718,52 +718,52 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 	struct commit_list *with_commit = NULL;
 
 	struct option options[] = {
-		OPT_GROUP("Generic options"),
+		OPT_GROUP(N_("Generic options")),
 		OPT__VERBOSE(&verbose,
-			"show hash and subject, give twice for upstream branch"),
-		OPT__QUIET(&quiet, "suppress informational messages"),
-		OPT_SET_INT('t', "track",  &track, "set up tracking mode (see git-pull(1))",
+			N_("show hash and subject, give twice for upstream branch")),
+		OPT__QUIET(&quiet, N_("suppress informational messages")),
+		OPT_SET_INT('t', "track",  &track, N_("set up tracking mode (see git-pull(1))"),
 			BRANCH_TRACK_EXPLICIT),
-		OPT_SET_INT( 0, "set-upstream",  &track, "change upstream info",
+		OPT_SET_INT( 0, "set-upstream",  &track, N_("change upstream info"),
 			BRANCH_TRACK_OVERRIDE),
-		OPT__COLOR(&branch_use_color, "use colored output"),
-		OPT_SET_INT('r', "remotes",     &kinds, "act on remote-tracking branches",
+		OPT__COLOR(&branch_use_color, N_("use colored output")),
+		OPT_SET_INT('r', "remotes",     &kinds, N_("act on remote-tracking branches"),
 			REF_REMOTE_BRANCH),
 		{
-			OPTION_CALLBACK, 0, "contains", &with_commit, "commit",
-			"print only branches that contain the commit",
+			OPTION_CALLBACK, 0, "contains", &with_commit, N_("commit"),
+			N_("print only branches that contain the commit"),
 			PARSE_OPT_LASTARG_DEFAULT,
 			parse_opt_with_commit, (intptr_t)"HEAD",
 		},
 		{
-			OPTION_CALLBACK, 0, "with", &with_commit, "commit",
-			"print only branches that contain the commit",
+			OPTION_CALLBACK, 0, "with", &with_commit, N_("commit"),
+			N_("print only branches that contain the commit"),
 			PARSE_OPT_HIDDEN | PARSE_OPT_LASTARG_DEFAULT,
 			parse_opt_with_commit, (intptr_t) "HEAD",
 		},
 		OPT__ABBREV(&abbrev),
 
-		OPT_GROUP("Specific git-branch actions:"),
-		OPT_SET_INT('a', "all", &kinds, "list both remote-tracking and local branches",
+		OPT_GROUP(N_("Specific git-branch actions:")),
+		OPT_SET_INT('a', "all", &kinds, N_("list both remote-tracking and local branches"),
 			REF_REMOTE_BRANCH | REF_LOCAL_BRANCH),
-		OPT_BIT('d', "delete", &delete, "delete fully merged branch", 1),
-		OPT_BIT('D', NULL, &delete, "delete branch (even if not merged)", 2),
-		OPT_BIT('m', "move", &rename, "move/rename a branch and its reflog", 1),
-		OPT_BIT('M', NULL, &rename, "move/rename a branch, even if target exists", 2),
-		OPT_BOOLEAN(0, "list", &list, "list branch names"),
-		OPT_BOOLEAN('l', "create-reflog", &reflog, "create the branch's reflog"),
+		OPT_BIT('d', "delete", &delete, N_("delete fully merged branch"), 1),
+		OPT_BIT('D', NULL, &delete, N_("delete branch (even if not merged)"), 2),
+		OPT_BIT('m', "move", &rename, N_("move/rename a branch and its reflog"), 1),
+		OPT_BIT('M', NULL, &rename, N_("move/rename a branch, even if target exists"), 2),
+		OPT_BOOLEAN(0, "list", &list, N_("list branch names")),
+		OPT_BOOLEAN('l', "create-reflog", &reflog, N_("create the branch's reflog")),
 		OPT_BOOLEAN(0, "edit-description", &edit_description,
-			    "edit the description for the branch"),
-		OPT__FORCE(&force_create, "force creation (when already exists)"),
+			    N_("edit the description for the branch")),
+		OPT__FORCE(&force_create, N_("force creation (when already exists)")),
 		{
 			OPTION_CALLBACK, 0, "no-merged", &merge_filter_ref,
-			"commit", "print only not merged branches",
+			N_("commit"), N_("print only not merged branches"),
 			PARSE_OPT_LASTARG_DEFAULT | PARSE_OPT_NONEG,
 			opt_parse_merge_filter, (intptr_t) "HEAD",
 		},
 		{
 			OPTION_CALLBACK, 0, "merged", &merge_filter_ref,
-			"commit", "print only merged branches",
+			N_("commit"), N_("print only merged branches"),
 			PARSE_OPT_LASTARG_DEFAULT | PARSE_OPT_NONEG,
 			opt_parse_merge_filter, (intptr_t) "HEAD",
 		},
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 08/65] i18n: cat-file: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (3 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 07/65] i18n: branch: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 09/65] i18n: check-attr: " Nguyễn Thái Ngọc Duy
                       ` (58 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/cat-file.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 36a9104..fd08338 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -244,8 +244,8 @@ static int batch_objects(int print_contents)
 }
 
 static const char * const cat_file_usage[] = {
-	"git cat-file (-t|-s|-e|-p|<type>|--textconv) <object>",
-	"git cat-file (--batch|--batch-check) < <list_of_objects>",
+	N_("git cat-file (-t|-s|-e|-p|<type>|--textconv) <object>"),
+	N_("git cat-file (--batch|--batch-check) < <list_of_objects>"),
 	NULL
 };
 
@@ -263,19 +263,19 @@ int cmd_cat_file(int argc, const char **argv, const char *prefix)
 	const char *exp_type = NULL, *obj_name = NULL;
 
 	const struct option options[] = {
-		OPT_GROUP("<type> can be one of: blob, tree, commit, tag"),
-		OPT_SET_INT('t', NULL, &opt, "show object type", 't'),
-		OPT_SET_INT('s', NULL, &opt, "show object size", 's'),
+		OPT_GROUP(N_("<type> can be one of: blob, tree, commit, tag")),
+		OPT_SET_INT('t', NULL, &opt, N_("show object type"), 't'),
+		OPT_SET_INT('s', NULL, &opt, N_("show object size"), 's'),
 		OPT_SET_INT('e', NULL, &opt,
-			    "exit with zero when there's no error", 'e'),
-		OPT_SET_INT('p', NULL, &opt, "pretty-print object's content", 'p'),
+			    N_("exit with zero when there's no error"), 'e'),
+		OPT_SET_INT('p', NULL, &opt, N_("pretty-print object's content"), 'p'),
 		OPT_SET_INT(0, "textconv", &opt,
-			    "for blob objects, run textconv on object's content", 'c'),
+			    N_("for blob objects, run textconv on object's content"), 'c'),
 		OPT_SET_INT(0, "batch", &batch,
-			    "show info and content of objects fed from the standard input",
+			    N_("show info and content of objects fed from the standard input"),
 			    BATCH),
 		OPT_SET_INT(0, "batch-check", &batch,
-			    "show info about objects fed from the standard input",
+			    N_("show info about objects fed from the standard input"),
 			    BATCH_CHECK),
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 09/65] i18n: check-attr: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (4 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 08/65] i18n: cat-file: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 10/65] i18n: checkout-index: " Nguyễn Thái Ngọc Duy
                       ` (57 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/check-attr.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/builtin/check-attr.c b/builtin/check-attr.c
index 44c421e..e1ff575 100644
--- a/builtin/check-attr.c
+++ b/builtin/check-attr.c
@@ -8,19 +8,19 @@ static int all_attrs;
 static int cached_attrs;
 static int stdin_paths;
 static const char * const check_attr_usage[] = {
-"git check-attr [-a | --all | attr...] [--] pathname...",
-"git check-attr --stdin [-a | --all | attr...] < <list-of-paths>",
+N_("git check-attr [-a | --all | attr...] [--] pathname..."),
+N_("git check-attr --stdin [-a | --all | attr...] < <list-of-paths>"),
 NULL
 };
 
 static int null_term_line;
 
 static const struct option check_attr_options[] = {
-	OPT_BOOLEAN('a', "all", &all_attrs, "report all attributes set on file"),
-	OPT_BOOLEAN(0,  "cached", &cached_attrs, "use .gitattributes only from the index"),
-	OPT_BOOLEAN(0 , "stdin", &stdin_paths, "read file names from stdin"),
+	OPT_BOOLEAN('a', "all", &all_attrs, N_("report all attributes set on file")),
+	OPT_BOOLEAN(0,  "cached", &cached_attrs, N_("use .gitattributes only from the index")),
+	OPT_BOOLEAN(0 , "stdin", &stdin_paths, N_("read file names from stdin")),
 	OPT_BOOLEAN('z', NULL, &null_term_line,
-		"input paths are terminated by a null character"),
+		N_("input paths are terminated by a null character")),
 	OPT_END()
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 10/65] i18n: checkout-index: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (5 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 09/65] i18n: check-attr: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 11/65] i18n: checkout: " Nguyễn Thái Ngọc Duy
                       ` (56 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/checkout-index.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c
index c16d82b..86b7d36 100644
--- a/builtin/checkout-index.c
+++ b/builtin/checkout-index.c
@@ -123,7 +123,7 @@ static void checkout_all(const char *prefix, int prefix_length)
 }
 
 static const char * const builtin_checkout_index_usage[] = {
-	"git checkout-index [options] [--] [<file>...]",
+	N_("git checkout-index [options] [--] [<file>...]"),
 	NULL
 };
 
@@ -184,27 +184,27 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
 	int force = 0, quiet = 0, not_new = 0;
 	struct option builtin_checkout_index_options[] = {
 		OPT_BOOLEAN('a', "all", &all,
-			"checks out all files in the index"),
-		OPT__FORCE(&force, "forces overwrite of existing files"),
+			N_("checks out all files in the index")),
+		OPT__FORCE(&force, N_("forces overwrite of existing files")),
 		OPT__QUIET(&quiet,
-			"no warning for existing files and files not in index"),
+			N_("no warning for existing files and files not in index")),
 		OPT_BOOLEAN('n', "no-create", &not_new,
-			"don't checkout new files"),
+			N_("don't checkout new files")),
 		{ OPTION_CALLBACK, 'u', "index", &newfd, NULL,
-			"update stat information in the index file",
+			N_("update stat information in the index file"),
 			PARSE_OPT_NOARG, option_parse_u },
 		{ OPTION_CALLBACK, 'z', NULL, NULL, NULL,
-			"paths are separated with NUL character",
+			N_("paths are separated with NUL character"),
 			PARSE_OPT_NOARG, option_parse_z },
 		OPT_BOOLEAN(0, "stdin", &read_from_stdin,
-			"read list of paths from the standard input"),
+			N_("read list of paths from the standard input")),
 		OPT_BOOLEAN(0, "temp", &to_tempfile,
-			"write the content to temporary files"),
-		OPT_CALLBACK(0, "prefix", NULL, "string",
-			"when creating files, prepend <string>",
+			N_("write the content to temporary files")),
+		OPT_CALLBACK(0, "prefix", NULL, N_("string"),
+			N_("when creating files, prepend <string>"),
 			option_parse_prefix),
 		OPT_CALLBACK(0, "stage", NULL, NULL,
-			"copy out the files from named stage",
+			N_("copy out the files from named stage"),
 			option_parse_stage),
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 11/65] i18n: checkout: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (6 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 10/65] i18n: checkout-index: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 12/65] i18n: cherry: " Nguyễn Thái Ngọc Duy
                       ` (55 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/checkout.c | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/builtin/checkout.c b/builtin/checkout.c
index e8c1b1f..77d2b5a 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -22,8 +22,8 @@
 #include "argv-array.h"
 
 static const char * const checkout_usage[] = {
-	"git checkout [options] <branch>",
-	"git checkout [options] [<branch>] -- <file>...",
+	N_("git checkout [options] <branch>"),
+	N_("git checkout [options] [<branch>] -- <file>..."),
 	NULL,
 };
 
@@ -931,28 +931,28 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
 	int patch_mode = 0;
 	int dwim_new_local_branch = 1;
 	struct option options[] = {
-		OPT__QUIET(&opts.quiet, "suppress progress reporting"),
-		OPT_STRING('b', NULL, &opts.new_branch, "branch",
-			   "create and checkout a new branch"),
-		OPT_STRING('B', NULL, &opts.new_branch_force, "branch",
-			   "create/reset and checkout a branch"),
-		OPT_BOOLEAN('l', NULL, &opts.new_branch_log, "create reflog for new branch"),
-		OPT_BOOLEAN(0, "detach", &opts.force_detach, "detach the HEAD at named commit"),
-		OPT_SET_INT('t', "track",  &opts.track, "set upstream info for new branch",
+		OPT__QUIET(&opts.quiet, N_("suppress progress reporting")),
+		OPT_STRING('b', NULL, &opts.new_branch, N_("branch"),
+			   N_("create and checkout a new branch")),
+		OPT_STRING('B', NULL, &opts.new_branch_force, N_("branch"),
+			   N_("create/reset and checkout a branch")),
+		OPT_BOOLEAN('l', NULL, &opts.new_branch_log, N_("create reflog for new branch")),
+		OPT_BOOLEAN(0, "detach", &opts.force_detach, N_("detach the HEAD at named commit")),
+		OPT_SET_INT('t', "track",  &opts.track, N_("set upstream info for new branch"),
 			BRANCH_TRACK_EXPLICIT),
-		OPT_STRING(0, "orphan", &opts.new_orphan_branch, "new branch", "new unparented branch"),
-		OPT_SET_INT('2', "ours", &opts.writeout_stage, "checkout our version for unmerged files",
+		OPT_STRING(0, "orphan", &opts.new_orphan_branch, N_("new branch"), N_("new unparented branch")),
+		OPT_SET_INT('2', "ours", &opts.writeout_stage, N_("checkout our version for unmerged files"),
 			    2),
-		OPT_SET_INT('3', "theirs", &opts.writeout_stage, "checkout their version for unmerged files",
+		OPT_SET_INT('3', "theirs", &opts.writeout_stage, N_("checkout their version for unmerged files"),
 			    3),
-		OPT__FORCE(&opts.force, "force checkout (throw away local modifications)"),
-		OPT_BOOLEAN('m', "merge", &opts.merge, "perform a 3-way merge with the new branch"),
-		OPT_BOOLEAN(0, "overwrite-ignore", &opts.overwrite_ignore, "update ignored files (default)"),
-		OPT_STRING(0, "conflict", &conflict_style, "style",
-			   "conflict style (merge or diff3)"),
-		OPT_BOOLEAN('p', "patch", &patch_mode, "select hunks interactively"),
+		OPT__FORCE(&opts.force, N_("force checkout (throw away local modifications)")),
+		OPT_BOOLEAN('m', "merge", &opts.merge, N_("perform a 3-way merge with the new branch")),
+		OPT_BOOLEAN(0, "overwrite-ignore", &opts.overwrite_ignore, N_("update ignored files (default)")),
+		OPT_STRING(0, "conflict", &conflict_style, N_("style"),
+			   N_("conflict style (merge or diff3)")),
+		OPT_BOOLEAN('p', "patch", &patch_mode, N_("select hunks interactively")),
 		{ OPTION_BOOLEAN, 0, "guess", &dwim_new_local_branch, NULL,
-		  "second guess 'git checkout no-such-branch'",
+		  N_("second guess 'git checkout no-such-branch'"),
 		  PARSE_OPT_NOARG | PARSE_OPT_HIDDEN },
 		OPT_END(),
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 12/65] i18n: cherry: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (7 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 11/65] i18n: checkout: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 13/65] i18n: clean: " Nguyễn Thái Ngọc Duy
                       ` (54 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/log.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/log.c b/builtin/log.c
index 690caa7..6282ed2 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -1462,7 +1462,7 @@ static int add_pending_commit(const char *arg, struct rev_info *revs, int flags)
 }
 
 static const char * const cherry_usage[] = {
-	"git cherry [-v] [<upstream> [<head> [<limit>]]]",
+	N_("git cherry [-v] [<upstream> [<head> [<limit>]]]"),
 	NULL
 };
 
@@ -1496,7 +1496,7 @@ int cmd_cherry(int argc, const char **argv, const char *prefix)
 
 	struct option options[] = {
 		OPT__ABBREV(&abbrev),
-		OPT__VERBOSE(&verbose, "be verbose"),
+		OPT__VERBOSE(&verbose, N_("be verbose")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 13/65] i18n: clean: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (8 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 12/65] i18n: cherry: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 14/65] i18n: clone: " Nguyễn Thái Ngọc Duy
                       ` (53 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/clean.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/builtin/clean.c b/builtin/clean.c
index 0c7b3d0..69c1cda 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -16,7 +16,7 @@
 static int force = -1; /* unset */
 
 static const char *const builtin_clean_usage[] = {
-	"git clean [-d] [-f] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>...",
+	N_("git clean [-d] [-f] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."),
 	NULL
 };
 
@@ -48,16 +48,16 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
 	const char *qname;
 	char *seen = NULL;
 	struct option options[] = {
-		OPT__QUIET(&quiet, "do not print names of files removed"),
-		OPT__DRY_RUN(&show_only, "dry run"),
-		OPT__FORCE(&force, "force"),
+		OPT__QUIET(&quiet, N_("do not print names of files removed")),
+		OPT__DRY_RUN(&show_only, N_("dry run")),
+		OPT__FORCE(&force, N_("force")),
 		OPT_BOOLEAN('d', NULL, &remove_directories,
-				"remove whole directories"),
-		{ OPTION_CALLBACK, 'e', "exclude", &exclude_list, "pattern",
-		  "add <pattern> to ignore rules", PARSE_OPT_NONEG, exclude_cb },
-		OPT_BOOLEAN('x', NULL, &ignored, "remove ignored files, too"),
+				N_("remove whole directories")),
+		{ OPTION_CALLBACK, 'e', "exclude", &exclude_list, N_("pattern"),
+		  N_("add <pattern> to ignore rules"), PARSE_OPT_NONEG, exclude_cb },
+		OPT_BOOLEAN('x', NULL, &ignored, N_("remove ignored files, too")),
 		OPT_BOOLEAN('X', NULL, &ignored_only,
-				"remove only ignored files"),
+				N_("remove only ignored files")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 14/65] i18n: clone: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (9 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 13/65] i18n: clean: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 15/65] i18n: column: " Nguyễn Thái Ngọc Duy
                       ` (52 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/clone.c | 56 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/builtin/clone.c b/builtin/clone.c
index a4d8d25..579319c 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -33,7 +33,7 @@
  *
  */
 static const char * const builtin_clone_usage[] = {
-	"git clone [options] [--] <repo> [<dir>]",
+	N_("git clone [options] [--] <repo> [<dir>]"),
 	NULL
 };
 
@@ -61,43 +61,43 @@ static int opt_parse_reference(const struct option *opt, const char *arg, int un
 static struct option builtin_clone_options[] = {
 	OPT__VERBOSITY(&option_verbosity),
 	OPT_BOOL(0, "progress", &option_progress,
-		 "force progress reporting"),
+		 N_("force progress reporting")),
 	OPT_BOOLEAN('n', "no-checkout", &option_no_checkout,
-		    "don't create a checkout"),
-	OPT_BOOLEAN(0, "bare", &option_bare, "create a bare repository"),
+		    N_("don't create a checkout")),
+	OPT_BOOLEAN(0, "bare", &option_bare, N_("create a bare repository")),
 	{ OPTION_BOOLEAN, 0, "naked", &option_bare, NULL,
-		"create a bare repository",
+		N_("create a bare repository"),
 		PARSE_OPT_NOARG | PARSE_OPT_HIDDEN },
 	OPT_BOOLEAN(0, "mirror", &option_mirror,
-		    "create a mirror repository (implies bare)"),
+		    N_("create a mirror repository (implies bare)")),
 	OPT_BOOLEAN('l', "local", &option_local,
-		    "to clone from a local repository"),
+		    N_("to clone from a local repository")),
 	OPT_BOOLEAN(0, "no-hardlinks", &option_no_hardlinks,
-		    "don't use local hardlinks, always copy"),
+		    N_("don't use local hardlinks, always copy")),
 	OPT_BOOLEAN('s', "shared", &option_shared,
-		    "setup as shared repository"),
+		    N_("setup as shared repository")),
 	OPT_BOOLEAN(0, "recursive", &option_recursive,
-		    "initialize submodules in the clone"),
+		    N_("initialize submodules in the clone")),
 	OPT_BOOLEAN(0, "recurse-submodules", &option_recursive,
-		    "initialize submodules in the clone"),
-	OPT_STRING(0, "template", &option_template, "template-directory",
-		   "directory from which templates will be used"),
-	OPT_CALLBACK(0 , "reference", &option_reference, "repo",
-		     "reference repository", &opt_parse_reference),
-	OPT_STRING('o', "origin", &option_origin, "name",
-		   "use <name> instead of 'origin' to track upstream"),
-	OPT_STRING('b', "branch", &option_branch, "branch",
-		   "checkout <branch> instead of the remote's HEAD"),
-	OPT_STRING('u', "upload-pack", &option_upload_pack, "path",
-		   "path to git-upload-pack on the remote"),
-	OPT_STRING(0, "depth", &option_depth, "depth",
-		    "create a shallow clone of that depth"),
+		    N_("initialize submodules in the clone")),
+	OPT_STRING(0, "template", &option_template, N_("template-directory"),
+		   N_("directory from which templates will be used")),
+	OPT_CALLBACK(0 , "reference", &option_reference, N_("repo"),
+		     N_("reference repository"), &opt_parse_reference),
+	OPT_STRING('o', "origin", &option_origin, N_("name"),
+		   N_("use <name> instead of 'origin' to track upstream")),
+	OPT_STRING('b', "branch", &option_branch, N_("branch"),
+		   N_("checkout <branch> instead of the remote's HEAD")),
+	OPT_STRING('u', "upload-pack", &option_upload_pack, N_("path"),
+		   N_("path to git-upload-pack on the remote")),
+	OPT_STRING(0, "depth", &option_depth, N_("depth"),
+		    N_("create a shallow clone of that depth")),
 	OPT_BOOL(0, "single-branch", &option_single_branch,
-		    "clone only one branch, HEAD or --branch"),
-	OPT_STRING(0, "separate-git-dir", &real_git_dir, "gitdir",
-		   "separate git dir from working tree"),
-	OPT_STRING_LIST('c', "config", &option_config, "key=value",
-			"set config inside the new repository"),
+		    N_("clone only one branch, HEAD or --branch")),
+	OPT_STRING(0, "separate-git-dir", &real_git_dir, N_("gitdir"),
+		   N_("separate git dir from working tree")),
+	OPT_STRING_LIST('c', "config", &option_config, N_("key=value"),
+			N_("set config inside the new repository")),
 	OPT_END()
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 15/65] i18n: column: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (10 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 14/65] i18n: clone: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 16/65] i18n: commit: " Nguyễn Thái Ngọc Duy
                       ` (51 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/column.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/builtin/column.c b/builtin/column.c
index 5ea798a..e125a55 100644
--- a/builtin/column.c
+++ b/builtin/column.c
@@ -6,7 +6,7 @@
 #include "column.h"
 
 static const char * const builtin_column_usage[] = {
-	"git column [options]",
+	N_("git column [options]"),
 	NULL
 };
 static unsigned int colopts;
@@ -23,13 +23,13 @@ int cmd_column(int argc, const char **argv, const char *prefix)
 	struct column_options copts;
 	const char *command = NULL, *real_command = NULL;
 	struct option options[] = {
-		OPT_STRING(0, "command", &real_command, "name", "lookup config vars"),
-		OPT_COLUMN(0, "mode", &colopts, "layout to use"),
-		OPT_INTEGER(0, "raw-mode", &colopts, "layout to use"),
-		OPT_INTEGER(0, "width", &copts.width, "Maximum width"),
-		OPT_STRING(0, "indent", &copts.indent, "string", "Padding space on left border"),
-		OPT_INTEGER(0, "nl", &copts.nl, "Padding space on right border"),
-		OPT_INTEGER(0, "padding", &copts.padding, "Padding space between columns"),
+		OPT_STRING(0, "command", &real_command, N_("name"), N_("lookup config vars")),
+		OPT_COLUMN(0, "mode", &colopts, N_("layout to use")),
+		OPT_INTEGER(0, "raw-mode", &colopts, N_("layout to use")),
+		OPT_INTEGER(0, "width", &copts.width, N_("Maximum width")),
+		OPT_STRING(0, "indent", &copts.indent, N_("string"), N_("Padding space on left border")),
+		OPT_INTEGER(0, "nl", &copts.nl, N_("Padding space on right border")),
+		OPT_INTEGER(0, "padding", &copts.padding, N_("Padding space between columns")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 16/65] i18n: commit: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (11 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 15/65] i18n: column: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 17/65] i18n: config: " Nguyễn Thái Ngọc Duy
                       ` (50 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/commit.c | 76 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 38 insertions(+), 38 deletions(-)

diff --git a/builtin/commit.c b/builtin/commit.c
index a2ec73d..34d723b 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -30,7 +30,7 @@
 #include "column.h"
 
 static const char * const builtin_commit_usage[] = {
-	"git commit [options] [--] <filepattern>...",
+	N_("git commit [options] [--] <filepattern>..."),
 	NULL
 };
 
@@ -1367,53 +1367,53 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
 {
 	static struct wt_status s;
 	static struct option builtin_commit_options[] = {
-		OPT__QUIET(&quiet, "suppress summary after successful commit"),
-		OPT__VERBOSE(&verbose, "show diff in commit message template"),
-
-		OPT_GROUP("Commit message options"),
-		OPT_FILENAME('F', "file", &logfile, "read message from file"),
-		OPT_STRING(0, "author", &force_author, "author", "override author for commit"),
-		OPT_STRING(0, "date", &force_date, "date", "override date for commit"),
-		OPT_CALLBACK('m', "message", &message, "message", "commit message", opt_parse_m),
-		OPT_STRING('c', "reedit-message", &edit_message, "commit", "reuse and edit message from specified commit"),
-		OPT_STRING('C', "reuse-message", &use_message, "commit", "reuse message from specified commit"),
-		OPT_STRING(0, "fixup", &fixup_message, "commit", "use autosquash formatted message to fixup specified commit"),
-		OPT_STRING(0, "squash", &squash_message, "commit", "use autosquash formatted message to squash specified commit"),
-		OPT_BOOLEAN(0, "reset-author", &renew_authorship, "the commit is authored by me now (used with -C/-c/--amend)"),
-		OPT_BOOLEAN('s', "signoff", &signoff, "add Signed-off-by:"),
-		OPT_FILENAME('t', "template", &template_file, "use specified template file"),
-		OPT_BOOL('e', "edit", &edit_flag, "force edit of commit"),
-		OPT_STRING(0, "cleanup", &cleanup_arg, "default", "how to strip spaces and #comments from message"),
-		OPT_BOOLEAN(0, "status", &include_status, "include status in commit message template"),
-		{ OPTION_STRING, 'S', "gpg-sign", &sign_commit, "key id",
-		  "GPG sign commit", PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
+		OPT__QUIET(&quiet, N_("suppress summary after successful commit")),
+		OPT__VERBOSE(&verbose, N_("show diff in commit message template")),
+
+		OPT_GROUP(N_("Commit message options")),
+		OPT_FILENAME('F', "file", &logfile, N_("read message from file")),
+		OPT_STRING(0, "author", &force_author, N_("author"), N_("override author for commit")),
+		OPT_STRING(0, "date", &force_date, N_("date"), N_("override date for commit")),
+		OPT_CALLBACK('m', "message", &message, N_("message"), N_("commit message"), opt_parse_m),
+		OPT_STRING('c', "reedit-message", &edit_message, N_("commit"), N_("reuse and edit message from specified commit")),
+		OPT_STRING('C', "reuse-message", &use_message, N_("commit"), N_("reuse message from specified commit")),
+		OPT_STRING(0, "fixup", &fixup_message, N_("commit"), N_("use autosquash formatted message to fixup specified commit")),
+		OPT_STRING(0, "squash", &squash_message, N_("commit"), N_("use autosquash formatted message to squash specified commit")),
+		OPT_BOOLEAN(0, "reset-author", &renew_authorship, N_("the commit is authored by me now (used with -C/-c/--amend)")),
+		OPT_BOOLEAN('s', "signoff", &signoff, N_("add Signed-off-by:")),
+		OPT_FILENAME('t', "template", &template_file, N_("use specified template file")),
+		OPT_BOOL('e', "edit", &edit_flag, N_("force edit of commit")),
+		OPT_STRING(0, "cleanup", &cleanup_arg, N_("default"), N_("how to strip spaces and #comments from message")),
+		OPT_BOOLEAN(0, "status", &include_status, N_("include status in commit message template")),
+		{ OPTION_STRING, 'S', "gpg-sign", &sign_commit, N_("key id"),
+		  N_("GPG sign commit"), PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
 		/* end commit message options */
 
-		OPT_GROUP("Commit contents options"),
-		OPT_BOOLEAN('a', "all", &all, "commit all changed files"),
-		OPT_BOOLEAN('i', "include", &also, "add specified files to index for commit"),
-		OPT_BOOLEAN(0, "interactive", &interactive, "interactively add files"),
-		OPT_BOOLEAN('p', "patch", &patch_interactive, "interactively add changes"),
-		OPT_BOOLEAN('o', "only", &only, "commit only specified files"),
-		OPT_BOOLEAN('n', "no-verify", &no_verify, "bypass pre-commit hook"),
-		OPT_BOOLEAN(0, "dry-run", &dry_run, "show what would be committed"),
-		OPT_SET_INT(0, "short", &status_format, "show status concisely",
+		OPT_GROUP(N_("Commit contents options")),
+		OPT_BOOLEAN('a', "all", &all, N_("commit all changed files")),
+		OPT_BOOLEAN('i', "include", &also, N_("add specified files to index for commit")),
+		OPT_BOOLEAN(0, "interactive", &interactive, N_("interactively add files")),
+		OPT_BOOLEAN('p', "patch", &patch_interactive, N_("interactively add changes")),
+		OPT_BOOLEAN('o', "only", &only, N_("commit only specified files")),
+		OPT_BOOLEAN('n', "no-verify", &no_verify, N_("bypass pre-commit hook")),
+		OPT_BOOLEAN(0, "dry-run", &dry_run, N_("show what would be committed")),
+		OPT_SET_INT(0, "short", &status_format, N_("show status concisely"),
 			    STATUS_FORMAT_SHORT),
-		OPT_BOOLEAN(0, "branch", &s.show_branch, "show branch information"),
+		OPT_BOOLEAN(0, "branch", &s.show_branch, N_("show branch information")),
 		OPT_SET_INT(0, "porcelain", &status_format,
-			    "machine-readable output", STATUS_FORMAT_PORCELAIN),
+			    N_("machine-readable output"), STATUS_FORMAT_PORCELAIN),
 		OPT_BOOLEAN('z', "null", &s.null_termination,
-			    "terminate entries with NUL"),
-		OPT_BOOLEAN(0, "amend", &amend, "amend previous commit"),
-		OPT_BOOLEAN(0, "no-post-rewrite", &no_post_rewrite, "bypass post-rewrite hook"),
-		{ OPTION_STRING, 'u', "untracked-files", &untracked_files_arg, "mode", "show untracked files, optional modes: all, normal, no. (Default: all)", PARSE_OPT_OPTARG, NULL, (intptr_t)"all" },
+			    N_("terminate entries with NUL")),
+		OPT_BOOLEAN(0, "amend", &amend, N_("amend previous commit")),
+		OPT_BOOLEAN(0, "no-post-rewrite", &no_post_rewrite, N_("bypass post-rewrite hook")),
+		{ OPTION_STRING, 'u', "untracked-files", &untracked_files_arg, N_("mode"), N_("show untracked files, optional modes: all, normal, no. (Default: all)"), PARSE_OPT_OPTARG, NULL, (intptr_t)"all" },
 		/* end commit contents options */
 
 		{ OPTION_BOOLEAN, 0, "allow-empty", &allow_empty, NULL,
-		  "ok to record an empty change",
+		  N_("ok to record an empty change"),
 		  PARSE_OPT_NOARG | PARSE_OPT_HIDDEN },
 		{ OPTION_BOOLEAN, 0, "allow-empty-message", &allow_empty_message, NULL,
-		  "ok to record a change with an empty message",
+		  N_("ok to record a change with an empty message"),
 		  PARSE_OPT_NOARG | PARSE_OPT_HIDDEN },
 
 		OPT_END()
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 17/65] i18n: config: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (12 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 16/65] i18n: commit: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 18/65] i18n: count-objects: " Nguyễn Thái Ngọc Duy
                       ` (49 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/config.c | 56 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/builtin/config.c b/builtin/config.c
index 33c8820..d6922db 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -4,7 +4,7 @@
 #include "parse-options.h"
 
 static const char *const builtin_config_usage[] = {
-	"git config [options]",
+	N_("git config [options]"),
 	NULL
 };
 
@@ -49,33 +49,33 @@ static int respect_includes = -1;
 #define TYPE_PATH (1<<3)
 
 static struct option builtin_config_options[] = {
-	OPT_GROUP("Config file location"),
-	OPT_BOOLEAN(0, "global", &use_global_config, "use global config file"),
-	OPT_BOOLEAN(0, "system", &use_system_config, "use system config file"),
-	OPT_BOOLEAN(0, "local", &use_local_config, "use repository config file"),
-	OPT_STRING('f', "file", &given_config_file, "file", "use given config file"),
-	OPT_GROUP("Action"),
-	OPT_BIT(0, "get", &actions, "get value: name [value-regex]", ACTION_GET),
-	OPT_BIT(0, "get-all", &actions, "get all values: key [value-regex]", ACTION_GET_ALL),
-	OPT_BIT(0, "get-regexp", &actions, "get values for regexp: name-regex [value-regex]", ACTION_GET_REGEXP),
-	OPT_BIT(0, "replace-all", &actions, "replace all matching variables: name value [value_regex]", ACTION_REPLACE_ALL),
-	OPT_BIT(0, "add", &actions, "adds a new variable: name value", ACTION_ADD),
-	OPT_BIT(0, "unset", &actions, "removes a variable: name [value-regex]", ACTION_UNSET),
-	OPT_BIT(0, "unset-all", &actions, "removes all matches: name [value-regex]", ACTION_UNSET_ALL),
-	OPT_BIT(0, "rename-section", &actions, "rename section: old-name new-name", ACTION_RENAME_SECTION),
-	OPT_BIT(0, "remove-section", &actions, "remove a section: name", ACTION_REMOVE_SECTION),
-	OPT_BIT('l', "list", &actions, "list all", ACTION_LIST),
-	OPT_BIT('e', "edit", &actions, "opens an editor", ACTION_EDIT),
-	OPT_STRING(0, "get-color", &get_color_slot, "slot", "find the color configured: [default]"),
-	OPT_STRING(0, "get-colorbool", &get_colorbool_slot, "slot", "find the color setting: [stdout-is-tty]"),
-	OPT_GROUP("Type"),
-	OPT_BIT(0, "bool", &types, "value is \"true\" or \"false\"", TYPE_BOOL),
-	OPT_BIT(0, "int", &types, "value is decimal number", TYPE_INT),
-	OPT_BIT(0, "bool-or-int", &types, "value is --bool or --int", TYPE_BOOL_OR_INT),
-	OPT_BIT(0, "path", &types, "value is a path (file or directory name)", TYPE_PATH),
-	OPT_GROUP("Other"),
-	OPT_BOOLEAN('z', "null", &end_null, "terminate values with NUL byte"),
-	OPT_BOOL(0, "includes", &respect_includes, "respect include directives on lookup"),
+	OPT_GROUP(N_("Config file location")),
+	OPT_BOOLEAN(0, "global", &use_global_config, N_("use global config file")),
+	OPT_BOOLEAN(0, "system", &use_system_config, N_("use system config file")),
+	OPT_BOOLEAN(0, "local", &use_local_config, N_("use repository config file")),
+	OPT_STRING('f', "file", &given_config_file, N_("file"), N_("use given config file")),
+	OPT_GROUP(N_("Action")),
+	OPT_BIT(0, "get", &actions, N_("get value: name [value-regex]"), ACTION_GET),
+	OPT_BIT(0, "get-all", &actions, N_("get all values: key [value-regex]"), ACTION_GET_ALL),
+	OPT_BIT(0, "get-regexp", &actions, N_("get values for regexp: name-regex [value-regex]"), ACTION_GET_REGEXP),
+	OPT_BIT(0, "replace-all", &actions, N_("replace all matching variables: name value [value_regex]"), ACTION_REPLACE_ALL),
+	OPT_BIT(0, "add", &actions, N_("adds a new variable: name value"), ACTION_ADD),
+	OPT_BIT(0, "unset", &actions, N_("removes a variable: name [value-regex]"), ACTION_UNSET),
+	OPT_BIT(0, "unset-all", &actions, N_("removes all matches: name [value-regex]"), ACTION_UNSET_ALL),
+	OPT_BIT(0, "rename-section", &actions, N_("rename section: old-name new-name"), ACTION_RENAME_SECTION),
+	OPT_BIT(0, "remove-section", &actions, N_("remove a section: name"), ACTION_REMOVE_SECTION),
+	OPT_BIT('l', "list", &actions, N_("list all"), ACTION_LIST),
+	OPT_BIT('e', "edit", &actions, N_("opens an editor"), ACTION_EDIT),
+	OPT_STRING(0, "get-color", &get_color_slot, N_("slot"), N_("find the color configured: [default]")),
+	OPT_STRING(0, "get-colorbool", &get_colorbool_slot, N_("slot"), N_("find the color setting: [stdout-is-tty]")),
+	OPT_GROUP(N_("Type")),
+	OPT_BIT(0, "bool", &types, N_("value is \"true\" or \"false\""), TYPE_BOOL),
+	OPT_BIT(0, "int", &types, N_("value is decimal number"), TYPE_INT),
+	OPT_BIT(0, "bool-or-int", &types, N_("value is --bool or --int"), TYPE_BOOL_OR_INT),
+	OPT_BIT(0, "path", &types, N_("value is a path (file or directory name)"), TYPE_PATH),
+	OPT_GROUP(N_("Other")),
+	OPT_BOOLEAN('z', "null", &end_null, N_("terminate values with NUL byte")),
+	OPT_BOOL(0, "includes", &respect_includes, N_("respect include directives on lookup")),
 	OPT_END(),
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 18/65] i18n: count-objects: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (13 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 17/65] i18n: config: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 19/65] i18n: describe: " Nguyễn Thái Ngọc Duy
                       ` (48 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/count-objects.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/count-objects.c b/builtin/count-objects.c
index c37cb98..9afaa88 100644
--- a/builtin/count-objects.c
+++ b/builtin/count-objects.c
@@ -66,7 +66,7 @@ static void count_objects(DIR *d, char *path, int len, int verbose,
 }
 
 static char const * const count_objects_usage[] = {
-	"git count-objects [-v]",
+	N_("git count-objects [-v]"),
 	NULL
 };
 
@@ -79,7 +79,7 @@ int cmd_count_objects(int argc, const char **argv, const char *prefix)
 	unsigned long loose = 0, packed = 0, packed_loose = 0, garbage = 0;
 	off_t loose_size = 0;
 	struct option opts[] = {
-		OPT__VERBOSE(&verbose, "be verbose"),
+		OPT__VERBOSE(&verbose, N_("be verbose")),
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 19/65] i18n: describe: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (14 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 18/65] i18n: count-objects: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 20/65] i18n: fast-export: " Nguyễn Thái Ngọc Duy
                       ` (47 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/describe.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/builtin/describe.c b/builtin/describe.c
index 9f63067..9fe11ed 100644
--- a/builtin/describe.c
+++ b/builtin/describe.c
@@ -12,8 +12,8 @@
 #define MAX_TAGS	(FLAG_BITS - 1)
 
 static const char * const describe_usage[] = {
-	"git describe [options] <committish>*",
-	"git describe [options] --dirty",
+	N_("git describe [options] <committish>*"),
+	N_("git describe [options] --dirty"),
 	NULL
 };
 
@@ -400,22 +400,22 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
 {
 	int contains = 0;
 	struct option options[] = {
-		OPT_BOOLEAN(0, "contains",   &contains, "find the tag that comes after the commit"),
-		OPT_BOOLEAN(0, "debug",      &debug, "debug search strategy on stderr"),
-		OPT_BOOLEAN(0, "all",        &all, "use any ref in .git/refs"),
-		OPT_BOOLEAN(0, "tags",       &tags, "use any tag in .git/refs/tags"),
-		OPT_BOOLEAN(0, "long",       &longformat, "always use long format"),
+		OPT_BOOLEAN(0, "contains",   &contains, N_("find the tag that comes after the commit")),
+		OPT_BOOLEAN(0, "debug",      &debug, N_("debug search strategy on stderr")),
+		OPT_BOOLEAN(0, "all",        &all, N_("use any ref in .git/refs")),
+		OPT_BOOLEAN(0, "tags",       &tags, N_("use any tag in .git/refs/tags")),
+		OPT_BOOLEAN(0, "long",       &longformat, N_("always use long format")),
 		OPT__ABBREV(&abbrev),
 		OPT_SET_INT(0, "exact-match", &max_candidates,
-			    "only output exact matches", 0),
+			    N_("only output exact matches"), 0),
 		OPT_INTEGER(0, "candidates", &max_candidates,
-			    "consider <n> most recent tags (default: 10)"),
-		OPT_STRING(0, "match",       &pattern, "pattern",
-			   "only consider tags matching <pattern>"),
+			    N_("consider <n> most recent tags (default: 10)")),
+		OPT_STRING(0, "match",       &pattern, N_("pattern"),
+			   N_("only consider tags matching <pattern>")),
 		OPT_BOOLEAN(0, "always",     &always,
-			   "show abbreviated commit object as fallback"),
-		{OPTION_STRING, 0, "dirty",  &dirty, "mark",
-			   "append <mark> on dirty working tree (default: \"-dirty\")",
+			   N_("show abbreviated commit object as fallback")),
+		{OPTION_STRING, 0, "dirty",  &dirty, N_("mark"),
+			   N_("append <mark> on dirty working tree (default: \"-dirty\")"),
 		 PARSE_OPT_OPTARG, NULL, (intptr_t) "-dirty"},
 		OPT_END(),
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 20/65] i18n: fast-export: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (15 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 19/65] i18n: describe: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 21/65] i18n: fetch: " Nguyễn Thái Ngọc Duy
                       ` (46 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/fast-export.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 19509ea..65217eb 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -19,7 +19,7 @@
 #include "quote.h"
 
 static const char *fast_export_usage[] = {
-	"git fast-export [rev-list-opts]",
+	N_("git fast-export [rev-list-opts]"),
 	NULL
 };
 
@@ -630,24 +630,24 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
 	char *export_filename = NULL, *import_filename = NULL;
 	struct option options[] = {
 		OPT_INTEGER(0, "progress", &progress,
-			    "show progress after <n> objects"),
-		OPT_CALLBACK(0, "signed-tags", &signed_tag_mode, "mode",
-			     "select handling of signed tags",
+			    N_("show progress after <n> objects")),
+		OPT_CALLBACK(0, "signed-tags", &signed_tag_mode, N_("mode"),
+			     N_("select handling of signed tags"),
 			     parse_opt_signed_tag_mode),
-		OPT_CALLBACK(0, "tag-of-filtered-object", &tag_of_filtered_mode, "mode",
-			     "select handling of tags that tag filtered objects",
+		OPT_CALLBACK(0, "tag-of-filtered-object", &tag_of_filtered_mode, N_("mode"),
+			     N_("select handling of tags that tag filtered objects"),
 			     parse_opt_tag_of_filtered_mode),
-		OPT_STRING(0, "export-marks", &export_filename, "file",
-			     "Dump marks to this file"),
-		OPT_STRING(0, "import-marks", &import_filename, "file",
-			     "Import marks from this file"),
+		OPT_STRING(0, "export-marks", &export_filename, N_("file"),
+			     N_("Dump marks to this file")),
+		OPT_STRING(0, "import-marks", &import_filename, N_("file"),
+			     N_("Import marks from this file")),
 		OPT_BOOLEAN(0, "fake-missing-tagger", &fake_missing_tagger,
-			     "Fake a tagger when tags lack one"),
+			     N_("Fake a tagger when tags lack one")),
 		OPT_BOOLEAN(0, "full-tree", &full_tree,
-			     "Output full tree for each commit"),
+			     N_("Output full tree for each commit")),
 		OPT_BOOLEAN(0, "use-done-feature", &use_done_feature,
-			     "Use the done feature to terminate the stream"),
-		OPT_BOOL(0, "no-data", &no_data, "Skip output of blob data"),
+			     N_("Use the done feature to terminate the stream")),
+		OPT_BOOL(0, "no-data", &no_data, N_("Skip output of blob data")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 21/65] i18n: fetch: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (16 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 20/65] i18n: fast-export: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 22/65] i18n: fmt-merge-msg: " Nguyễn Thái Ngọc Duy
                       ` (45 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/fetch.c | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/builtin/fetch.c b/builtin/fetch.c
index bb9a074..3f2ad77 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -16,10 +16,10 @@
 #include "connected.h"
 
 static const char * const builtin_fetch_usage[] = {
-	"git fetch [<options>] [<repository> [<refspec>...]]",
-	"git fetch [<options>] <group>",
-	"git fetch --multiple [<options>] [(<repository> | <group>)...]",
-	"git fetch --all [<options>]",
+	N_("git fetch [<options>] [<repository> [<refspec>...]]"),
+	N_("git fetch [<options>] <group>"),
+	N_("git fetch --multiple [<options>] [(<repository> | <group>)...]"),
+	N_("git fetch --all [<options>]"),
 	NULL
 };
 
@@ -56,36 +56,36 @@ static int option_parse_recurse_submodules(const struct option *opt,
 static struct option builtin_fetch_options[] = {
 	OPT__VERBOSITY(&verbosity),
 	OPT_BOOLEAN(0, "all", &all,
-		    "fetch from all remotes"),
+		    N_("fetch from all remotes")),
 	OPT_BOOLEAN('a', "append", &append,
-		    "append to .git/FETCH_HEAD instead of overwriting"),
-	OPT_STRING(0, "upload-pack", &upload_pack, "path",
-		   "path to upload pack on remote end"),
-	OPT__FORCE(&force, "force overwrite of local branch"),
+		    N_("append to .git/FETCH_HEAD instead of overwriting")),
+	OPT_STRING(0, "upload-pack", &upload_pack, N_("path"),
+		   N_("path to upload pack on remote end")),
+	OPT__FORCE(&force, N_("force overwrite of local branch")),
 	OPT_BOOLEAN('m', "multiple", &multiple,
-		    "fetch from multiple remotes"),
+		    N_("fetch from multiple remotes")),
 	OPT_SET_INT('t', "tags", &tags,
-		    "fetch all tags and associated objects", TAGS_SET),
+		    N_("fetch all tags and associated objects"), TAGS_SET),
 	OPT_SET_INT('n', NULL, &tags,
-		    "do not fetch all tags (--no-tags)", TAGS_UNSET),
+		    N_("do not fetch all tags (--no-tags)"), TAGS_UNSET),
 	OPT_BOOLEAN('p', "prune", &prune,
-		    "prune remote-tracking branches no longer on remote"),
-	{ OPTION_CALLBACK, 0, "recurse-submodules", NULL, "on-demand",
-		    "control recursive fetching of submodules",
+		    N_("prune remote-tracking branches no longer on remote")),
+	{ OPTION_CALLBACK, 0, "recurse-submodules", NULL, N_("on-demand"),
+		    N_("control recursive fetching of submodules"),
 		    PARSE_OPT_OPTARG, option_parse_recurse_submodules },
 	OPT_BOOLEAN(0, "dry-run", &dry_run,
-		    "dry run"),
-	OPT_BOOLEAN('k', "keep", &keep, "keep downloaded pack"),
+		    N_("dry run")),
+	OPT_BOOLEAN('k', "keep", &keep, N_("keep downloaded pack")),
 	OPT_BOOLEAN('u', "update-head-ok", &update_head_ok,
-		    "allow updating of HEAD ref"),
-	OPT_BOOL(0, "progress", &progress, "force progress reporting"),
-	OPT_STRING(0, "depth", &depth, "depth",
-		   "deepen history of shallow clone"),
-	{ OPTION_STRING, 0, "submodule-prefix", &submodule_prefix, "dir",
-		   "prepend this to submodule path output", PARSE_OPT_HIDDEN },
+		    N_("allow updating of HEAD ref")),
+	OPT_BOOL(0, "progress", &progress, N_("force progress reporting")),
+	OPT_STRING(0, "depth", &depth, N_("depth"),
+		   N_("deepen history of shallow clone")),
+	{ OPTION_STRING, 0, "submodule-prefix", &submodule_prefix, N_("dir"),
+		   N_("prepend this to submodule path output"), PARSE_OPT_HIDDEN },
 	{ OPTION_STRING, 0, "recurse-submodules-default",
 		   &recurse_submodules_default, NULL,
-		   "default mode for recursion", PARSE_OPT_HIDDEN },
+		   N_("default mode for recursion"), PARSE_OPT_HIDDEN },
 	OPT_END()
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 22/65] i18n: fmt-merge-msg: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (17 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 21/65] i18n: fetch: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 23/65] i18n: for-each-ref: " Nguyễn Thái Ngọc Duy
                       ` (44 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/fmt-merge-msg.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c
index d42015d..bf118b3 100644
--- a/builtin/fmt-merge-msg.c
+++ b/builtin/fmt-merge-msg.c
@@ -10,7 +10,7 @@
 #include "gpg-interface.h"
 
 static const char * const fmt_merge_msg_usage[] = {
-	"git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]",
+	N_("git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]"),
 	NULL
 };
 
@@ -650,16 +650,16 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)
 	const char *message = NULL;
 	int shortlog_len = -1;
 	struct option options[] = {
-		{ OPTION_INTEGER, 0, "log", &shortlog_len, "n",
-		  "populate log with at most <n> entries from shortlog",
+		{ OPTION_INTEGER, 0, "log", &shortlog_len, N_("n"),
+		  N_("populate log with at most <n> entries from shortlog"),
 		  PARSE_OPT_OPTARG, NULL, DEFAULT_MERGE_LOG_LEN },
-		{ OPTION_INTEGER, 0, "summary", &shortlog_len, "n",
-		  "alias for --log (deprecated)",
+		{ OPTION_INTEGER, 0, "summary", &shortlog_len, N_("n"),
+		  N_("alias for --log (deprecated)"),
 		  PARSE_OPT_OPTARG | PARSE_OPT_HIDDEN, NULL,
 		  DEFAULT_MERGE_LOG_LEN },
-		OPT_STRING('m', "message", &message, "text",
-			"use <text> as start of message"),
-		OPT_FILENAME('F', "file", &inpath, "file to read from"),
+		OPT_STRING('m', "message", &message, N_("text"),
+			N_("use <text> as start of message")),
+		OPT_FILENAME('F', "file", &inpath, N_("file to read from")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 23/65] i18n: for-each-ref: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (18 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 22/65] i18n: fmt-merge-msg: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 24/65] i18n: format-patch: " Nguyễn Thái Ngọc Duy
                       ` (43 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/for-each-ref.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c
index b01d76a..afe83b9 100644
--- a/builtin/for-each-ref.c
+++ b/builtin/for-each-ref.c
@@ -974,7 +974,7 @@ static int opt_parse_sort(const struct option *opt, const char *arg, int unset)
 }
 
 static char const * const for_each_ref_usage[] = {
-	"git for-each-ref [options] [<pattern>]",
+	N_("git for-each-ref [options] [<pattern>]"),
 	NULL
 };
 
@@ -989,19 +989,19 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
 
 	struct option opts[] = {
 		OPT_BIT('s', "shell", &quote_style,
-		        "quote placeholders suitably for shells", QUOTE_SHELL),
+			N_("quote placeholders suitably for shells"), QUOTE_SHELL),
 		OPT_BIT('p', "perl",  &quote_style,
-		        "quote placeholders suitably for perl", QUOTE_PERL),
+			N_("quote placeholders suitably for perl"), QUOTE_PERL),
 		OPT_BIT(0 , "python", &quote_style,
-		        "quote placeholders suitably for python", QUOTE_PYTHON),
+			N_("quote placeholders suitably for python"), QUOTE_PYTHON),
 		OPT_BIT(0 , "tcl",  &quote_style,
-		        "quote placeholders suitably for tcl", QUOTE_TCL),
+			N_("quote placeholders suitably for tcl"), QUOTE_TCL),
 
 		OPT_GROUP(""),
-		OPT_INTEGER( 0 , "count", &maxcount, "show only <n> matched refs"),
-		OPT_STRING(  0 , "format", &format, "format", "format to use for the output"),
-		OPT_CALLBACK(0 , "sort", sort_tail, "key",
-		            "field name to sort on", &opt_parse_sort),
+		OPT_INTEGER( 0 , "count", &maxcount, N_("show only <n> matched refs")),
+		OPT_STRING(  0 , "format", &format, N_("format"), N_("format to use for the output")),
+		OPT_CALLBACK(0 , "sort", sort_tail, N_("key"),
+			    N_("field name to sort on"), &opt_parse_sort),
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 24/65] i18n: format-patch: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (19 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 23/65] i18n: for-each-ref: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 25/65] i18n: fsck: " Nguyễn Thái Ngọc Duy
                       ` (42 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/log.c | 66 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

diff --git a/builtin/log.c b/builtin/log.c
index 6282ed2..da54ce9 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -910,7 +910,7 @@ static const char *set_outdir(const char *prefix, const char *output_directory)
 }
 
 static const char * const builtin_format_patch_usage[] = {
-	"git format-patch [options] [<since> | <revision range>]",
+	N_("git format-patch [options] [<since> | <revision range>]"),
 	NULL
 };
 
@@ -1083,61 +1083,61 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
 	char *branch_name = NULL;
 	const struct option builtin_format_patch_options[] = {
 		{ OPTION_CALLBACK, 'n', "numbered", &numbered, NULL,
-			    "use [PATCH n/m] even with a single patch",
+			    N_("use [PATCH n/m] even with a single patch"),
 			    PARSE_OPT_NOARG, numbered_callback },
 		{ OPTION_CALLBACK, 'N', "no-numbered", &numbered, NULL,
-			    "use [PATCH] even with multiple patches",
+			    N_("use [PATCH] even with multiple patches"),
 			    PARSE_OPT_NOARG, no_numbered_callback },
-		OPT_BOOLEAN('s', "signoff", &do_signoff, "add Signed-off-by:"),
+		OPT_BOOLEAN('s', "signoff", &do_signoff, N_("add Signed-off-by:")),
 		OPT_BOOLEAN(0, "stdout", &use_stdout,
-			    "print patches to standard out"),
+			    N_("print patches to standard out")),
 		OPT_BOOLEAN(0, "cover-letter", &cover_letter,
-			    "generate a cover letter"),
+			    N_("generate a cover letter")),
 		OPT_BOOLEAN(0, "numbered-files", &numbered_files,
-			    "use simple number sequence for output file names"),
-		OPT_STRING(0, "suffix", &fmt_patch_suffix, "sfx",
-			    "use <sfx> instead of '.patch'"),
+			    N_("use simple number sequence for output file names")),
+		OPT_STRING(0, "suffix", &fmt_patch_suffix, N_("sfx"),
+			    N_("use <sfx> instead of '.patch'")),
 		OPT_INTEGER(0, "start-number", &start_number,
-			    "start numbering patches at <n> instead of 1"),
-		{ OPTION_CALLBACK, 0, "subject-prefix", &rev, "prefix",
-			    "Use [<prefix>] instead of [PATCH]",
+			    N_("start numbering patches at <n> instead of 1")),
+		{ OPTION_CALLBACK, 0, "subject-prefix", &rev, N_("prefix"),
+			    N_("Use [<prefix>] instead of [PATCH]"),
 			    PARSE_OPT_NONEG, subject_prefix_callback },
 		{ OPTION_CALLBACK, 'o', "output-directory", &output_directory,
-			    "dir", "store resulting files in <dir>",
+			    N_("dir"), N_("store resulting files in <dir>"),
 			    PARSE_OPT_NONEG, output_directory_callback },
 		{ OPTION_CALLBACK, 'k', "keep-subject", &rev, NULL,
-			    "don't strip/add [PATCH]",
+			    N_("don't strip/add [PATCH]"),
 			    PARSE_OPT_NOARG | PARSE_OPT_NONEG, keep_callback },
 		OPT_BOOLEAN(0, "no-binary", &no_binary_diff,
-			    "don't output binary diffs"),
+			    N_("don't output binary diffs")),
 		OPT_BOOLEAN(0, "ignore-if-in-upstream", &ignore_if_in_upstream,
-			    "don't include a patch matching a commit upstream"),
+			    N_("don't include a patch matching a commit upstream")),
 		{ OPTION_BOOLEAN, 'p', "no-stat", &use_patch_format, NULL,
-		  "show patch format instead of default (patch + stat)",
+		  N_("show patch format instead of default (patch + stat)"),
 		  PARSE_OPT_NONEG | PARSE_OPT_NOARG },
-		OPT_GROUP("Messaging"),
-		{ OPTION_CALLBACK, 0, "add-header", NULL, "header",
-			    "add email header", 0, header_callback },
-		{ OPTION_CALLBACK, 0, "to", NULL, "email", "add To: header",
+		OPT_GROUP(N_("Messaging")),
+		{ OPTION_CALLBACK, 0, "add-header", NULL, N_("header"),
+			    N_("add email header"), 0, header_callback },
+		{ OPTION_CALLBACK, 0, "to", NULL, N_("email"), N_("add To: header"),
 			    0, to_callback },
-		{ OPTION_CALLBACK, 0, "cc", NULL, "email", "add Cc: header",
+		{ OPTION_CALLBACK, 0, "cc", NULL, N_("email"), N_("add Cc: header"),
 			    0, cc_callback },
-		OPT_STRING(0, "in-reply-to", &in_reply_to, "message-id",
-			    "make first mail a reply to <message-id>"),
-		{ OPTION_CALLBACK, 0, "attach", &rev, "boundary",
-			    "attach the patch", PARSE_OPT_OPTARG,
+		OPT_STRING(0, "in-reply-to", &in_reply_to, N_("message-id"),
+			    N_("make first mail a reply to <message-id>")),
+		{ OPTION_CALLBACK, 0, "attach", &rev, N_("boundary"),
+			    N_("attach the patch"), PARSE_OPT_OPTARG,
 			    attach_callback },
-		{ OPTION_CALLBACK, 0, "inline", &rev, "boundary",
-			    "inline the patch",
+		{ OPTION_CALLBACK, 0, "inline", &rev, N_("boundary"),
+			    N_("inline the patch"),
 			    PARSE_OPT_OPTARG | PARSE_OPT_NONEG,
 			    inline_callback },
-		{ OPTION_CALLBACK, 0, "thread", &thread, "style",
-			    "enable message threading, styles: shallow, deep",
+		{ OPTION_CALLBACK, 0, "thread", &thread, N_("style"),
+			    N_("enable message threading, styles: shallow, deep"),
 			    PARSE_OPT_OPTARG, thread_callback },
-		OPT_STRING(0, "signature", &signature, "signature",
-			    "add a signature"),
+		OPT_STRING(0, "signature", &signature, N_("signature"),
+			    N_("add a signature")),
 		OPT_BOOLEAN(0, "quiet", &quiet,
-			    "don't print the patch filenames"),
+			    N_("don't print the patch filenames")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 25/65] i18n: fsck: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (20 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 24/65] i18n: format-patch: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 26/65] i18n: gc: " Nguyễn Thái Ngọc Duy
                       ` (41 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/fsck.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/builtin/fsck.c b/builtin/fsck.c
index a710227..bb9a2cd 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -605,23 +605,23 @@ static int fsck_cache_tree(struct cache_tree *it)
 }
 
 static char const * const fsck_usage[] = {
-	"git fsck [options] [<object>...]",
+	N_("git fsck [options] [<object>...]"),
 	NULL
 };
 
 static struct option fsck_opts[] = {
-	OPT__VERBOSE(&verbose, "be verbose"),
-	OPT_BOOLEAN(0, "unreachable", &show_unreachable, "show unreachable objects"),
-	OPT_BOOL(0, "dangling", &show_dangling, "show dangling objects"),
-	OPT_BOOLEAN(0, "tags", &show_tags, "report tags"),
-	OPT_BOOLEAN(0, "root", &show_root, "report root nodes"),
-	OPT_BOOLEAN(0, "cache", &keep_cache_objects, "make index objects head nodes"),
-	OPT_BOOLEAN(0, "reflogs", &include_reflogs, "make reflogs head nodes (default)"),
-	OPT_BOOLEAN(0, "full", &check_full, "also consider packs and alternate objects"),
-	OPT_BOOLEAN(0, "strict", &check_strict, "enable more strict checking"),
+	OPT__VERBOSE(&verbose, N_("be verbose")),
+	OPT_BOOLEAN(0, "unreachable", &show_unreachable, N_("show unreachable objects")),
+	OPT_BOOL(0, "dangling", &show_dangling, N_("show dangling objects")),
+	OPT_BOOLEAN(0, "tags", &show_tags, N_("report tags")),
+	OPT_BOOLEAN(0, "root", &show_root, N_("report root nodes")),
+	OPT_BOOLEAN(0, "cache", &keep_cache_objects, N_("make index objects head nodes")),
+	OPT_BOOLEAN(0, "reflogs", &include_reflogs, N_("make reflogs head nodes (default)")),
+	OPT_BOOLEAN(0, "full", &check_full, N_("also consider packs and alternate objects")),
+	OPT_BOOLEAN(0, "strict", &check_strict, N_("enable more strict checking")),
 	OPT_BOOLEAN(0, "lost-found", &write_lost_and_found,
-				"write dangling objects in .git/lost-found"),
-	OPT_BOOL(0, "progress", &show_progress, "show progress"),
+				N_("write dangling objects in .git/lost-found")),
+	OPT_BOOL(0, "progress", &show_progress, N_("show progress")),
 	OPT_END(),
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 26/65] i18n: gc: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (21 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 25/65] i18n: fsck: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 27/65] i18n: grep: " Nguyễn Thái Ngọc Duy
                       ` (40 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/gc.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/builtin/gc.c b/builtin/gc.c
index 9b4232c..6d46608 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -19,7 +19,7 @@
 #define FAILED_RUN "failed to run %s"
 
 static const char * const builtin_gc_usage[] = {
-	"git gc [options]",
+	N_("git gc [options]"),
 	NULL
 };
 
@@ -174,12 +174,12 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
 	int quiet = 0;
 
 	struct option builtin_gc_options[] = {
-		OPT__QUIET(&quiet, "suppress progress reporting"),
-		{ OPTION_STRING, 0, "prune", &prune_expire, "date",
-			"prune unreferenced objects",
+		OPT__QUIET(&quiet, N_("suppress progress reporting")),
+		{ OPTION_STRING, 0, "prune", &prune_expire, N_("date"),
+			N_("prune unreferenced objects"),
 			PARSE_OPT_OPTARG, NULL, (intptr_t)prune_expire },
-		OPT_BOOLEAN(0, "aggressive", &aggressive, "be more thorough (increased runtime)"),
-		OPT_BOOLEAN(0, "auto", &auto_gc, "enable auto-gc mode"),
+		OPT_BOOLEAN(0, "aggressive", &aggressive, N_("be more thorough (increased runtime)")),
+		OPT_BOOLEAN(0, "auto", &auto_gc, N_("enable auto-gc mode")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 27/65] i18n: grep: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (22 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 26/65] i18n: gc: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 28/65] i18n: hash-object: " Nguyễn Thái Ngọc Duy
                       ` (39 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/grep.c | 90 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 45 insertions(+), 45 deletions(-)

diff --git a/builtin/grep.c b/builtin/grep.c
index fe1726f..c2dfdb0 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -19,7 +19,7 @@
 #include "dir.h"
 
 static char const * const grep_usage[] = {
-	"git grep [options] [-e] <pattern> [<rev>...] [[--] <path>...]",
+	N_("git grep [options] [-e] <pattern> [<rev>...] [[--] <path>...]"),
 	NULL
 };
 
@@ -680,84 +680,84 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 
 	struct option options[] = {
 		OPT_BOOLEAN(0, "cached", &cached,
-			"search in index instead of in the work tree"),
+			N_("search in index instead of in the work tree")),
 		OPT_NEGBIT(0, "no-index", &use_index,
-			 "finds in contents not managed by git", 1),
+			 N_("finds in contents not managed by git"), 1),
 		OPT_BOOLEAN(0, "untracked", &untracked,
-			"search in both tracked and untracked files"),
+			N_("search in both tracked and untracked files")),
 		OPT_SET_INT(0, "exclude-standard", &opt_exclude,
-			    "search also in ignored files", 1),
+			    N_("search also in ignored files"), 1),
 		OPT_GROUP(""),
 		OPT_BOOLEAN('v', "invert-match", &opt.invert,
-			"show non-matching lines"),
+			N_("show non-matching lines")),
 		OPT_BOOLEAN('i', "ignore-case", &opt.ignore_case,
-			"case insensitive matching"),
+			N_("case insensitive matching")),
 		OPT_BOOLEAN('w', "word-regexp", &opt.word_regexp,
-			"match patterns only at word boundaries"),
+			N_("match patterns only at word boundaries")),
 		OPT_SET_INT('a', "text", &opt.binary,
-			"process binary files as text", GREP_BINARY_TEXT),
+			N_("process binary files as text"), GREP_BINARY_TEXT),
 		OPT_SET_INT('I', NULL, &opt.binary,
-			"don't match patterns in binary files",
+			N_("don't match patterns in binary files"),
 			GREP_BINARY_NOMATCH),
-		{ OPTION_INTEGER, 0, "max-depth", &opt.max_depth, "depth",
-			"descend at most <depth> levels", PARSE_OPT_NONEG,
+		{ OPTION_INTEGER, 0, "max-depth", &opt.max_depth, N_("depth"),
+			N_("descend at most <depth> levels"), PARSE_OPT_NONEG,
 			NULL, 1 },
 		OPT_GROUP(""),
 		OPT_SET_INT('E', "extended-regexp", &pattern_type,
-			    "use extended POSIX regular expressions",
+			    N_("use extended POSIX regular expressions"),
 			    pattern_type_ere),
 		OPT_SET_INT('G', "basic-regexp", &pattern_type,
-			    "use basic POSIX regular expressions (default)",
+			    N_("use basic POSIX regular expressions (default)"),
 			    pattern_type_bre),
 		OPT_SET_INT('F', "fixed-strings", &pattern_type,
-			    "interpret patterns as fixed strings",
+			    N_("interpret patterns as fixed strings"),
 			    pattern_type_fixed),
 		OPT_SET_INT('P', "perl-regexp", &pattern_type,
-			    "use Perl-compatible regular expressions",
+			    N_("use Perl-compatible regular expressions"),
 			    pattern_type_pcre),
 		OPT_GROUP(""),
-		OPT_BOOLEAN('n', "line-number", &opt.linenum, "show line numbers"),
-		OPT_NEGBIT('h', NULL, &opt.pathname, "don't show filenames", 1),
-		OPT_BIT('H', NULL, &opt.pathname, "show filenames", 1),
+		OPT_BOOLEAN('n', "line-number", &opt.linenum, N_("show line numbers")),
+		OPT_NEGBIT('h', NULL, &opt.pathname, N_("don't show filenames"), 1),
+		OPT_BIT('H', NULL, &opt.pathname, N_("show filenames"), 1),
 		OPT_NEGBIT(0, "full-name", &opt.relative,
-			"show filenames relative to top directory", 1),
+			N_("show filenames relative to top directory"), 1),
 		OPT_BOOLEAN('l', "files-with-matches", &opt.name_only,
-			"show only filenames instead of matching lines"),
+			N_("show only filenames instead of matching lines")),
 		OPT_BOOLEAN(0, "name-only", &opt.name_only,
-			"synonym for --files-with-matches"),
+			N_("synonym for --files-with-matches")),
 		OPT_BOOLEAN('L', "files-without-match",
 			&opt.unmatch_name_only,
-			"show only the names of files without match"),
+			N_("show only the names of files without match")),
 		OPT_BOOLEAN('z', "null", &opt.null_following_name,
-			"print NUL after filenames"),
+			N_("print NUL after filenames")),
 		OPT_BOOLEAN('c', "count", &opt.count,
-			"show the number of matches instead of matching lines"),
-		OPT__COLOR(&opt.color, "highlight matches"),
+			N_("show the number of matches instead of matching lines")),
+		OPT__COLOR(&opt.color, N_("highlight matches")),
 		OPT_BOOLEAN(0, "break", &opt.file_break,
-			"print empty line between matches from different files"),
+			N_("print empty line between matches from different files")),
 		OPT_BOOLEAN(0, "heading", &opt.heading,
-			"show filename only once above matches from same file"),
+			N_("show filename only once above matches from same file")),
 		OPT_GROUP(""),
-		OPT_CALLBACK('C', "context", &opt, "n",
-			"show <n> context lines before and after matches",
+		OPT_CALLBACK('C', "context", &opt, N_("n"),
+			N_("show <n> context lines before and after matches"),
 			context_callback),
 		OPT_INTEGER('B', "before-context", &opt.pre_context,
-			"show <n> context lines before matches"),
+			N_("show <n> context lines before matches")),
 		OPT_INTEGER('A', "after-context", &opt.post_context,
-			"show <n> context lines after matches"),
-		OPT_NUMBER_CALLBACK(&opt, "shortcut for -C NUM",
+			N_("show <n> context lines after matches")),
+		OPT_NUMBER_CALLBACK(&opt, N_("shortcut for -C NUM"),
 			context_callback),
 		OPT_BOOLEAN('p', "show-function", &opt.funcname,
-			"show a line with the function name before matches"),
+			N_("show a line with the function name before matches")),
 		OPT_BOOLEAN('W', "function-context", &opt.funcbody,
-			"show the surrounding function"),
+			N_("show the surrounding function")),
 		OPT_GROUP(""),
-		OPT_CALLBACK('f', NULL, &opt, "file",
-			"read patterns from file", file_callback),
-		{ OPTION_CALLBACK, 'e', NULL, &opt, "pattern",
-			"match <pattern>", PARSE_OPT_NONEG, pattern_callback },
+		OPT_CALLBACK('f', NULL, &opt, N_("file"),
+			N_("read patterns from file"), file_callback),
+		{ OPTION_CALLBACK, 'e', NULL, &opt, N_("pattern"),
+			N_("match <pattern>"), PARSE_OPT_NONEG, pattern_callback },
 		{ OPTION_CALLBACK, 0, "and", &opt, NULL,
-		  "combine patterns specified with -e",
+		  N_("combine patterns specified with -e"),
 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, and_callback },
 		OPT_BOOLEAN(0, "or", &dummy, ""),
 		{ OPTION_CALLBACK, 0, "not", &opt, NULL, "",
@@ -769,16 +769,16 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG | PARSE_OPT_NODASH,
 		  close_callback },
 		OPT__QUIET(&opt.status_only,
-			   "indicate hit with exit status without output"),
+			   N_("indicate hit with exit status without output")),
 		OPT_BOOLEAN(0, "all-match", &opt.all_match,
-			"show only matches from files that match all patterns"),
+			N_("show only matches from files that match all patterns")),
 		OPT_GROUP(""),
 		{ OPTION_STRING, 'O', "open-files-in-pager", &show_in_pager,
-			"pager", "show matching files in the pager",
+			N_("pager"), N_("show matching files in the pager"),
 			PARSE_OPT_OPTARG, NULL, (intptr_t)default_pager },
 		OPT_BOOLEAN(0, "ext-grep", &external_grep_allowed__ignored,
-			    "allow calling of grep(1) (ignored by this build)"),
-		{ OPTION_CALLBACK, 0, "help-all", &options, NULL, "show usage",
+			    N_("allow calling of grep(1) (ignored by this build)")),
+		{ OPTION_CALLBACK, 0, "help-all", &options, NULL, N_("show usage"),
 		  PARSE_OPT_HIDDEN | PARSE_OPT_NOARG, help_callback },
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 28/65] i18n: hash-object: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (23 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 27/65] i18n: grep: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 29/65] i18n: help: " Nguyễn Thái Ngọc Duy
                       ` (38 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/hash-object.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/builtin/hash-object.c b/builtin/hash-object.c
index 33911fd..8d184f1 100644
--- a/builtin/hash-object.c
+++ b/builtin/hash-object.c
@@ -57,8 +57,8 @@ static void hash_stdin_paths(const char *type, int write_objects)
 }
 
 static const char * const hash_object_usage[] = {
-	"git hash-object [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] <file>...",
-	"git hash-object  --stdin-paths < <list-of-paths>",
+	N_("git hash-object [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] <file>..."),
+	N_("git hash-object  --stdin-paths < <list-of-paths>"),
 	NULL
 };
 
@@ -69,12 +69,12 @@ static int stdin_paths;
 static const char *vpath;
 
 static const struct option hash_object_options[] = {
-	OPT_STRING('t', NULL, &type, "type", "object type"),
-	OPT_BOOLEAN('w', NULL, &write_object, "write the object into the object database"),
-	OPT_BOOLEAN( 0 , "stdin", &hashstdin, "read the object from stdin"),
-	OPT_BOOLEAN( 0 , "stdin-paths", &stdin_paths, "read file names from stdin"),
-	OPT_BOOLEAN( 0 , "no-filters", &no_filters, "store file as is without filters"),
-	OPT_STRING( 0 , "path", &vpath, "file", "process file as it were from this path"),
+	OPT_STRING('t', NULL, &type, N_("type"), N_("object type")),
+	OPT_BOOLEAN('w', NULL, &write_object, N_("write the object into the object database")),
+	OPT_BOOLEAN( 0 , "stdin", &hashstdin, N_("read the object from stdin")),
+	OPT_BOOLEAN( 0 , "stdin-paths", &stdin_paths, N_("read file names from stdin")),
+	OPT_BOOLEAN( 0 , "no-filters", &no_filters, N_("store file as is without filters")),
+	OPT_STRING( 0 , "path", &vpath, N_("file"), N_("process file as it were from this path")),
 	OPT_END()
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 29/65] i18n: help: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (24 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 28/65] i18n: hash-object: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 30/65] i18n: init-db: " Nguyễn Thái Ngọc Duy
                       ` (37 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/help.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/builtin/help.c b/builtin/help.c
index 43d3c84..05ddd76 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -34,17 +34,17 @@ static int show_all = 0;
 static unsigned int colopts;
 static enum help_format help_format = HELP_FORMAT_NONE;
 static struct option builtin_help_options[] = {
-	OPT_BOOLEAN('a', "all", &show_all, "print all available commands"),
-	OPT_SET_INT('m', "man", &help_format, "show man page", HELP_FORMAT_MAN),
-	OPT_SET_INT('w', "web", &help_format, "show manual in web browser",
+	OPT_BOOLEAN('a', "all", &show_all, N_("print all available commands")),
+	OPT_SET_INT('m', "man", &help_format, N_("show man page"), HELP_FORMAT_MAN),
+	OPT_SET_INT('w', "web", &help_format, N_("show manual in web browser"),
 			HELP_FORMAT_WEB),
-	OPT_SET_INT('i', "info", &help_format, "show info page",
+	OPT_SET_INT('i', "info", &help_format, N_("show info page"),
 			HELP_FORMAT_INFO),
 	OPT_END(),
 };
 
 static const char * const builtin_help_usage[] = {
-	"git help [--all] [--man|--web|--info] [command]",
+	N_("git help [--all] [--man|--web|--info] [command]"),
 	NULL
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 30/65] i18n: init-db: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (25 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 29/65] i18n: help: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 31/65] i18n: log: " Nguyễn Thái Ngọc Duy
                       ` (36 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/init-db.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/builtin/init-db.c b/builtin/init-db.c
index 0dacb8b..08854d5 100644
--- a/builtin/init-db.c
+++ b/builtin/init-db.c
@@ -463,7 +463,7 @@ static int shared_callback(const struct option *opt, const char *arg, int unset)
 }
 
 static const char *const init_db_usage[] = {
-	"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [directory]",
+	N_("git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [directory]"),
 	NULL
 };
 
@@ -481,17 +481,17 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
 	const char *template_dir = NULL;
 	unsigned int flags = 0;
 	const struct option init_db_options[] = {
-		OPT_STRING(0, "template", &template_dir, "template-directory",
-				"directory from which templates will be used"),
+		OPT_STRING(0, "template", &template_dir, N_("template-directory"),
+				N_("directory from which templates will be used")),
 		OPT_SET_INT(0, "bare", &is_bare_repository_cfg,
-				"create a bare repository", 1),
+				N_("create a bare repository"), 1),
 		{ OPTION_CALLBACK, 0, "shared", &init_shared_repository,
-			"permissions",
-			"specify that the git repository is to be shared amongst several users",
+			N_("permissions"),
+			N_("specify that the git repository is to be shared amongst several users"),
 			PARSE_OPT_OPTARG | PARSE_OPT_NONEG, shared_callback, 0},
-		OPT_BIT('q', "quiet", &flags, "be quiet", INIT_DB_QUIET),
-		OPT_STRING(0, "separate-git-dir", &real_git_dir, "gitdir",
-			   "separate git dir from working tree"),
+		OPT_BIT('q', "quiet", &flags, N_("be quiet"), INIT_DB_QUIET),
+		OPT_STRING(0, "separate-git-dir", &real_git_dir, N_("gitdir"),
+			   N_("separate git dir from working tree")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 31/65] i18n: log: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (26 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 30/65] i18n: init-db: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 32/65] i18n: ls-files: " Nguyễn Thái Ngọc Duy
                       ` (35 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/log.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/builtin/log.c b/builtin/log.c
index da54ce9..09d9a01 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -33,8 +33,8 @@ static const char *fmt_patch_subject_prefix = "PATCH";
 static const char *fmt_pretty;
 
 static const char * const builtin_log_usage[] = {
-	"git log [<options>] [<since>..<until>] [[--] <path>...]\n"
-	"   or: git show [options] <object>...",
+	N_("git log [<options>] [<since>..<until>] [[--] <path>...]\n")
+	N_("   or: git show [options] <object>..."),
 	NULL
 };
 
@@ -96,9 +96,9 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
 	int quiet = 0, source = 0;
 
 	const struct option builtin_log_options[] = {
-		OPT_BOOLEAN(0, "quiet", &quiet, "suppress diff output"),
-		OPT_BOOLEAN(0, "source", &source, "show source"),
-		{ OPTION_CALLBACK, 0, "decorate", NULL, NULL, "decorate options",
+		OPT_BOOLEAN(0, "quiet", &quiet, N_("suppress diff output")),
+		OPT_BOOLEAN(0, "source", &source, N_("show source")),
+		{ OPTION_CALLBACK, 0, "decorate", NULL, NULL, N_("decorate options"),
 		  PARSE_OPT_OPTARG, decorate_callback},
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 32/65] i18n: ls-files: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (27 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 31/65] i18n: log: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 33/65] i18n: ls-tree: " Nguyễn Thái Ngọc Duy
                       ` (34 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/ls-files.c | 54 +++++++++++++++++++++++++++---------------------------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index 7cff175..23ba31c 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -394,7 +394,7 @@ int report_path_error(const char *ps_matched, const char **pathspec, const char
 }
 
 static const char * const ls_files_usage[] = {
-	"git ls-files [options] [<file>...]",
+	N_("git ls-files [options] [<file>...]"),
 	NULL
 };
 
@@ -446,57 +446,57 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
 	struct dir_struct dir;
 	struct option builtin_ls_files_options[] = {
 		{ OPTION_CALLBACK, 'z', NULL, NULL, NULL,
-			"paths are separated with NUL character",
+			N_("paths are separated with NUL character"),
 			PARSE_OPT_NOARG, option_parse_z },
 		OPT_BOOLEAN('t', NULL, &show_tag,
-			"identify the file status with tags"),
+			N_("identify the file status with tags")),
 		OPT_BOOLEAN('v', NULL, &show_valid_bit,
-			"use lowercase letters for 'assume unchanged' files"),
+			N_("use lowercase letters for 'assume unchanged' files")),
 		OPT_BOOLEAN('c', "cached", &show_cached,
-			"show cached files in the output (default)"),
+			N_("show cached files in the output (default)")),
 		OPT_BOOLEAN('d', "deleted", &show_deleted,
-			"show deleted files in the output"),
+			N_("show deleted files in the output")),
 		OPT_BOOLEAN('m', "modified", &show_modified,
-			"show modified files in the output"),
+			N_("show modified files in the output")),
 		OPT_BOOLEAN('o', "others", &show_others,
-			"show other files in the output"),
+			N_("show other files in the output")),
 		OPT_BIT('i', "ignored", &dir.flags,
-			"show ignored files in the output",
+			N_("show ignored files in the output"),
 			DIR_SHOW_IGNORED),
 		OPT_BOOLEAN('s', "stage", &show_stage,
-			"show staged contents' object name in the output"),
+			N_("show staged contents' object name in the output")),
 		OPT_BOOLEAN('k', "killed", &show_killed,
-			"show files on the filesystem that need to be removed"),
+			N_("show files on the filesystem that need to be removed")),
 		OPT_BIT(0, "directory", &dir.flags,
-			"show 'other' directories' name only",
+			N_("show 'other' directories' name only"),
 			DIR_SHOW_OTHER_DIRECTORIES),
 		OPT_NEGBIT(0, "empty-directory", &dir.flags,
-			"don't show empty directories",
+			N_("don't show empty directories"),
 			DIR_HIDE_EMPTY_DIRECTORIES),
 		OPT_BOOLEAN('u', "unmerged", &show_unmerged,
-			"show unmerged files in the output"),
+			N_("show unmerged files in the output")),
 		OPT_BOOLEAN(0, "resolve-undo", &show_resolve_undo,
-			    "show resolve-undo information"),
-		{ OPTION_CALLBACK, 'x', "exclude", &dir.exclude_list[EXC_CMDL], "pattern",
-			"skip files matching pattern",
+			    N_("show resolve-undo information")),
+		{ OPTION_CALLBACK, 'x', "exclude", &dir.exclude_list[EXC_CMDL], N_("pattern"),
+			N_("skip files matching pattern"),
 			0, option_parse_exclude },
-		{ OPTION_CALLBACK, 'X', "exclude-from", &dir, "file",
-			"exclude patterns are read from <file>",
+		{ OPTION_CALLBACK, 'X', "exclude-from", &dir, N_("file"),
+			N_("exclude patterns are read from <file>"),
 			0, option_parse_exclude_from },
-		OPT_STRING(0, "exclude-per-directory", &dir.exclude_per_dir, "file",
-			"read additional per-directory exclude patterns in <file>"),
+		OPT_STRING(0, "exclude-per-directory", &dir.exclude_per_dir, N_("file"),
+			N_("read additional per-directory exclude patterns in <file>")),
 		{ OPTION_CALLBACK, 0, "exclude-standard", &dir, NULL,
-			"add the standard git exclusions",
+			N_("add the standard git exclusions"),
 			PARSE_OPT_NOARG, option_parse_exclude_standard },
 		{ OPTION_SET_INT, 0, "full-name", &prefix_len, NULL,
-			"make the output relative to the project top directory",
+			N_("make the output relative to the project top directory"),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL },
 		OPT_BOOLEAN(0, "error-unmatch", &error_unmatch,
-			"if any <file> is not in the index, treat this as an error"),
-		OPT_STRING(0, "with-tree", &with_tree, "tree-ish",
-			"pretend that paths removed since <tree-ish> are still present"),
+			N_("if any <file> is not in the index, treat this as an error")),
+		OPT_STRING(0, "with-tree", &with_tree, N_("tree-ish"),
+			N_("pretend that paths removed since <tree-ish> are still present")),
 		OPT__ABBREV(&abbrev),
-		OPT_BOOLEAN(0, "debug", &debug_mode, "show debugging data"),
+		OPT_BOOLEAN(0, "debug", &debug_mode, N_("show debugging data")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 33/65] i18n: ls-tree: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (28 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 32/65] i18n: ls-files: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 34/65] i18n: merge-base: " Nguyễn Thái Ngọc Duy
                       ` (33 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/ls-tree.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index 6b666e1..235c17c 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -24,7 +24,7 @@ static int chomp_prefix;
 static const char *ls_tree_prefix;
 
 static const  char * const ls_tree_usage[] = {
-	"git ls-tree [<options>] <tree-ish> [<path>...]",
+	N_("git ls-tree [<options>] <tree-ish> [<path>...]"),
 	NULL
 };
 
@@ -122,25 +122,25 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix)
 	struct tree *tree;
 	int i, full_tree = 0;
 	const struct option ls_tree_options[] = {
-		OPT_BIT('d', NULL, &ls_options, "only show trees",
+		OPT_BIT('d', NULL, &ls_options, N_("only show trees"),
 			LS_TREE_ONLY),
-		OPT_BIT('r', NULL, &ls_options, "recurse into subtrees",
+		OPT_BIT('r', NULL, &ls_options, N_("recurse into subtrees"),
 			LS_RECURSIVE),
-		OPT_BIT('t', NULL, &ls_options, "show trees when recursing",
+		OPT_BIT('t', NULL, &ls_options, N_("show trees when recursing"),
 			LS_SHOW_TREES),
 		OPT_SET_INT('z', NULL, &line_termination,
-			    "terminate entries with NUL byte", 0),
-		OPT_BIT('l', "long", &ls_options, "include object size",
+			    N_("terminate entries with NUL byte"), 0),
+		OPT_BIT('l', "long", &ls_options, N_("include object size"),
 			LS_SHOW_SIZE),
-		OPT_BIT(0, "name-only", &ls_options, "list only filenames",
+		OPT_BIT(0, "name-only", &ls_options, N_("list only filenames"),
 			LS_NAME_ONLY),
-		OPT_BIT(0, "name-status", &ls_options, "list only filenames",
+		OPT_BIT(0, "name-status", &ls_options, N_("list only filenames"),
 			LS_NAME_ONLY),
 		OPT_SET_INT(0, "full-name", &chomp_prefix,
-			    "use full path names", 0),
+			    N_("use full path names"), 0),
 		OPT_BOOLEAN(0, "full-tree", &full_tree,
-			    "list entire tree; not just current directory "
-			    "(implies --full-name)"),
+			    N_("list entire tree; not just current directory "
+			       "(implies --full-name)")),
 		OPT__ABBREV(&abbrev),
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 34/65] i18n: merge-base: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (29 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 33/65] i18n: ls-tree: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 35/65] i18n: merge-file: " Nguyễn Thái Ngọc Duy
                       ` (32 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/merge-base.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/builtin/merge-base.c b/builtin/merge-base.c
index 4f30f1b..2f223a6 100644
--- a/builtin/merge-base.c
+++ b/builtin/merge-base.c
@@ -23,9 +23,9 @@ static int show_merge_base(struct commit **rev, int rev_nr, int show_all)
 }
 
 static const char * const merge_base_usage[] = {
-	"git merge-base [-a|--all] <commit> <commit>...",
-	"git merge-base [-a|--all] --octopus <commit>...",
-	"git merge-base --independent <commit>...",
+	N_("git merge-base [-a|--all] <commit> <commit>..."),
+	N_("git merge-base [-a|--all] --octopus <commit>..."),
+	N_("git merge-base --independent <commit>..."),
 	NULL
 };
 
@@ -79,9 +79,9 @@ int cmd_merge_base(int argc, const char **argv, const char *prefix)
 	int reduce = 0;
 
 	struct option options[] = {
-		OPT_BOOLEAN('a', "all", &show_all, "output all common ancestors"),
-		OPT_BOOLEAN(0, "octopus", &octopus, "find ancestors for a single n-way merge"),
-		OPT_BOOLEAN(0, "independent", &reduce, "list revs not reachable from others"),
+		OPT_BOOLEAN('a', "all", &show_all, N_("output all common ancestors")),
+		OPT_BOOLEAN(0, "octopus", &octopus, N_("find ancestors for a single n-way merge")),
+		OPT_BOOLEAN(0, "independent", &reduce, N_("list revs not reachable from others")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 35/65] i18n: merge-file: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (30 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 34/65] i18n: merge-base: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 36/65] i18n: merge: " Nguyễn Thái Ngọc Duy
                       ` (31 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/merge-file.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/builtin/merge-file.c b/builtin/merge-file.c
index 6f0efef..c0570f2 100644
--- a/builtin/merge-file.c
+++ b/builtin/merge-file.c
@@ -5,7 +5,7 @@
 #include "parse-options.h"
 
 static const char *const merge_file_usage[] = {
-	"git merge-file [options] [-L name1 [-L orig [-L name2]]] file1 orig_file file2",
+	N_("git merge-file [options] [-L name1 [-L orig [-L name2]]] file1 orig_file file2"),
 	NULL
 };
 
@@ -30,19 +30,19 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
 	int quiet = 0;
 	int prefixlen = 0;
 	struct option options[] = {
-		OPT_BOOLEAN('p', "stdout", &to_stdout, "send results to standard output"),
-		OPT_SET_INT(0, "diff3", &xmp.style, "use a diff3 based merge", XDL_MERGE_DIFF3),
-		OPT_SET_INT(0, "ours", &xmp.favor, "for conflicts, use our version",
+		OPT_BOOLEAN('p', "stdout", &to_stdout, N_("send results to standard output")),
+		OPT_SET_INT(0, "diff3", &xmp.style, N_("use a diff3 based merge"), XDL_MERGE_DIFF3),
+		OPT_SET_INT(0, "ours", &xmp.favor, N_("for conflicts, use our version"),
 			    XDL_MERGE_FAVOR_OURS),
-		OPT_SET_INT(0, "theirs", &xmp.favor, "for conflicts, use their version",
+		OPT_SET_INT(0, "theirs", &xmp.favor, N_("for conflicts, use their version"),
 			    XDL_MERGE_FAVOR_THEIRS),
-		OPT_SET_INT(0, "union", &xmp.favor, "for conflicts, use a union version",
+		OPT_SET_INT(0, "union", &xmp.favor, N_("for conflicts, use a union version"),
 			    XDL_MERGE_FAVOR_UNION),
 		OPT_INTEGER(0, "marker-size", &xmp.marker_size,
-			    "for conflicts, use this marker size"),
-		OPT__QUIET(&quiet, "do not warn about conflicts"),
-		OPT_CALLBACK('L', NULL, names, "name",
-			     "set labels for file1/orig_file/file2", &label_cb),
+			    N_("for conflicts, use this marker size")),
+		OPT__QUIET(&quiet, N_("do not warn about conflicts")),
+		OPT_CALLBACK('L', NULL, names, N_("name"),
+			     N_("set labels for file1/orig_file/file2"), &label_cb),
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 36/65] i18n: merge: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (31 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 35/65] i18n: merge-file: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 37/65] i18n: mktree: " Nguyễn Thái Ngọc Duy
                       ` (30 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/merge.c | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/builtin/merge.c b/builtin/merge.c
index 470fc57..9b0d37b 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -40,9 +40,9 @@ struct strategy {
 };
 
 static const char * const builtin_merge_usage[] = {
-	"git merge [options] [<commit>...]",
-	"git merge [options] <msg> HEAD <commit>",
-	"git merge --abort",
+	N_("git merge [options] [<commit>...]"),
+	N_("git merge [options] <msg> HEAD <commit>"),
+	N_("git merge --abort"),
 	NULL
 };
 
@@ -180,39 +180,39 @@ static int option_parse_n(const struct option *opt,
 
 static struct option builtin_merge_options[] = {
 	{ OPTION_CALLBACK, 'n', NULL, NULL, NULL,
-		"do not show a diffstat at the end of the merge",
+		N_("do not show a diffstat at the end of the merge"),
 		PARSE_OPT_NOARG, option_parse_n },
 	OPT_BOOLEAN(0, "stat", &show_diffstat,
-		"show a diffstat at the end of the merge"),
-	OPT_BOOLEAN(0, "summary", &show_diffstat, "(synonym to --stat)"),
-	{ OPTION_INTEGER, 0, "log", &shortlog_len, "n",
-	  "add (at most <n>) entries from shortlog to merge commit message",
+		N_("show a diffstat at the end of the merge")),
+	OPT_BOOLEAN(0, "summary", &show_diffstat, N_("(synonym to --stat)")),
+	{ OPTION_INTEGER, 0, "log", &shortlog_len, N_("n"),
+	  N_("add (at most <n>) entries from shortlog to merge commit message"),
 	  PARSE_OPT_OPTARG, NULL, DEFAULT_MERGE_LOG_LEN },
 	OPT_BOOLEAN(0, "squash", &squash,
-		"create a single commit instead of doing a merge"),
+		N_("create a single commit instead of doing a merge")),
 	OPT_BOOLEAN(0, "commit", &option_commit,
-		"perform a commit if the merge succeeds (default)"),
+		N_("perform a commit if the merge succeeds (default)")),
 	OPT_BOOL('e', "edit", &option_edit,
-		"edit message before committing"),
+		N_("edit message before committing")),
 	OPT_BOOLEAN(0, "ff", &allow_fast_forward,
-		"allow fast-forward (default)"),
+		N_("allow fast-forward (default)")),
 	OPT_BOOLEAN(0, "ff-only", &fast_forward_only,
-		"abort if fast-forward is not possible"),
+		N_("abort if fast-forward is not possible")),
 	OPT_RERERE_AUTOUPDATE(&allow_rerere_auto),
-	OPT_CALLBACK('s', "strategy", &use_strategies, "strategy",
-		"merge strategy to use", option_parse_strategy),
-	OPT_CALLBACK('X', "strategy-option", &xopts, "option=value",
-		"option for selected merge strategy", option_parse_x),
-	OPT_CALLBACK('m', "message", &merge_msg, "message",
-		"merge commit message (for a non-fast-forward merge)",
+	OPT_CALLBACK('s', "strategy", &use_strategies, N_("strategy"),
+		N_("merge strategy to use"), option_parse_strategy),
+	OPT_CALLBACK('X', "strategy-option", &xopts, N_("option=value"),
+		N_("option for selected merge strategy"), option_parse_x),
+	OPT_CALLBACK('m', "message", &merge_msg, N_("message"),
+		N_("merge commit message (for a non-fast-forward merge)"),
 		option_parse_message),
 	OPT__VERBOSITY(&verbosity),
 	OPT_BOOLEAN(0, "abort", &abort_current_merge,
-		"abort the current in-progress merge"),
-	OPT_SET_INT(0, "progress", &show_progress, "force progress reporting", 1),
-	{ OPTION_STRING, 'S', "gpg-sign", &sign_commit, "key id",
-	  "GPG sign commit", PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
-	OPT_BOOLEAN(0, "overwrite-ignore", &overwrite_ignore, "update ignored files (default)"),
+		N_("abort the current in-progress merge")),
+	OPT_SET_INT(0, "progress", &show_progress, N_("force progress reporting"), 1),
+	{ OPTION_STRING, 'S', "gpg-sign", &sign_commit, N_("key id"),
+	  N_("GPG sign commit"), PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
+	OPT_BOOLEAN(0, "overwrite-ignore", &overwrite_ignore, N_("update ignored files (default)")),
 	OPT_END()
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 37/65] i18n: mktree: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (32 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 36/65] i18n: merge: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 38/65] i18n: mv: " Nguyễn Thái Ngọc Duy
                       ` (29 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/mktree.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/builtin/mktree.c b/builtin/mktree.c
index 4ae1c41..f92ba40 100644
--- a/builtin/mktree.c
+++ b/builtin/mktree.c
@@ -64,7 +64,7 @@ static void write_tree(unsigned char *sha1)
 }
 
 static const char *mktree_usage[] = {
-	"git mktree [-z] [--missing] [--batch]",
+	N_("git mktree [-z] [--missing] [--batch]"),
 	NULL
 };
 
@@ -150,9 +150,9 @@ int cmd_mktree(int ac, const char **av, const char *prefix)
 	int got_eof = 0;
 
 	const struct option option[] = {
-		OPT_SET_INT('z', NULL, &line_termination, "input is NUL terminated", '\0'),
-		OPT_SET_INT( 0 , "missing", &allow_missing, "allow missing objects", 1),
-		OPT_SET_INT( 0 , "batch", &is_batch_mode, "allow creation of more than one tree", 1),
+		OPT_SET_INT('z', NULL, &line_termination, N_("input is NUL terminated"), '\0'),
+		OPT_SET_INT( 0 , "missing", &allow_missing, N_("allow missing objects"), 1),
+		OPT_SET_INT( 0 , "batch", &is_batch_mode, N_("allow creation of more than one tree"), 1),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 38/65] i18n: mv: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (33 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 37/65] i18n: mktree: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 39/65] i18n: name-rev: " Nguyễn Thái Ngọc Duy
                       ` (28 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/mv.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/builtin/mv.c b/builtin/mv.c
index 2a144b0..034fec9 100644
--- a/builtin/mv.c
+++ b/builtin/mv.c
@@ -11,7 +11,7 @@
 #include "parse-options.h"
 
 static const char * const builtin_mv_usage[] = {
-	"git mv [options] <source>... <destination>",
+	N_("git mv [options] <source>... <destination>"),
 	NULL
 };
 
@@ -59,10 +59,10 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
 	int i, newfd;
 	int verbose = 0, show_only = 0, force = 0, ignore_errors = 0;
 	struct option builtin_mv_options[] = {
-		OPT__VERBOSE(&verbose, "be verbose"),
-		OPT__DRY_RUN(&show_only, "dry run"),
-		OPT__FORCE(&force, "force move/rename even if target exists"),
-		OPT_BOOLEAN('k', NULL, &ignore_errors, "skip move/rename errors"),
+		OPT__VERBOSE(&verbose, N_("be verbose")),
+		OPT__DRY_RUN(&show_only, N_("dry run")),
+		OPT__FORCE(&force, N_("force move/rename even if target exists")),
+		OPT_BOOLEAN('k', NULL, &ignore_errors, N_("skip move/rename errors")),
 		OPT_END(),
 	};
 	const char **source, **destination, **dest_path;
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 39/65] i18n: name-rev: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (34 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 38/65] i18n: mv: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 40/65] i18n: notes: " Nguyễn Thái Ngọc Duy
                       ` (27 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/name-rev.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index 1b37458..6238247 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -172,9 +172,9 @@ static void show_name(const struct object *obj,
 }
 
 static char const * const name_rev_usage[] = {
-	"git name-rev [options] <commit>...",
-	"git name-rev [options] --all",
-	"git name-rev [options] --stdin",
+	N_("git name-rev [options] <commit>..."),
+	N_("git name-rev [options] --all"),
+	N_("git name-rev [options] --stdin"),
 	NULL
 };
 
@@ -226,16 +226,16 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
 	int all = 0, transform_stdin = 0, allow_undefined = 1, always = 0;
 	struct name_ref_data data = { 0, 0, NULL };
 	struct option opts[] = {
-		OPT_BOOLEAN(0, "name-only", &data.name_only, "print only names (no SHA-1)"),
-		OPT_BOOLEAN(0, "tags", &data.tags_only, "only use tags to name the commits"),
-		OPT_STRING(0, "refs", &data.ref_filter, "pattern",
-				   "only use refs matching <pattern>"),
+		OPT_BOOLEAN(0, "name-only", &data.name_only, N_("print only names (no SHA-1)")),
+		OPT_BOOLEAN(0, "tags", &data.tags_only, N_("only use tags to name the commits")),
+		OPT_STRING(0, "refs", &data.ref_filter, N_("pattern"),
+				   N_("only use refs matching <pattern>")),
 		OPT_GROUP(""),
-		OPT_BOOLEAN(0, "all", &all, "list all commits reachable from all refs"),
-		OPT_BOOLEAN(0, "stdin", &transform_stdin, "read from stdin"),
-		OPT_BOOLEAN(0, "undefined", &allow_undefined, "allow to print `undefined` names"),
+		OPT_BOOLEAN(0, "all", &all, N_("list all commits reachable from all refs")),
+		OPT_BOOLEAN(0, "stdin", &transform_stdin, N_("read from stdin")),
+		OPT_BOOLEAN(0, "undefined", &allow_undefined, N_("allow to print `undefined` names")),
 		OPT_BOOLEAN(0, "always",     &always,
-			   "show abbreviated commit object as fallback"),
+			   N_("show abbreviated commit object as fallback")),
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 40/65] i18n: notes: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (35 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 39/65] i18n: name-rev: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 41/65] i18n: pack-objects: " Nguyễn Thái Ngọc Duy
                       ` (26 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/notes.c | 120 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 60 insertions(+), 60 deletions(-)

diff --git a/builtin/notes.c b/builtin/notes.c
index 3644d14..423c6e8 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -20,71 +20,71 @@
 #include "notes-merge.h"
 
 static const char * const git_notes_usage[] = {
-	"git notes [--ref <notes_ref>] [list [<object>]]",
-	"git notes [--ref <notes_ref>] add [-f] [-m <msg> | -F <file> | (-c | -C) <object>] [<object>]",
-	"git notes [--ref <notes_ref>] copy [-f] <from-object> <to-object>",
-	"git notes [--ref <notes_ref>] append [-m <msg> | -F <file> | (-c | -C) <object>] [<object>]",
-	"git notes [--ref <notes_ref>] edit [<object>]",
-	"git notes [--ref <notes_ref>] show [<object>]",
-	"git notes [--ref <notes_ref>] merge [-v | -q] [-s <strategy> ] <notes_ref>",
-	"git notes merge --commit [-v | -q]",
-	"git notes merge --abort [-v | -q]",
-	"git notes [--ref <notes_ref>] remove [<object>...]",
-	"git notes [--ref <notes_ref>] prune [-n | -v]",
-	"git notes [--ref <notes_ref>] get-ref",
+	N_("git notes [--ref <notes_ref>] [list [<object>]]"),
+	N_("git notes [--ref <notes_ref>] add [-f] [-m <msg> | -F <file> | (-c | -C) <object>] [<object>]"),
+	N_("git notes [--ref <notes_ref>] copy [-f] <from-object> <to-object>"),
+	N_("git notes [--ref <notes_ref>] append [-m <msg> | -F <file> | (-c | -C) <object>] [<object>]"),
+	N_("git notes [--ref <notes_ref>] edit [<object>]"),
+	N_("git notes [--ref <notes_ref>] show [<object>]"),
+	N_("git notes [--ref <notes_ref>] merge [-v | -q] [-s <strategy> ] <notes_ref>"),
+	N_("git notes merge --commit [-v | -q]"),
+	N_("git notes merge --abort [-v | -q]"),
+	N_("git notes [--ref <notes_ref>] remove [<object>...]"),
+	N_("git notes [--ref <notes_ref>] prune [-n | -v]"),
+	N_("git notes [--ref <notes_ref>] get-ref"),
 	NULL
 };
 
 static const char * const git_notes_list_usage[] = {
-	"git notes [list [<object>]]",
+	N_("git notes [list [<object>]]"),
 	NULL
 };
 
 static const char * const git_notes_add_usage[] = {
-	"git notes add [<options>] [<object>]",
+	N_("git notes add [<options>] [<object>]"),
 	NULL
 };
 
 static const char * const git_notes_copy_usage[] = {
-	"git notes copy [<options>] <from-object> <to-object>",
-	"git notes copy --stdin [<from-object> <to-object>]...",
+	N_("git notes copy [<options>] <from-object> <to-object>"),
+	N_("git notes copy --stdin [<from-object> <to-object>]..."),
 	NULL
 };
 
 static const char * const git_notes_append_usage[] = {
-	"git notes append [<options>] [<object>]",
+	N_("git notes append [<options>] [<object>]"),
 	NULL
 };
 
 static const char * const git_notes_edit_usage[] = {
-	"git notes edit [<object>]",
+	N_("git notes edit [<object>]"),
 	NULL
 };
 
 static const char * const git_notes_show_usage[] = {
-	"git notes show [<object>]",
+	N_("git notes show [<object>]"),
 	NULL
 };
 
 static const char * const git_notes_merge_usage[] = {
-	"git notes merge [<options>] <notes_ref>",
-	"git notes merge --commit [<options>]",
-	"git notes merge --abort [<options>]",
+	N_("git notes merge [<options>] <notes_ref>"),
+	N_("git notes merge --commit [<options>]"),
+	N_("git notes merge --abort [<options>]"),
 	NULL
 };
 
 static const char * const git_notes_remove_usage[] = {
-	"git notes remove [<object>]",
+	N_("git notes remove [<object>]"),
 	NULL
 };
 
 static const char * const git_notes_prune_usage[] = {
-	"git notes prune [<options>]",
+	N_("git notes prune [<options>]"),
 	NULL
 };
 
 static const char * const git_notes_get_ref_usage[] = {
-	"git notes get-ref",
+	N_("git notes get-ref"),
 	NULL
 };
 
@@ -531,19 +531,19 @@ static int add(int argc, const char **argv, const char *prefix)
 	const unsigned char *note;
 	struct msg_arg msg = { 0, 0, STRBUF_INIT };
 	struct option options[] = {
-		{ OPTION_CALLBACK, 'm', "message", &msg, "msg",
-			"note contents as a string", PARSE_OPT_NONEG,
+		{ OPTION_CALLBACK, 'm', "message", &msg, N_("msg"),
+			N_("note contents as a string"), PARSE_OPT_NONEG,
 			parse_msg_arg},
-		{ OPTION_CALLBACK, 'F', "file", &msg, "file",
-			"note contents in a file", PARSE_OPT_NONEG,
+		{ OPTION_CALLBACK, 'F', "file", &msg, N_("file"),
+			N_("note contents in a file"), PARSE_OPT_NONEG,
 			parse_file_arg},
-		{ OPTION_CALLBACK, 'c', "reedit-message", &msg, "object",
-			"reuse and edit specified note object", PARSE_OPT_NONEG,
+		{ OPTION_CALLBACK, 'c', "reedit-message", &msg, N_("object"),
+			N_("reuse and edit specified note object"), PARSE_OPT_NONEG,
 			parse_reedit_arg},
-		{ OPTION_CALLBACK, 'C', "reuse-message", &msg, "object",
-			"reuse specified note object", PARSE_OPT_NONEG,
+		{ OPTION_CALLBACK, 'C', "reuse-message", &msg, N_("object"),
+			N_("reuse specified note object"), PARSE_OPT_NONEG,
 			parse_reuse_arg},
-		OPT__FORCE(&force, "replace existing notes"),
+		OPT__FORCE(&force, N_("replace existing notes")),
 		OPT_END()
 	};
 
@@ -611,11 +611,11 @@ static int copy(int argc, const char **argv, const char *prefix)
 	struct notes_tree *t;
 	const char *rewrite_cmd = NULL;
 	struct option options[] = {
-		OPT__FORCE(&force, "replace existing notes"),
-		OPT_BOOLEAN(0, "stdin", &from_stdin, "read objects from stdin"),
-		OPT_STRING(0, "for-rewrite", &rewrite_cmd, "command",
-			   "load rewriting config for <command> (implies "
-			   "--stdin)"),
+		OPT__FORCE(&force, N_("replace existing notes")),
+		OPT_BOOLEAN(0, "stdin", &from_stdin, N_("read objects from stdin")),
+		OPT_STRING(0, "for-rewrite", &rewrite_cmd, N_("command"),
+			   N_("load rewriting config for <command> (implies "
+			      "--stdin)")),
 		OPT_END()
 	};
 
@@ -688,17 +688,17 @@ static int append_edit(int argc, const char **argv, const char *prefix)
 	const char * const *usage;
 	struct msg_arg msg = { 0, 0, STRBUF_INIT };
 	struct option options[] = {
-		{ OPTION_CALLBACK, 'm', "message", &msg, "msg",
-			"note contents as a string", PARSE_OPT_NONEG,
+		{ OPTION_CALLBACK, 'm', "message", &msg, N_("msg"),
+			N_("note contents as a string"), PARSE_OPT_NONEG,
 			parse_msg_arg},
-		{ OPTION_CALLBACK, 'F', "file", &msg, "file",
-			"note contents in a file", PARSE_OPT_NONEG,
+		{ OPTION_CALLBACK, 'F', "file", &msg, N_("file"),
+			N_("note contents in a file"), PARSE_OPT_NONEG,
 			parse_file_arg},
-		{ OPTION_CALLBACK, 'c', "reedit-message", &msg, "object",
-			"reuse and edit specified note object", PARSE_OPT_NONEG,
+		{ OPTION_CALLBACK, 'c', "reedit-message", &msg, N_("object"),
+			N_("reuse and edit specified note object"), PARSE_OPT_NONEG,
 			parse_reedit_arg},
-		{ OPTION_CALLBACK, 'C', "reuse-message", &msg, "object",
-			"reuse specified note object", PARSE_OPT_NONEG,
+		{ OPTION_CALLBACK, 'C', "reuse-message", &msg, N_("object"),
+			N_("reuse specified note object"), PARSE_OPT_NONEG,
 			parse_reuse_arg},
 		OPT_END()
 	};
@@ -861,19 +861,19 @@ static int merge(int argc, const char **argv, const char *prefix)
 	int verbosity = 0, result;
 	const char *strategy = NULL;
 	struct option options[] = {
-		OPT_GROUP("General options"),
+		OPT_GROUP(N_("General options")),
 		OPT__VERBOSITY(&verbosity),
-		OPT_GROUP("Merge options"),
-		OPT_STRING('s', "strategy", &strategy, "strategy",
-			   "resolve notes conflicts using the given strategy "
-			   "(manual/ours/theirs/union/cat_sort_uniq)"),
-		OPT_GROUP("Committing unmerged notes"),
+		OPT_GROUP(N_("Merge options")),
+		OPT_STRING('s', "strategy", &strategy, N_("strategy"),
+			   N_("resolve notes conflicts using the given strategy "
+			      "(manual/ours/theirs/union/cat_sort_uniq)")),
+		OPT_GROUP(N_("Committing unmerged notes")),
 		{ OPTION_BOOLEAN, 0, "commit", &do_commit, NULL,
-			"finalize notes merge by committing unmerged notes",
+			N_("finalize notes merge by committing unmerged notes"),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG },
-		OPT_GROUP("Aborting notes merge resolution"),
+		OPT_GROUP(N_("Aborting notes merge resolution")),
 		{ OPTION_BOOLEAN, 0, "abort", &do_abort, NULL,
-			"abort notes merge",
+			N_("abort notes merge"),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG },
 		OPT_END()
 	};
@@ -980,10 +980,10 @@ static int remove_cmd(int argc, const char **argv, const char *prefix)
 	int from_stdin = 0;
 	struct option options[] = {
 		OPT_BIT(0, "ignore-missing", &flag,
-			"attempt to remove non-existent note is not an error",
+			N_("attempt to remove non-existent note is not an error"),
 			IGNORE_MISSING),
 		OPT_BOOLEAN(0, "stdin", &from_stdin,
-			    "read object names from the standard input"),
+			    N_("read object names from the standard input")),
 		OPT_END()
 	};
 	struct notes_tree *t;
@@ -1064,8 +1064,8 @@ int cmd_notes(int argc, const char **argv, const char *prefix)
 	int result;
 	const char *override_notes_ref = NULL;
 	struct option options[] = {
-		OPT_STRING(0, "ref", &override_notes_ref, "notes_ref",
-			   "use notes from <notes_ref>"),
+		OPT_STRING(0, "ref", &override_notes_ref, N_("notes_ref"),
+			   N_("use notes from <notes_ref>")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 41/65] i18n: pack-objects: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (36 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 40/65] i18n: notes: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 42/65] i18n: pack-refs: " Nguyễn Thái Ngọc Duy
                       ` (25 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/pack-objects.c | 64 +++++++++++++++++++++++++-------------------------
 1 file changed, 32 insertions(+), 32 deletions(-)

diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 1861093..a26ac22 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -19,8 +19,8 @@
 #include "thread-utils.h"
 
 static const char *pack_usage[] = {
-	"git pack-objects --stdout [options...] [< ref-list | < object-list]",
-	"git pack-objects [options...] base-name [< ref-list | < object-list]",
+	N_("git pack-objects --stdout [options...] [< ref-list | < object-list]"),
+	N_("git pack-objects [options...] base-name [< ref-list | < object-list]"),
 	NULL
 };
 
@@ -2362,67 +2362,67 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
 	int rev_list_unpacked = 0, rev_list_all = 0, rev_list_reflog = 0;
 	struct option pack_objects_options[] = {
 		OPT_SET_INT('q', "quiet", &progress,
-			    "do not show progress meter", 0),
+			    N_("do not show progress meter"), 0),
 		OPT_SET_INT(0, "progress", &progress,
-			    "show progress meter", 1),
+			    N_("show progress meter"), 1),
 		OPT_SET_INT(0, "all-progress", &progress,
-			    "show progress meter during object writing phase", 2),
+			    N_("show progress meter during object writing phase"), 2),
 		OPT_BOOL(0, "all-progress-implied",
 			 &all_progress_implied,
-			 "similar to --all-progress when progress meter is shown"),
-		{ OPTION_CALLBACK, 0, "index-version", NULL, "version[,offset]",
-		  "write the pack index file in the specified idx format version",
+			 N_("similar to --all-progress when progress meter is shown")),
+		{ OPTION_CALLBACK, 0, "index-version", NULL, N_("version[,offset]"),
+		  N_("write the pack index file in the specified idx format version"),
 		  0, option_parse_index_version },
 		OPT_ULONG(0, "max-pack-size", &pack_size_limit,
-			  "maximum size of each output pack file"),
+			  N_("maximum size of each output pack file")),
 		OPT_BOOL(0, "local", &local,
-			 "ignore borrowed objects from alternate object store"),
+			 N_("ignore borrowed objects from alternate object store")),
 		OPT_BOOL(0, "incremental", &incremental,
-			 "ignore packed objects"),
+			 N_("ignore packed objects")),
 		OPT_INTEGER(0, "window", &window,
-			    "limit pack window by objects"),
+			    N_("limit pack window by objects")),
 		OPT_ULONG(0, "window-memory", &window_memory_limit,
-			  "limit pack window by memory in addition to object limit"),
+			  N_("limit pack window by memory in addition to object limit")),
 		OPT_INTEGER(0, "depth", &depth,
-			    "maximum length of delta chain allowed in the resulting pack"),
+			    N_("maximum length of delta chain allowed in the resulting pack")),
 		OPT_BOOL(0, "reuse-delta", &reuse_delta,
-			 "reuse existing deltas"),
+			 N_("reuse existing deltas")),
 		OPT_BOOL(0, "reuse-object", &reuse_object,
-			 "reuse existing objects"),
+			 N_("reuse existing objects")),
 		OPT_BOOL(0, "delta-base-offset", &allow_ofs_delta,
-			 "use OFS_DELTA objects"),
+			 N_("use OFS_DELTA objects")),
 		OPT_INTEGER(0, "threads", &delta_search_threads,
-			    "use threads when searching for best delta matches"),
+			    N_("use threads when searching for best delta matches")),
 		OPT_BOOL(0, "non-empty", &non_empty,
-			 "do not create an empty pack output"),
+			 N_("do not create an empty pack output")),
 		OPT_BOOL(0, "revs", &use_internal_rev_list,
-			 "read revision arguments from standard input"),
+			 N_("read revision arguments from standard input")),
 		{ OPTION_SET_INT, 0, "unpacked", &rev_list_unpacked, NULL,
-		  "limit the objects to those that are not yet packed",
+		  N_("limit the objects to those that are not yet packed"),
 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1 },
 		{ OPTION_SET_INT, 0, "all", &rev_list_all, NULL,
-		  "include objects reachable from any reference",
+		  N_("include objects reachable from any reference"),
 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1 },
 		{ OPTION_SET_INT, 0, "reflog", &rev_list_reflog, NULL,
-		  "include objects referred by reflog entries",
+		  N_("include objects referred by reflog entries"),
 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1 },
 		OPT_BOOL(0, "stdout", &pack_to_stdout,
-			 "output pack to stdout"),
+			 N_("output pack to stdout")),
 		OPT_BOOL(0, "include-tag", &include_tag,
-			 "include tag objects that refer to objects to be packed"),
+			 N_("include tag objects that refer to objects to be packed")),
 		OPT_BOOL(0, "keep-unreachable", &keep_unreachable,
-			 "keep unreachable objects"),
-		{ OPTION_CALLBACK, 0, "unpack-unreachable", NULL, "time",
-		  "unpack unreachable objects newer than <time>",
+			 N_("keep unreachable objects")),
+		{ OPTION_CALLBACK, 0, "unpack-unreachable", NULL, N_("time"),
+		  N_("unpack unreachable objects newer than <time>"),
 		  PARSE_OPT_OPTARG, option_parse_unpack_unreachable },
 		OPT_BOOL(0, "thin", &thin,
-			 "create thin packs"),
+			 N_("create thin packs")),
 		OPT_BOOL(0, "honor-pack-keep", &ignore_packed_keep,
-			 "ignore packs that have companion .keep file"),
+			 N_("ignore packs that have companion .keep file")),
 		OPT_INTEGER(0, "compression", &pack_compression_level,
-			    "pack compression level"),
+			    N_("pack compression level")),
 		OPT_SET_INT(0, "keep-true-parents", &grafts_replace_parents,
-			    "do not hide commits by grafts", 0),
+			    N_("do not hide commits by grafts"), 0),
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 42/65] i18n: pack-refs: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (37 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 41/65] i18n: pack-objects: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 43/65] i18n: prune-packed: " Nguyễn Thái Ngọc Duy
                       ` (24 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/pack-refs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin/pack-refs.c b/builtin/pack-refs.c
index 39a9d89..b5a0f88 100644
--- a/builtin/pack-refs.c
+++ b/builtin/pack-refs.c
@@ -3,7 +3,7 @@
 #include "pack-refs.h"
 
 static char const * const pack_refs_usage[] = {
-	"git pack-refs [options]",
+	N_("git pack-refs [options]"),
 	NULL
 };
 
@@ -11,8 +11,8 @@ int cmd_pack_refs(int argc, const char **argv, const char *prefix)
 {
 	unsigned int flags = PACK_REFS_PRUNE;
 	struct option opts[] = {
-		OPT_BIT(0, "all",   &flags, "pack everything", PACK_REFS_ALL),
-		OPT_BIT(0, "prune", &flags, "prune loose refs (default)", PACK_REFS_PRUNE),
+		OPT_BIT(0, "all",   &flags, N_("pack everything"), PACK_REFS_ALL),
+		OPT_BIT(0, "prune", &flags, N_("prune loose refs (default)"), PACK_REFS_PRUNE),
 		OPT_END(),
 	};
 	if (parse_options(argc, argv, prefix, opts, pack_refs_usage, 0))
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 43/65] i18n: prune-packed: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (38 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 42/65] i18n: pack-refs: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 44/65] i18n: prune: " Nguyễn Thái Ngọc Duy
                       ` (23 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/prune-packed.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin/prune-packed.c b/builtin/prune-packed.c
index b58a2e1..83382c1 100644
--- a/builtin/prune-packed.c
+++ b/builtin/prune-packed.c
@@ -4,7 +4,7 @@
 #include "parse-options.h"
 
 static const char * const prune_packed_usage[] = {
-	"git prune-packed [-n|--dry-run] [-q|--quiet]",
+	N_("git prune-packed [-n|--dry-run] [-q|--quiet]"),
 	NULL
 };
 
@@ -73,8 +73,8 @@ int cmd_prune_packed(int argc, const char **argv, const char *prefix)
 {
 	int opts = isatty(2) ? VERBOSE : 0;
 	const struct option prune_packed_options[] = {
-		OPT_BIT('n', "dry-run", &opts, "dry run", DRY_RUN),
-		OPT_NEGBIT('q', "quiet", &opts, "be quiet", VERBOSE),
+		OPT_BIT('n', "dry-run", &opts, N_("dry run"), DRY_RUN),
+		OPT_NEGBIT('q', "quiet", &opts, N_("be quiet"), VERBOSE),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 44/65] i18n: prune: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (39 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 43/65] i18n: prune-packed: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 45/65] i18n: push: " Nguyễn Thái Ngọc Duy
                       ` (22 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/prune.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/builtin/prune.c b/builtin/prune.c
index b99b635..a9e2241 100644
--- a/builtin/prune.c
+++ b/builtin/prune.c
@@ -9,7 +9,7 @@
 #include "dir.h"
 
 static const char * const prune_usage[] = {
-	"git prune [-n] [-v] [--expire <time>] [--] [<head>...]",
+	N_("git prune [-n] [-v] [--expire <time>] [--] [<head>...]"),
 	NULL
 };
 static int show_only;
@@ -128,11 +128,11 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
 	struct rev_info revs;
 	struct progress *progress = NULL;
 	const struct option options[] = {
-		OPT__DRY_RUN(&show_only, "do not remove, show only"),
-		OPT__VERBOSE(&verbose, "report pruned objects"),
-		OPT_BOOL(0, "progress", &show_progress, "show progress"),
+		OPT__DRY_RUN(&show_only, N_("do not remove, show only")),
+		OPT__VERBOSE(&verbose, N_("report pruned objects")),
+		OPT_BOOL(0, "progress", &show_progress, N_("show progress")),
 		OPT_DATE(0, "expire", &expire,
-			 "expire objects older than <time>"),
+			 N_("expire objects older than <time>")),
 		OPT_END()
 	};
 	char *s;
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 45/65] i18n: push: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (40 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 44/65] i18n: prune: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 46/65] i18n: read-tree: " Nguyễn Thái Ngọc Duy
                       ` (21 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/push.c | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/builtin/push.c b/builtin/push.c
index fdfcc6c..4840bc2 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -11,7 +11,7 @@
 #include "submodule.h"
 
 static const char * const push_usage[] = {
-	"git push [<options>] [<repository> [<refspec>...]]",
+	N_("git push [<options>] [<repository> [<refspec>...]]"),
 	NULL,
 };
 
@@ -354,25 +354,25 @@ int cmd_push(int argc, const char **argv, const char *prefix)
 	const char *repo = NULL;	/* default repository */
 	struct option options[] = {
 		OPT__VERBOSITY(&verbosity),
-		OPT_STRING( 0 , "repo", &repo, "repository", "repository"),
-		OPT_BIT( 0 , "all", &flags, "push all refs", TRANSPORT_PUSH_ALL),
-		OPT_BIT( 0 , "mirror", &flags, "mirror all refs",
+		OPT_STRING( 0 , "repo", &repo, N_("repository"), N_("repository")),
+		OPT_BIT( 0 , "all", &flags, N_("push all refs"), TRANSPORT_PUSH_ALL),
+		OPT_BIT( 0 , "mirror", &flags, N_("mirror all refs"),
 			    (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE)),
-		OPT_BOOLEAN( 0, "delete", &deleterefs, "delete refs"),
-		OPT_BOOLEAN( 0 , "tags", &tags, "push tags (can't be used with --all or --mirror)"),
-		OPT_BIT('n' , "dry-run", &flags, "dry run", TRANSPORT_PUSH_DRY_RUN),
-		OPT_BIT( 0,  "porcelain", &flags, "machine-readable output", TRANSPORT_PUSH_PORCELAIN),
-		OPT_BIT('f', "force", &flags, "force updates", TRANSPORT_PUSH_FORCE),
-		{ OPTION_CALLBACK, 0, "recurse-submodules", &flags, "check",
-			"controls recursive pushing of submodules",
+		OPT_BOOLEAN( 0, "delete", &deleterefs, N_("delete refs")),
+		OPT_BOOLEAN( 0 , "tags", &tags, N_("push tags (can't be used with --all or --mirror)")),
+		OPT_BIT('n' , "dry-run", &flags, N_("dry run"), TRANSPORT_PUSH_DRY_RUN),
+		OPT_BIT( 0,  "porcelain", &flags, N_("machine-readable output"), TRANSPORT_PUSH_PORCELAIN),
+		OPT_BIT('f', "force", &flags, N_("force updates"), TRANSPORT_PUSH_FORCE),
+		{ OPTION_CALLBACK, 0, "recurse-submodules", &flags, N_("check"),
+			N_("controls recursive pushing of submodules"),
 			PARSE_OPT_OPTARG, option_parse_recurse_submodules },
-		OPT_BOOLEAN( 0 , "thin", &thin, "use thin pack"),
-		OPT_STRING( 0 , "receive-pack", &receivepack, "receive-pack", "receive pack program"),
-		OPT_STRING( 0 , "exec", &receivepack, "receive-pack", "receive pack program"),
-		OPT_BIT('u', "set-upstream", &flags, "set upstream for git pull/status",
+		OPT_BOOLEAN( 0 , "thin", &thin, N_("use thin pack")),
+		OPT_STRING( 0 , "receive-pack", &receivepack, "receive-pack", N_("receive pack program")),
+		OPT_STRING( 0 , "exec", &receivepack, "receive-pack", N_("receive pack program")),
+		OPT_BIT('u', "set-upstream", &flags, N_("set upstream for git pull/status"),
 			TRANSPORT_PUSH_SET_UPSTREAM),
-		OPT_BOOL(0, "progress", &progress, "force progress reporting"),
-		OPT_BIT(0, "prune", &flags, "prune locally removed refs",
+		OPT_BOOL(0, "progress", &progress, N_("force progress reporting")),
+		OPT_BIT(0, "prune", &flags, N_("prune locally removed refs"),
 			TRANSPORT_PUSH_PRUNE),
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 46/65] i18n: read-tree: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (41 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 45/65] i18n: push: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:13     ` [PATCH 47/65] i18n: remote: " Nguyễn Thái Ngọc Duy
                       ` (20 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/read-tree.c | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index df6c4c8..042ac1b 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -33,7 +33,7 @@ static int list_tree(unsigned char *sha1)
 }
 
 static const char * const read_tree_usage[] = {
-	"git read-tree [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>] [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])",
+	N_("git read-tree [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>] [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"),
 	NULL
 };
 
@@ -104,37 +104,37 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
 	struct unpack_trees_options opts;
 	int prefix_set = 0;
 	const struct option read_tree_options[] = {
-		{ OPTION_CALLBACK, 0, "index-output", NULL, "file",
-		  "write resulting index to <file>",
+		{ OPTION_CALLBACK, 0, "index-output", NULL, N_("file"),
+		  N_("write resulting index to <file>"),
 		  PARSE_OPT_NONEG, index_output_cb },
 		OPT_SET_INT(0, "empty", &read_empty,
-			    "only empty the index", 1),
-		OPT__VERBOSE(&opts.verbose_update, "be verbose"),
-		OPT_GROUP("Merging"),
+			    N_("only empty the index"), 1),
+		OPT__VERBOSE(&opts.verbose_update, N_("be verbose")),
+		OPT_GROUP(N_("Merging")),
 		OPT_SET_INT('m', NULL, &opts.merge,
-			    "perform a merge in addition to a read", 1),
+			    N_("perform a merge in addition to a read"), 1),
 		OPT_SET_INT(0, "trivial", &opts.trivial_merges_only,
-			    "3-way merge if no file level merging required", 1),
+			    N_("3-way merge if no file level merging required"), 1),
 		OPT_SET_INT(0, "aggressive", &opts.aggressive,
-			    "3-way merge in presence of adds and removes", 1),
+			    N_("3-way merge in presence of adds and removes"), 1),
 		OPT_SET_INT(0, "reset", &opts.reset,
-			    "same as -m, but discard unmerged entries", 1),
-		{ OPTION_STRING, 0, "prefix", &opts.prefix, "<subdirectory>/",
-		  "read the tree into the index under <subdirectory>/",
+			    N_("same as -m, but discard unmerged entries"), 1),
+		{ OPTION_STRING, 0, "prefix", &opts.prefix, N_("<subdirectory>/"),
+		  N_("read the tree into the index under <subdirectory>/"),
 		  PARSE_OPT_NONEG | PARSE_OPT_LITERAL_ARGHELP },
 		OPT_SET_INT('u', NULL, &opts.update,
-			    "update working tree with merge result", 1),
+			    N_("update working tree with merge result"), 1),
 		{ OPTION_CALLBACK, 0, "exclude-per-directory", &opts,
-		  "gitignore",
-		  "allow explicitly ignored files to be overwritten",
+		  N_("gitignore"),
+		  N_("allow explicitly ignored files to be overwritten"),
 		  PARSE_OPT_NONEG, exclude_per_directory_cb },
 		OPT_SET_INT('i', NULL, &opts.index_only,
-			    "don't check the working tree after merging", 1),
-		OPT__DRY_RUN(&opts.dry_run, "don't update the index or the work tree"),
+			    N_("don't check the working tree after merging"), 1),
+		OPT__DRY_RUN(&opts.dry_run, N_("don't update the index or the work tree")),
 		OPT_SET_INT(0, "no-sparse-checkout", &opts.skip_sparse_checkout,
-			    "skip applying sparse checkout filter", 1),
+			    N_("skip applying sparse checkout filter"), 1),
 		OPT_SET_INT(0, "debug-unpack", &opts.debug_unpack,
-			    "debug unpack-trees", 1),
+			    N_("debug unpack-trees"), 1),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 47/65] i18n: remote: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (42 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 46/65] i18n: read-tree: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:13     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 48/65] i18n: replace: " Nguyễn Thái Ngọc Duy
                       ` (19 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:13 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/remote.c | 84 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 42 insertions(+), 42 deletions(-)

diff --git a/builtin/remote.c b/builtin/remote.c
index 920262d..8a670d8 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -8,66 +8,66 @@
 #include "refs.h"
 
 static const char * const builtin_remote_usage[] = {
-	"git remote [-v | --verbose]",
-	"git remote add [-t <branch>] [-m <master>] [-f] [--tags|--no-tags] [--mirror=<fetch|push>] <name> <url>",
-	"git remote rename <old> <new>",
-	"git remote rm <name>",
-	"git remote set-head <name> (-a | -d | <branch>)",
-	"git remote [-v | --verbose] show [-n] <name>",
-	"git remote prune [-n | --dry-run] <name>",
-	"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]",
-	"git remote set-branches [--add] <name> <branch>...",
-	"git remote set-url [--push] <name> <newurl> [<oldurl>]",
-	"git remote set-url --add <name> <newurl>",
-	"git remote set-url --delete <name> <url>",
+	N_("git remote [-v | --verbose]"),
+	N_("git remote add [-t <branch>] [-m <master>] [-f] [--tags|--no-tags] [--mirror=<fetch|push>] <name> <url>"),
+	N_("git remote rename <old> <new>"),
+	N_("git remote rm <name>"),
+	N_("git remote set-head <name> (-a | -d | <branch>)"),
+	N_("git remote [-v | --verbose] show [-n] <name>"),
+	N_("git remote prune [-n | --dry-run] <name>"),
+	N_("git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"),
+	N_("git remote set-branches [--add] <name> <branch>..."),
+	N_("git remote set-url [--push] <name> <newurl> [<oldurl>]"),
+	N_("git remote set-url --add <name> <newurl>"),
+	N_("git remote set-url --delete <name> <url>"),
 	NULL
 };
 
 static const char * const builtin_remote_add_usage[] = {
-	"git remote add [<options>] <name> <url>",
+	N_("git remote add [<options>] <name> <url>"),
 	NULL
 };
 
 static const char * const builtin_remote_rename_usage[] = {
-	"git remote rename <old> <new>",
+	N_("git remote rename <old> <new>"),
 	NULL
 };
 
 static const char * const builtin_remote_rm_usage[] = {
-	"git remote rm <name>",
+	N_("git remote rm <name>"),
 	NULL
 };
 
 static const char * const builtin_remote_sethead_usage[] = {
-	"git remote set-head <name> (-a | -d | <branch>])",
+	N_("git remote set-head <name> (-a | -d | <branch>])"),
 	NULL
 };
 
 static const char * const builtin_remote_setbranches_usage[] = {
-	"git remote set-branches <name> <branch>...",
-	"git remote set-branches --add <name> <branch>...",
+	N_("git remote set-branches <name> <branch>..."),
+	N_("git remote set-branches --add <name> <branch>..."),
 	NULL
 };
 
 static const char * const builtin_remote_show_usage[] = {
-	"git remote show [<options>] <name>",
+	N_("git remote show [<options>] <name>"),
 	NULL
 };
 
 static const char * const builtin_remote_prune_usage[] = {
-	"git remote prune [<options>] <name>",
+	N_("git remote prune [<options>] <name>"),
 	NULL
 };
 
 static const char * const builtin_remote_update_usage[] = {
-	"git remote update [<options>] [<group> | <remote>]...",
+	N_("git remote update [<options>] [<group> | <remote>]..."),
 	NULL
 };
 
 static const char * const builtin_remote_seturl_usage[] = {
-	"git remote set-url [--push] <name> <newurl> [<oldurl>]",
-	"git remote set-url --add <name> <newurl>",
-	"git remote set-url --delete <name> <url>",
+	N_("git remote set-url [--push] <name> <newurl> [<oldurl>]"),
+	N_("git remote set-url --add <name> <newurl>"),
+	N_("git remote set-url --delete <name> <url>"),
 	NULL
 };
 
@@ -160,17 +160,17 @@ static int add(int argc, const char **argv)
 	int i;
 
 	struct option options[] = {
-		OPT_BOOLEAN('f', "fetch", &fetch, "fetch the remote branches"),
+		OPT_BOOLEAN('f', "fetch", &fetch, N_("fetch the remote branches")),
 		OPT_SET_INT(0, "tags", &fetch_tags,
-			    "import all tags and associated objects when fetching",
+			    N_("import all tags and associated objects when fetching"),
 			    TAGS_SET),
 		OPT_SET_INT(0, NULL, &fetch_tags,
-			    "or do not fetch any tag at all (--no-tags)", TAGS_UNSET),
-		OPT_STRING_LIST('t', "track", &track, "branch",
-				"branch(es) to track"),
-		OPT_STRING('m', "master", &master, "branch", "master branch"),
-		{ OPTION_CALLBACK, 0, "mirror", &mirror, "push|fetch",
-			"set up remote as a mirror to push to or fetch from",
+			    N_("or do not fetch any tag at all (--no-tags)"), TAGS_UNSET),
+		OPT_STRING_LIST('t', "track", &track, N_("branch"),
+				N_("branch(es) to track")),
+		OPT_STRING('m', "master", &master, N_("branch"), N_("master branch")),
+		{ OPTION_CALLBACK, 0, "mirror", &mirror, N_("push|fetch"),
+			N_("set up remote as a mirror to push to or fetch from"),
 			PARSE_OPT_OPTARG, parse_mirror_opt },
 		OPT_END()
 	};
@@ -1088,7 +1088,7 @@ static int show(int argc, const char **argv)
 {
 	int no_query = 0, result = 0, query_flag = 0;
 	struct option options[] = {
-		OPT_BOOLEAN('n', NULL, &no_query, "do not query remotes"),
+		OPT_BOOLEAN('n', NULL, &no_query, N_("do not query remotes")),
 		OPT_END()
 	};
 	struct ref_states states;
@@ -1196,9 +1196,9 @@ static int set_head(int argc, const char **argv)
 
 	struct option options[] = {
 		OPT_BOOLEAN('a', "auto", &opt_a,
-			    "set refs/remotes/<name>/HEAD according to remote"),
+			    N_("set refs/remotes/<name>/HEAD according to remote")),
 		OPT_BOOLEAN('d', "delete", &opt_d,
-			    "delete refs/remotes/<name>/HEAD"),
+			    N_("delete refs/remotes/<name>/HEAD")),
 		OPT_END()
 	};
 	argc = parse_options(argc, argv, NULL, options, builtin_remote_sethead_usage,
@@ -1250,7 +1250,7 @@ static int prune(int argc, const char **argv)
 {
 	int dry_run = 0, result = 0;
 	struct option options[] = {
-		OPT__DRY_RUN(&dry_run, "dry run"),
+		OPT__DRY_RUN(&dry_run, N_("dry run")),
 		OPT_END()
 	};
 
@@ -1318,7 +1318,7 @@ static int update(int argc, const char **argv)
 	int i, prune = 0;
 	struct option options[] = {
 		OPT_BOOLEAN('p', "prune", &prune,
-			    "prune remotes after fetching"),
+			    N_("prune remotes after fetching")),
 		OPT_END()
 	};
 	const char **fetch_argv;
@@ -1404,7 +1404,7 @@ static int set_branches(int argc, const char **argv)
 {
 	int add_mode = 0;
 	struct option options[] = {
-		OPT_BOOLEAN('\0', "add", &add_mode, "add branch"),
+		OPT_BOOLEAN('\0', "add", &add_mode, N_("add branch")),
 		OPT_END()
 	};
 
@@ -1433,11 +1433,11 @@ static int set_url(int argc, const char **argv)
 	struct strbuf name_buf = STRBUF_INIT;
 	struct option options[] = {
 		OPT_BOOLEAN('\0', "push", &push_mode,
-			    "manipulate push URLs"),
+			    N_("manipulate push URLs")),
 		OPT_BOOLEAN('\0', "add", &add_mode,
-			    "add URL"),
+			    N_("add URL")),
 		OPT_BOOLEAN('\0', "delete", &delete_mode,
-			    "delete URLs"),
+			    N_("delete URLs")),
 		OPT_END()
 	};
 	argc = parse_options(argc, argv, NULL, options, builtin_remote_seturl_usage,
@@ -1566,7 +1566,7 @@ static int show_all(void)
 int cmd_remote(int argc, const char **argv, const char *prefix)
 {
 	struct option options[] = {
-		OPT__VERBOSE(&verbose, "be verbose; must be placed before a subcommand"),
+		OPT__VERBOSE(&verbose, N_("be verbose; must be placed before a subcommand")),
 		OPT_END()
 	};
 	int result;
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 48/65] i18n: replace: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (43 preceding siblings ...)
  2012-05-28 11:13     ` [PATCH 47/65] i18n: remote: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 49/65] i18n: status: " Nguyễn Thái Ngọc Duy
                       ` (18 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/replace.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/builtin/replace.c b/builtin/replace.c
index 4a8970e..e3aaf70 100644
--- a/builtin/replace.c
+++ b/builtin/replace.c
@@ -14,9 +14,9 @@
 #include "parse-options.h"
 
 static const char * const git_replace_usage[] = {
-	"git replace [-f] <object> <replacement>",
-	"git replace -d <object>...",
-	"git replace -l [<pattern>]",
+	N_("git replace [-f] <object> <replacement>"),
+	N_("git replace -d <object>..."),
+	N_("git replace -l [<pattern>]"),
 	NULL
 };
 
@@ -115,9 +115,9 @@ int cmd_replace(int argc, const char **argv, const char *prefix)
 {
 	int list = 0, delete = 0, force = 0;
 	struct option options[] = {
-		OPT_BOOLEAN('l', NULL, &list, "list replace refs"),
-		OPT_BOOLEAN('d', NULL, &delete, "delete replace refs"),
-		OPT_BOOLEAN('f', NULL, &force, "replace the ref if it exists"),
+		OPT_BOOLEAN('l', NULL, &list, N_("list replace refs")),
+		OPT_BOOLEAN('d', NULL, &delete, N_("delete replace refs")),
+		OPT_BOOLEAN('f', NULL, &force, N_("replace the ref if it exists")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 49/65] i18n: status: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (44 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 48/65] i18n: replace: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 50/65] i18n: rerere: " Nguyễn Thái Ngọc Duy
                       ` (17 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/commit.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/builtin/commit.c b/builtin/commit.c
index 34d723b..d94719b 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -35,7 +35,7 @@ static const char * const builtin_commit_usage[] = {
 };
 
 static const char * const builtin_status_usage[] = {
-	"git status [options] [--] <filepattern>...",
+	N_("git status [options] [--] <filepattern>..."),
 	NULL
 };
 
@@ -1167,24 +1167,24 @@ int cmd_status(int argc, const char **argv, const char *prefix)
 	int fd;
 	unsigned char sha1[20];
 	static struct option builtin_status_options[] = {
-		OPT__VERBOSE(&verbose, "be verbose"),
+		OPT__VERBOSE(&verbose, N_("be verbose")),
 		OPT_SET_INT('s', "short", &status_format,
-			    "show status concisely", STATUS_FORMAT_SHORT),
+			    N_("show status concisely"), STATUS_FORMAT_SHORT),
 		OPT_BOOLEAN('b', "branch", &s.show_branch,
-			    "show branch information"),
+			    N_("show branch information")),
 		OPT_SET_INT(0, "porcelain", &status_format,
-			    "machine-readable output",
+			    N_("machine-readable output"),
 			    STATUS_FORMAT_PORCELAIN),
 		OPT_BOOLEAN('z', "null", &s.null_termination,
-			    "terminate entries with NUL"),
+			    N_("terminate entries with NUL")),
 		{ OPTION_STRING, 'u', "untracked-files", &untracked_files_arg,
-		  "mode",
-		  "show untracked files, optional modes: all, normal, no. (Default: all)",
+		  N_("mode"),
+		  N_("show untracked files, optional modes: all, normal, no. (Default: all)"),
 		  PARSE_OPT_OPTARG, NULL, (intptr_t)"all" },
 		OPT_BOOLEAN(0, "ignored", &show_ignored_in_status,
-			    "show ignored files"),
-		{ OPTION_STRING, 0, "ignore-submodules", &ignore_submodule_arg, "when",
-		  "ignore changes to submodules, optional when: all, dirty, untracked. (Default: all)",
+			    N_("show ignored files")),
+		{ OPTION_STRING, 0, "ignore-submodules", &ignore_submodule_arg, N_("when"),
+		  N_("ignore changes to submodules, optional when: all, dirty, untracked. (Default: all)"),
 		  PARSE_OPT_OPTARG, NULL, (intptr_t)"all" },
 		OPT_COLUMN(0, "column", &s.colopts, "list untracked files in columns"),
 		OPT_END(),
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 50/65] i18n: rerere: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (45 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 49/65] i18n: status: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 51/65] i18n: reset: " Nguyễn Thái Ngọc Duy
                       ` (16 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/rerere.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/rerere.c b/builtin/rerere.c
index 08213c7..dc1708e 100644
--- a/builtin/rerere.c
+++ b/builtin/rerere.c
@@ -8,7 +8,7 @@
 #include "xdiff-interface.h"
 
 static const char * const rerere_usage[] = {
-	"git rerere [clear | forget path... | status | remaining | diff | gc]",
+	N_("git rerere [clear | forget path... | status | remaining | diff | gc]"),
 	NULL,
 };
 
@@ -53,7 +53,7 @@ int cmd_rerere(int argc, const char **argv, const char *prefix)
 
 	struct option options[] = {
 		OPT_SET_INT(0, "rerere-autoupdate", &autoupdate,
-			"register clean resolutions in index", 1),
+			N_("register clean resolutions in index"), 1),
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 51/65] i18n: reset: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (46 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 50/65] i18n: rerere: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 52/65] i18n: rev-parse: " Nguyễn Thái Ngọc Duy
                       ` (15 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/reset.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/builtin/reset.c b/builtin/reset.c
index 8c2c1d5..813b3a6 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -22,9 +22,9 @@
 #include "cache-tree.h"
 
 static const char * const git_reset_usage[] = {
-	"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]",
-	"git reset [-q] <commit> [--] <paths>...",
-	"git reset --patch [<commit>] [--] [<paths>...]",
+	N_("git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"),
+	N_("git reset [-q] <commit> [--] <paths>..."),
+	N_("git reset --patch [<commit>] [--] [<paths>...]"),
 	NULL
 };
 
@@ -235,17 +235,17 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
 	struct commit *commit;
 	struct strbuf msg = STRBUF_INIT;
 	const struct option options[] = {
-		OPT__QUIET(&quiet, "be quiet, only report errors"),
+		OPT__QUIET(&quiet, N_("be quiet, only report errors")),
 		OPT_SET_INT(0, "mixed", &reset_type,
-						"reset HEAD and index", MIXED),
-		OPT_SET_INT(0, "soft", &reset_type, "reset only HEAD", SOFT),
+						N_("reset HEAD and index"), MIXED),
+		OPT_SET_INT(0, "soft", &reset_type, N_("reset only HEAD"), SOFT),
 		OPT_SET_INT(0, "hard", &reset_type,
-				"reset HEAD, index and working tree", HARD),
+				N_("reset HEAD, index and working tree"), HARD),
 		OPT_SET_INT(0, "merge", &reset_type,
-				"reset HEAD, index and working tree", MERGE),
+				N_("reset HEAD, index and working tree"), MERGE),
 		OPT_SET_INT(0, "keep", &reset_type,
-				"reset HEAD but keep local changes", KEEP),
-		OPT_BOOLEAN('p', "patch", &patch_mode, "select hunks interactively"),
+				N_("reset HEAD but keep local changes"), KEEP),
+		OPT_BOOLEAN('p', "patch", &patch_mode, N_("select hunks interactively")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 52/65] i18n: rev-parse: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (47 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 51/65] i18n: reset: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 53/65] i18n: revert, cherry-pick: " Nguyễn Thái Ngọc Duy
                       ` (14 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/rev-parse.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index 733f626..1f79aa5 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -318,15 +318,15 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
 {
 	static int keep_dashdash = 0, stop_at_non_option = 0;
 	static char const * const parseopt_usage[] = {
-		"git rev-parse --parseopt [options] -- [<args>...]",
+		N_("git rev-parse --parseopt [options] -- [<args>...]"),
 		NULL
 	};
 	static struct option parseopt_opts[] = {
 		OPT_BOOLEAN(0, "keep-dashdash", &keep_dashdash,
-					"keep the `--` passed as an arg"),
+					N_("keep the `--` passed as an arg")),
 		OPT_BOOLEAN(0, "stop-at-non-option", &stop_at_non_option,
-					"stop parsing after the "
-					"first non-option argument"),
+					N_("stop parsing after the "
+					   "first non-option argument")),
 		OPT_END(),
 	};
 
@@ -443,11 +443,11 @@ static void die_no_single_rev(int quiet)
 }
 
 static const char builtin_rev_parse_usage[] =
-"git rev-parse --parseopt [options] -- [<args>...]\n"
-"   or: git rev-parse --sq-quote [<arg>...]\n"
-"   or: git rev-parse [options] [<arg>...]\n"
-"\n"
-"Run \"git rev-parse --parseopt -h\" for more information on the first usage.";
+N_("git rev-parse --parseopt [options] -- [<args>...]\n"
+   "   or: git rev-parse --sq-quote [<arg>...]\n"
+   "   or: git rev-parse [options] [<arg>...]\n"
+   "\n"
+   "Run \"git rev-parse --parseopt -h\" for more information on the first usage.");
 
 int cmd_rev_parse(int argc, const char **argv, const char *prefix)
 {
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 53/65] i18n: revert, cherry-pick: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (48 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 52/65] i18n: rev-parse: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 54/65] i18n: rm: " Nguyễn Thái Ngọc Duy
                       ` (13 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/revert.c | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/builtin/revert.c b/builtin/revert.c
index 82d1bf8..02ca95f 100644
--- a/builtin/revert.c
+++ b/builtin/revert.c
@@ -19,14 +19,14 @@
  */
 
 static const char * const revert_usage[] = {
-	"git revert [options] <commit-ish>",
-	"git revert <subcommand>",
+	N_("git revert [options] <commit-ish>"),
+	N_("git revert <subcommand>"),
 	NULL
 };
 
 static const char * const cherry_pick_usage[] = {
-	"git cherry-pick [options] <commit-ish>",
-	"git cherry-pick <subcommand>",
+	N_("git cherry-pick [options] <commit-ish>"),
+	N_("git cherry-pick <subcommand>"),
 	NULL
 };
 
@@ -100,18 +100,18 @@ static void parse_args(int argc, const char **argv, struct replay_opts *opts)
 	int contin = 0;
 	int rollback = 0;
 	struct option options[] = {
-		OPT_BOOLEAN(0, "quit", &remove_state, "end revert or cherry-pick sequence"),
-		OPT_BOOLEAN(0, "continue", &contin, "resume revert or cherry-pick sequence"),
-		OPT_BOOLEAN(0, "abort", &rollback, "cancel revert or cherry-pick sequence"),
-		OPT_BOOLEAN('n', "no-commit", &opts->no_commit, "don't automatically commit"),
-		OPT_BOOLEAN('e', "edit", &opts->edit, "edit the commit message"),
+		OPT_BOOLEAN(0, "quit", &remove_state, N_("end revert or cherry-pick sequence")),
+		OPT_BOOLEAN(0, "continue", &contin, N_("resume revert or cherry-pick sequence")),
+		OPT_BOOLEAN(0, "abort", &rollback, N_("cancel revert or cherry-pick sequence")),
+		OPT_BOOLEAN('n', "no-commit", &opts->no_commit, N_("don't automatically commit")),
+		OPT_BOOLEAN('e', "edit", &opts->edit, N_("edit the commit message")),
 		OPT_NOOP_NOARG('r', NULL),
-		OPT_BOOLEAN('s', "signoff", &opts->signoff, "add Signed-off-by:"),
-		OPT_INTEGER('m', "mainline", &opts->mainline, "parent number"),
+		OPT_BOOLEAN('s', "signoff", &opts->signoff, N_("add Signed-off-by:")),
+		OPT_INTEGER('m', "mainline", &opts->mainline, N_("parent number")),
 		OPT_RERERE_AUTOUPDATE(&opts->allow_rerere_auto),
-		OPT_STRING(0, "strategy", &opts->strategy, "strategy", "merge strategy"),
-		OPT_CALLBACK('X', "strategy-option", &opts, "option",
-			"option for merge strategy", option_parse_x),
+		OPT_STRING(0, "strategy", &opts->strategy, N_("strategy"), N_("merge strategy")),
+		OPT_CALLBACK('X', "strategy-option", &opts, N_("option"),
+			N_("option for merge strategy"), option_parse_x),
 		OPT_END(),
 		OPT_END(),
 		OPT_END(),
@@ -121,10 +121,10 @@ static void parse_args(int argc, const char **argv, struct replay_opts *opts)
 
 	if (opts->action == REPLAY_PICK) {
 		struct option cp_extra[] = {
-			OPT_BOOLEAN('x', NULL, &opts->record_origin, "append commit name"),
-			OPT_BOOLEAN(0, "ff", &opts->allow_ff, "allow fast-forward"),
-			OPT_BOOLEAN(0, "allow-empty", &opts->allow_empty, "preserve initially empty commits"),
-			OPT_BOOLEAN(0, "keep-redundant-commits", &opts->keep_redundant_commits, "keep redundant, empty commits"),
+			OPT_BOOLEAN('x', NULL, &opts->record_origin, N_("append commit name")),
+			OPT_BOOLEAN(0, "ff", &opts->allow_ff, N_("allow fast-forward")),
+			OPT_BOOLEAN(0, "allow-empty", &opts->allow_empty, N_("preserve initially empty commits")),
+			OPT_BOOLEAN(0, "keep-redundant-commits", &opts->keep_redundant_commits, N_("keep redundant, empty commits")),
 			OPT_END(),
 		};
 		if (parse_options_concat(options, ARRAY_SIZE(options), cp_extra))
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 54/65] i18n: rm: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (49 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 53/65] i18n: revert, cherry-pick: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 55/65] i18n: shortlog: " Nguyễn Thái Ngọc Duy
                       ` (12 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/rm.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/builtin/rm.c b/builtin/rm.c
index 90c8a50..b384c4c 100644
--- a/builtin/rm.c
+++ b/builtin/rm.c
@@ -11,7 +11,7 @@
 #include "parse-options.h"
 
 static const char * const builtin_rm_usage[] = {
-	"git rm [options] [--] <file>...",
+	N_("git rm [options] [--] <file>..."),
 	NULL
 };
 
@@ -130,13 +130,13 @@ static int show_only = 0, force = 0, index_only = 0, recursive = 0, quiet = 0;
 static int ignore_unmatch = 0;
 
 static struct option builtin_rm_options[] = {
-	OPT__DRY_RUN(&show_only, "dry run"),
-	OPT__QUIET(&quiet, "do not list removed files"),
-	OPT_BOOLEAN( 0 , "cached",         &index_only, "only remove from the index"),
-	OPT__FORCE(&force, "override the up-to-date check"),
-	OPT_BOOLEAN('r', NULL,             &recursive,  "allow recursive removal"),
+	OPT__DRY_RUN(&show_only, N_("dry run")),
+	OPT__QUIET(&quiet, N_("do not list removed files")),
+	OPT_BOOLEAN( 0 , "cached",         &index_only, N_("only remove from the index")),
+	OPT__FORCE(&force, N_("override the up-to-date check")),
+	OPT_BOOLEAN('r', NULL,             &recursive,  N_("allow recursive removal")),
 	OPT_BOOLEAN( 0 , "ignore-unmatch", &ignore_unmatch,
-				"exit with a zero status even if nothing matched"),
+				N_("exit with a zero status even if nothing matched")),
 	OPT_END(),
 };
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 55/65] i18n: shortlog: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (50 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 54/65] i18n: rm: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 56/65] i18n: show-branch: " Nguyễn Thái Ngọc Duy
                       ` (11 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/shortlog.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index 37f3193..b316cf3 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -10,9 +10,9 @@
 #include "parse-options.h"
 
 static char const * const shortlog_usage[] = {
-	"git shortlog [-n] [-s] [-e] [-w] [rev-opts] [--] [<commit-id>... ]",
+	N_("git shortlog [-n] [-s] [-e] [-w] [rev-opts] [--] [<commit-id>... ]"),
 	"",
-	"[rev-opts] are documented in git-rev-list(1)",
+	N_("[rev-opts] are documented in git-rev-list(1)"),
 	NULL
 };
 
@@ -250,13 +250,13 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
 
 	static const struct option options[] = {
 		OPT_BOOLEAN('n', "numbered", &log.sort_by_number,
-			    "sort output according to the number of commits per author"),
+			    N_("sort output according to the number of commits per author")),
 		OPT_BOOLEAN('s', "summary", &log.summary,
-			    "Suppress commit descriptions, only provides commit count"),
+			    N_("Suppress commit descriptions, only provides commit count")),
 		OPT_BOOLEAN('e', "email", &log.email,
-			    "Show the email address of each author"),
-		{ OPTION_CALLBACK, 'w', NULL, &log, "w[,i1[,i2]]",
-			"Linewrap output", PARSE_OPT_OPTARG, &parse_wrap_args },
+			    N_("Show the email address of each author")),
+		{ OPTION_CALLBACK, 'w', NULL, &log, N_("w[,i1[,i2]]"),
+			N_("Linewrap output"), PARSE_OPT_OPTARG, &parse_wrap_args },
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 56/65] i18n: show-branch: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (51 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 55/65] i18n: shortlog: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 57/65] i18n: show-ref: " Nguyễn Thái Ngọc Duy
                       ` (10 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/show-branch.c | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/builtin/show-branch.c b/builtin/show-branch.c
index a59e088..d208fd6 100644
--- a/builtin/show-branch.c
+++ b/builtin/show-branch.c
@@ -6,8 +6,8 @@
 #include "parse-options.h"
 
 static const char* show_branch_usage[] = {
-    "git show-branch [-a|--all] [-r|--remotes] [--topo-order | --date-order] [--current] [--color[=<when>] | --no-color] [--sparse] [--more=<n> | --list | --independent | --merge-base] [--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]",
-    "git show-branch (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>]",
+    N_("git show-branch [-a|--all] [-r|--remotes] [--topo-order | --date-order] [--current] [--color[=<when>] | --no-color] [--sparse] [--more=<n> | --list | --independent | --merge-base] [--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]"),
+    N_("git show-branch (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>]"),
     NULL
 };
 
@@ -648,36 +648,36 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
 	const char *reflog_base = NULL;
 	struct option builtin_show_branch_options[] = {
 		OPT_BOOLEAN('a', "all", &all_heads,
-			    "show remote-tracking and local branches"),
+			    N_("show remote-tracking and local branches")),
 		OPT_BOOLEAN('r', "remotes", &all_remotes,
-			    "show remote-tracking branches"),
+			    N_("show remote-tracking branches")),
 		OPT__COLOR(&showbranch_use_color,
-			    "color '*!+-' corresponding to the branch"),
-		{ OPTION_INTEGER, 0, "more", &extra, "n",
-			    "show <n> more commits after the common ancestor",
+			    N_("color '*!+-' corresponding to the branch")),
+		{ OPTION_INTEGER, 0, "more", &extra, N_("n"),
+			    N_("show <n> more commits after the common ancestor"),
 			    PARSE_OPT_OPTARG, NULL, (intptr_t)1 },
-		OPT_SET_INT(0, "list", &extra, "synonym to more=-1", -1),
-		OPT_BOOLEAN(0, "no-name", &no_name, "suppress naming strings"),
+		OPT_SET_INT(0, "list", &extra, N_("synonym to more=-1"), -1),
+		OPT_BOOLEAN(0, "no-name", &no_name, N_("suppress naming strings")),
 		OPT_BOOLEAN(0, "current", &with_current_branch,
-			    "include the current branch"),
+			    N_("include the current branch")),
 		OPT_BOOLEAN(0, "sha1-name", &sha1_name,
-			    "name commits with their object names"),
+			    N_("name commits with their object names")),
 		OPT_BOOLEAN(0, "merge-base", &merge_base,
-			    "show possible merge bases"),
+			    N_("show possible merge bases")),
 		OPT_BOOLEAN(0, "independent", &independent,
-			    "show refs unreachable from any other ref"),
+			    N_("show refs unreachable from any other ref")),
 		OPT_BOOLEAN(0, "topo-order", &lifo,
-			    "show commits in topological order"),
+			    N_("show commits in topological order")),
 		OPT_BOOLEAN(0, "topics", &topics,
-			    "show only commits not on the first branch"),
+			    N_("show only commits not on the first branch")),
 		OPT_SET_INT(0, "sparse", &dense,
-			    "show merges reachable from only one tip", 0),
+			    N_("show merges reachable from only one tip"), 0),
 		OPT_SET_INT(0, "date-order", &lifo,
-			    "show commits where no parent comes before its "
-			    "children", 0),
-		{ OPTION_CALLBACK, 'g', "reflog", &reflog_base, "<n>[,<base>]",
-			    "show <n> most recent ref-log entries starting at "
-			    "base",
+			    N_("show commits where no parent comes before its "
+			       "children"), 0),
+		{ OPTION_CALLBACK, 'g', "reflog", &reflog_base, N_("<n>[,<base>]"),
+			    N_("show <n> most recent ref-log entries starting at "
+			       "base"),
 			    PARSE_OPT_OPTARG | PARSE_OPT_LITERAL_ARGHELP,
 			    parse_reflog_param },
 		OPT_END()
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 57/65] i18n: show-ref: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (52 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 56/65] i18n: show-branch: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 58/65] i18n: symbolic-ref: " Nguyễn Thái Ngọc Duy
                       ` (9 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/show-ref.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/builtin/show-ref.c b/builtin/show-ref.c
index 3911661..4eb016d 100644
--- a/builtin/show-ref.c
+++ b/builtin/show-ref.c
@@ -7,8 +7,8 @@
 #include "parse-options.h"
 
 static const char * const show_ref_usage[] = {
-	"git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [pattern*] ",
-	"git show-ref --exclude-existing[=pattern] < ref-list",
+	N_("git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [pattern*] "),
+	N_("git show-ref --exclude-existing[=pattern] < ref-list"),
 	NULL
 };
 
@@ -179,26 +179,26 @@ static int help_callback(const struct option *opt, const char *arg, int unset)
 }
 
 static const struct option show_ref_options[] = {
-	OPT_BOOLEAN(0, "tags", &tags_only, "only show tags (can be combined with heads)"),
-	OPT_BOOLEAN(0, "heads", &heads_only, "only show heads (can be combined with tags)"),
-	OPT_BOOLEAN(0, "verify", &verify, "stricter reference checking, "
-		    "requires exact ref path"),
+	OPT_BOOLEAN(0, "tags", &tags_only, N_("only show tags (can be combined with heads)")),
+	OPT_BOOLEAN(0, "heads", &heads_only, N_("only show heads (can be combined with tags)")),
+	OPT_BOOLEAN(0, "verify", &verify, N_("stricter reference checking, "
+		    "requires exact ref path")),
 	{ OPTION_BOOLEAN, 'h', NULL, &show_head, NULL,
-	  "show the HEAD reference",
+	  N_("show the HEAD reference"),
 	  PARSE_OPT_NOARG | PARSE_OPT_HIDDEN },
-	OPT_BOOLEAN(0, "head", &show_head, "show the HEAD reference"),
+	OPT_BOOLEAN(0, "head", &show_head, N_("show the HEAD reference")),
 	OPT_BOOLEAN('d', "dereference", &deref_tags,
-		    "dereference tags into object IDs"),
-	{ OPTION_CALLBACK, 's', "hash", &abbrev, "n",
-	  "only show SHA1 hash using <n> digits",
+		    N_("dereference tags into object IDs")),
+	{ OPTION_CALLBACK, 's', "hash", &abbrev, N_("n"),
+	  N_("only show SHA1 hash using <n> digits"),
 	  PARSE_OPT_OPTARG, &hash_callback },
 	OPT__ABBREV(&abbrev),
 	OPT__QUIET(&quiet,
-		   "do not print results to stdout (useful with --verify)"),
+		   N_("do not print results to stdout (useful with --verify)")),
 	{ OPTION_CALLBACK, 0, "exclude-existing", &exclude_existing_arg,
-	  "pattern", "show refs from stdin that aren't in local repository",
+	  N_("pattern"), N_("show refs from stdin that aren't in local repository"),
 	  PARSE_OPT_OPTARG | PARSE_OPT_NONEG, exclude_existing_callback },
-	{ OPTION_CALLBACK, 0, "help-all", NULL, NULL, "show usage",
+	{ OPTION_CALLBACK, 0, "help-all", NULL, NULL, N_("show usage"),
 	  PARSE_OPT_HIDDEN | PARSE_OPT_NOARG, help_callback },
 	OPT_END()
 };
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 58/65] i18n: symbolic-ref: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (53 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 57/65] i18n: show-ref: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 59/65] i18n: tag: " Nguyễn Thái Ngọc Duy
                       ` (8 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/symbolic-ref.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/builtin/symbolic-ref.c b/builtin/symbolic-ref.c
index 801d62e..9e92828 100644
--- a/builtin/symbolic-ref.c
+++ b/builtin/symbolic-ref.c
@@ -4,7 +4,7 @@
 #include "parse-options.h"
 
 static const char * const git_symbolic_ref_usage[] = {
-	"git symbolic-ref [options] name [ref]",
+	N_("git symbolic-ref [options] name [ref]"),
 	NULL
 };
 
@@ -35,9 +35,9 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix)
 	const char *msg = NULL;
 	struct option options[] = {
 		OPT__QUIET(&quiet,
-			"suppress error message for non-symbolic (detached) refs"),
-		OPT_BOOL(0, "short", &shorten, "shorten ref output"),
-		OPT_STRING('m', NULL, &msg, "reason", "reason of the update"),
+			N_("suppress error message for non-symbolic (detached) refs")),
+		OPT_BOOL(0, "short", &shorten, N_("shorten ref output")),
+		OPT_STRING('m', NULL, &msg, N_("reason"), N_("reason of the update")),
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 59/65] i18n: tag: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (54 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 58/65] i18n: symbolic-ref: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 60/65] i18n: update-index: " Nguyễn Thái Ngọc Duy
                       ` (7 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/tag.c | 56 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/builtin/tag.c b/builtin/tag.c
index 4fb6bd7..326fe5f 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -19,11 +19,11 @@
 #include "column.h"
 
 static const char * const git_tag_usage[] = {
-	"git tag [-a|-s|-u <key-id>] [-f] [-m <msg>|-F <file>] <tagname> [<head>]",
-	"git tag -d <tagname>...",
-	"git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>] "
-		"\n\t\t[<pattern>...]",
-	"git tag -v <tagname>...",
+	N_("git tag [-a|-s|-u <key-id>] [-f] [-m <msg>|-F <file>] <tagname> [<head>]"),
+	N_("git tag -d <tagname>..."),
+	N_("git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>] "
+		"\n\t\t[<pattern>...]"),
+	N_("git tag -v <tagname>..."),
 	NULL
 };
 
@@ -444,37 +444,37 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
 	struct msg_arg msg = { 0, STRBUF_INIT };
 	struct commit_list *with_commit = NULL;
 	struct option options[] = {
-		OPT_BOOLEAN('l', "list", &list, "list tag names"),
-		{ OPTION_INTEGER, 'n', NULL, &lines, "n",
-				"print <n> lines of each tag message",
+		OPT_BOOLEAN('l', "list", &list, N_("list tag names")),
+		{ OPTION_INTEGER, 'n', NULL, &lines, N_("n"),
+				N_("print <n> lines of each tag message"),
 				PARSE_OPT_OPTARG, NULL, 1 },
-		OPT_BOOLEAN('d', "delete", &delete, "delete tags"),
-		OPT_BOOLEAN('v', "verify", &verify, "verify tags"),
+		OPT_BOOLEAN('d', "delete", &delete, N_("delete tags")),
+		OPT_BOOLEAN('v', "verify", &verify, N_("verify tags")),
 
-		OPT_GROUP("Tag creation options"),
+		OPT_GROUP(N_("Tag creation options")),
 		OPT_BOOLEAN('a', "annotate", &annotate,
-					"annotated tag, needs a message"),
-		OPT_CALLBACK('m', "message", &msg, "message",
-			     "tag message", parse_msg_arg),
-		OPT_FILENAME('F', "file", &msgfile, "read message from file"),
-		OPT_BOOLEAN('s', "sign", &opt.sign, "annotated and GPG-signed tag"),
-		OPT_STRING(0, "cleanup", &cleanup_arg, "mode",
-			"how to strip spaces and #comments from message"),
-		OPT_STRING('u', "local-user", &keyid, "key-id",
-					"use another key to sign the tag"),
-		OPT__FORCE(&force, "replace the tag if exists"),
-		OPT_COLUMN(0, "column", &colopts, "show tag list in columns"),
-
-		OPT_GROUP("Tag listing options"),
+					N_("annotated tag, needs a message")),
+		OPT_CALLBACK('m', "message", &msg, N_("message"),
+			     N_("tag message"), parse_msg_arg),
+		OPT_FILENAME('F', "file", &msgfile, N_("read message from file")),
+		OPT_BOOLEAN('s', "sign", &opt.sign, N_("annotated and GPG-signed tag")),
+		OPT_STRING(0, "cleanup", &cleanup_arg, N_("mode"),
+			N_("how to strip spaces and #comments from message")),
+		OPT_STRING('u', "local-user", &keyid, N_("key-id"),
+					N_("use another key to sign the tag")),
+		OPT__FORCE(&force, N_("replace the tag if exists")),
+		OPT_COLUMN(0, "column", &colopts, N_("show tag list in columns")),
+
+		OPT_GROUP(N_("Tag listing options")),
 		{
-			OPTION_CALLBACK, 0, "contains", &with_commit, "commit",
-			"print only tags that contain the commit",
+			OPTION_CALLBACK, 0, "contains", &with_commit, N_("commit"),
+			N_("print only tags that contain the commit"),
 			PARSE_OPT_LASTARG_DEFAULT,
 			parse_opt_with_commit, (intptr_t)"HEAD",
 		},
 		{
-			OPTION_CALLBACK, 0, "points-at", NULL, "object",
-			"print only tags of the object", 0, parse_opt_points_at
+			OPTION_CALLBACK, 0, "points-at", NULL, N_("object"),
+			N_("print only tags of the object"), 0, parse_opt_points_at
 		},
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 60/65] i18n: update-index: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (55 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 59/65] i18n: tag: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 61/65] i18n: update-ref: " Nguyễn Thái Ngọc Duy
                       ` (6 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/update-index.c | 54 +++++++++++++++++++++++++-------------------------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/builtin/update-index.c b/builtin/update-index.c
index 5f038d6..d611b98 100644
--- a/builtin/update-index.c
+++ b/builtin/update-index.c
@@ -402,7 +402,7 @@ static void read_index_info(int line_termination)
 }
 
 static const char * const update_index_usage[] = {
-	"git update-index [options] [--] [<file>...]",
+	N_("git update-index [options] [--] [<file>...]"),
 	NULL
 };
 
@@ -717,79 +717,79 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
 	int parseopt_state = PARSE_OPT_UNKNOWN;
 	struct option options[] = {
 		OPT_BIT('q', NULL, &refresh_args.flags,
-			"continue refresh even when index needs update",
+			N_("continue refresh even when index needs update"),
 			REFRESH_QUIET),
 		OPT_BIT(0, "ignore-submodules", &refresh_args.flags,
-			"refresh: ignore submodules",
+			N_("refresh: ignore submodules"),
 			REFRESH_IGNORE_SUBMODULES),
 		OPT_SET_INT(0, "add", &allow_add,
-			"do not ignore new files", 1),
+			N_("do not ignore new files"), 1),
 		OPT_SET_INT(0, "replace", &allow_replace,
-			"let files replace directories and vice-versa", 1),
+			N_("let files replace directories and vice-versa"), 1),
 		OPT_SET_INT(0, "remove", &allow_remove,
-			"notice files missing from worktree", 1),
+			N_("notice files missing from worktree"), 1),
 		OPT_BIT(0, "unmerged", &refresh_args.flags,
-			"refresh even if index contains unmerged entries",
+			N_("refresh even if index contains unmerged entries"),
 			REFRESH_UNMERGED),
 		{OPTION_CALLBACK, 0, "refresh", &refresh_args, NULL,
-			"refresh stat information",
+			N_("refresh stat information"),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG,
 			refresh_callback},
 		{OPTION_CALLBACK, 0, "really-refresh", &refresh_args, NULL,
-			"like --refresh, but ignore assume-unchanged setting",
+			N_("like --refresh, but ignore assume-unchanged setting"),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG,
 			really_refresh_callback},
 		{OPTION_LOWLEVEL_CALLBACK, 0, "cacheinfo", NULL,
-			"<mode> <object> <path>",
-			"add the specified entry to the index",
+			N_("<mode> <object> <path>"),
+			N_("add the specified entry to the index"),
 			PARSE_OPT_NOARG |	/* disallow --cacheinfo=<mode> form */
 			PARSE_OPT_NONEG | PARSE_OPT_LITERAL_ARGHELP,
 			(parse_opt_cb *) cacheinfo_callback},
-		{OPTION_CALLBACK, 0, "chmod", &set_executable_bit, "(+/-)x",
-			"override the executable bit of the listed files",
+		{OPTION_CALLBACK, 0, "chmod", &set_executable_bit, N_("(+/-)x"),
+			N_("override the executable bit of the listed files"),
 			PARSE_OPT_NONEG | PARSE_OPT_LITERAL_ARGHELP,
 			chmod_callback},
 		{OPTION_SET_INT, 0, "assume-unchanged", &mark_valid_only, NULL,
-			"mark files as \"not changing\"",
+			N_("mark files as \"not changing\""),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, MARK_FLAG},
 		{OPTION_SET_INT, 0, "no-assume-unchanged", &mark_valid_only, NULL,
-			"clear assumed-unchanged bit",
+			N_("clear assumed-unchanged bit"),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, UNMARK_FLAG},
 		{OPTION_SET_INT, 0, "skip-worktree", &mark_skip_worktree_only, NULL,
-			"mark files as \"index-only\"",
+			N_("mark files as \"index-only\""),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, MARK_FLAG},
 		{OPTION_SET_INT, 0, "no-skip-worktree", &mark_skip_worktree_only, NULL,
-			"clear skip-worktree bit",
+			N_("clear skip-worktree bit"),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, UNMARK_FLAG},
 		OPT_SET_INT(0, "info-only", &info_only,
-			"add to index only; do not add content to object database", 1),
+			N_("add to index only; do not add content to object database"), 1),
 		OPT_SET_INT(0, "force-remove", &force_remove,
-			"remove named paths even if present in worktree", 1),
+			N_("remove named paths even if present in worktree"), 1),
 		OPT_SET_INT('z', NULL, &line_termination,
-			"with --stdin: input lines are terminated by null bytes", '\0'),
+			N_("with --stdin: input lines are terminated by null bytes"), '\0'),
 		{OPTION_LOWLEVEL_CALLBACK, 0, "stdin", &read_from_stdin, NULL,
-			"read list of paths to be updated from standard input",
+			N_("read list of paths to be updated from standard input"),
 			PARSE_OPT_NONEG | PARSE_OPT_NOARG,
 			(parse_opt_cb *) stdin_callback},
 		{OPTION_LOWLEVEL_CALLBACK, 0, "index-info", &line_termination, NULL,
-			"add entries from standard input to the index",
+			N_("add entries from standard input to the index"),
 			PARSE_OPT_NONEG | PARSE_OPT_NOARG,
 			(parse_opt_cb *) stdin_cacheinfo_callback},
 		{OPTION_LOWLEVEL_CALLBACK, 0, "unresolve", &has_errors, NULL,
-			"repopulate stages #2 and #3 for the listed paths",
+			N_("repopulate stages #2 and #3 for the listed paths"),
 			PARSE_OPT_NONEG | PARSE_OPT_NOARG,
 			(parse_opt_cb *) unresolve_callback},
 		{OPTION_LOWLEVEL_CALLBACK, 'g', "again", &has_errors, NULL,
-			"only update entries that differ from HEAD",
+			N_("only update entries that differ from HEAD"),
 			PARSE_OPT_NONEG | PARSE_OPT_NOARG,
 			(parse_opt_cb *) reupdate_callback},
 		OPT_BIT(0, "ignore-missing", &refresh_args.flags,
-			"ignore files missing from worktree",
+			N_("ignore files missing from worktree"),
 			REFRESH_IGNORE_MISSING),
 		OPT_SET_INT(0, "verbose", &verbose,
-			"report actions to standard output", 1),
+			N_("report actions to standard output"), 1),
 		{OPTION_CALLBACK, 0, "clear-resolve-undo", NULL, NULL,
-			"(for porcelains) forget saved unresolved conflicts",
+			N_("(for porcelains) forget saved unresolved conflicts"),
 			PARSE_OPT_NOARG | PARSE_OPT_NONEG,
 			resolve_undo_clear_callback},
 		OPT_INTEGER(0, "index-version", &preferred_index_format,
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 61/65] i18n: update-ref: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (56 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 60/65] i18n: update-index: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 62/65] i18n: update-server-info: " Nguyễn Thái Ngọc Duy
                       ` (5 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/update-ref.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/builtin/update-ref.c b/builtin/update-ref.c
index 835c62a..b30394f 100644
--- a/builtin/update-ref.c
+++ b/builtin/update-ref.c
@@ -4,8 +4,8 @@
 #include "parse-options.h"
 
 static const char * const git_update_ref_usage[] = {
-	"git update-ref [options] -d <refname> [<oldval>]",
-	"git update-ref [options]    <refname> <newval> [<oldval>]",
+	N_("git update-ref [options] -d <refname> [<oldval>]"),
+	N_("git update-ref [options]    <refname> <newval> [<oldval>]"),
 	NULL
 };
 
@@ -15,10 +15,10 @@ int cmd_update_ref(int argc, const char **argv, const char *prefix)
 	unsigned char sha1[20], oldsha1[20];
 	int delete = 0, no_deref = 0, flags = 0;
 	struct option options[] = {
-		OPT_STRING( 'm', NULL, &msg, "reason", "reason of the update"),
-		OPT_BOOLEAN('d', NULL, &delete, "deletes the reference"),
+		OPT_STRING( 'm', NULL, &msg, N_("reason"), N_("reason of the update")),
+		OPT_BOOLEAN('d', NULL, &delete, N_("deletes the reference")),
 		OPT_BOOLEAN( 0 , "no-deref", &no_deref,
-					"update <refname> not the one it points to"),
+					N_("update <refname> not the one it points to")),
 		OPT_END(),
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 62/65] i18n: update-server-info: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (57 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 61/65] i18n: update-ref: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 63/65] i18n: verify-pack: " Nguyễn Thái Ngọc Duy
                       ` (4 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/update-server-info.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/update-server-info.c b/builtin/update-server-info.c
index 0d63c44..6c8cc3e 100644
--- a/builtin/update-server-info.c
+++ b/builtin/update-server-info.c
@@ -3,7 +3,7 @@
 #include "parse-options.h"
 
 static const char * const update_server_info_usage[] = {
-	"git update-server-info [--force]",
+	N_("git update-server-info [--force]"),
 	NULL
 };
 
@@ -11,7 +11,7 @@ int cmd_update_server_info(int argc, const char **argv, const char *prefix)
 {
 	int force = 0;
 	struct option options[] = {
-		OPT__FORCE(&force, "update the info files from scratch"),
+		OPT__FORCE(&force, N_("update the info files from scratch")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 63/65] i18n: verify-pack: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (58 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 62/65] i18n: update-server-info: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 64/65] i18n: verify-tag: " Nguyễn Thái Ngọc Duy
                       ` (3 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/verify-pack.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin/verify-pack.c b/builtin/verify-pack.c
index e841b4a..66cd2df 100644
--- a/builtin/verify-pack.c
+++ b/builtin/verify-pack.c
@@ -53,7 +53,7 @@ static int verify_one_pack(const char *path, unsigned int flags)
 }
 
 static const char * const verify_pack_usage[] = {
-	"git verify-pack [-v|--verbose] [-s|--stat-only] <pack>...",
+	N_("git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..."),
 	NULL
 };
 
@@ -63,9 +63,9 @@ int cmd_verify_pack(int argc, const char **argv, const char *prefix)
 	unsigned int flags = 0;
 	int i;
 	const struct option verify_pack_options[] = {
-		OPT_BIT('v', "verbose", &flags, "verbose",
+		OPT_BIT('v', "verbose", &flags, N_("verbose"),
 			VERIFY_PACK_VERBOSE),
-		OPT_BIT('s', "stat-only", &flags, "show statistics only",
+		OPT_BIT('s', "stat-only", &flags, N_("show statistics only"),
 			VERIFY_PACK_STAT_ONLY),
 		OPT_END()
 	};
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 64/65] i18n: verify-tag: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (59 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 63/65] i18n: verify-pack: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 11:14     ` [PATCH 65/65] i18n: write-tree: " Nguyễn Thái Ngọc Duy
                       ` (2 subsequent siblings)
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/verify-tag.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/verify-tag.c b/builtin/verify-tag.c
index 986789f..a8eee88 100644
--- a/builtin/verify-tag.c
+++ b/builtin/verify-tag.c
@@ -14,7 +14,7 @@
 #include "gpg-interface.h"
 
 static const char * const verify_tag_usage[] = {
-		"git verify-tag [-v|--verbose] <tag>...",
+		N_("git verify-tag [-v|--verbose] <tag>..."),
 		NULL
 };
 
@@ -70,7 +70,7 @@ int cmd_verify_tag(int argc, const char **argv, const char *prefix)
 {
 	int i = 1, verbose = 0, had_error = 0;
 	const struct option verify_tag_options[] = {
-		OPT__VERBOSE(&verbose, "print tag contents"),
+		OPT__VERBOSE(&verbose, N_("print tag contents")),
 		OPT_END()
 	};
 
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* [PATCH 65/65] i18n: write-tree: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (60 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 64/65] i18n: verify-tag: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 11:14     ` Nguyễn Thái Ngọc Duy
  2012-05-28 22:47     ` [PATCH 03/65] i18n: archive: " Jonathan Nieder
  2012-05-29 20:31     ` Junio C Hamano
  63 siblings, 0 replies; 87+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2012-05-28 11:14 UTC (permalink / raw)
  To: git
  Cc: Jonathan Niedier, Junio C Hamano,
	Ævar Arnfjörð Bjarmason, Jiang Xin,
	Nguyễn Thái Ngọc Duy

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/write-tree.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/builtin/write-tree.c b/builtin/write-tree.c
index b223af4..084c0df 100644
--- a/builtin/write-tree.c
+++ b/builtin/write-tree.c
@@ -10,7 +10,7 @@
 #include "parse-options.h"
 
 static const char * const write_tree_usage[] = {
-	"git write-tree [--missing-ok] [--prefix=<prefix>/]",
+	N_("git write-tree [--missing-ok] [--prefix=<prefix>/]"),
 	NULL
 };
 
@@ -21,13 +21,13 @@ int cmd_write_tree(int argc, const char **argv, const char *unused_prefix)
 	unsigned char sha1[20];
 	const char *me = "git-write-tree";
 	struct option write_tree_options[] = {
-		OPT_BIT(0, "missing-ok", &flags, "allow missing objects",
+		OPT_BIT(0, "missing-ok", &flags, N_("allow missing objects"),
 			WRITE_TREE_MISSING_OK),
-		{ OPTION_STRING, 0, "prefix", &prefix, "<prefix>/",
-		  "write tree object for a subdirectory <prefix>" ,
+		{ OPTION_STRING, 0, "prefix", &prefix, N_("<prefix>/"),
+		  N_("write tree object for a subdirectory <prefix>") ,
 		  PARSE_OPT_LITERAL_ARGHELP },
 		{ OPTION_BIT, 0, "ignore-cache-tree", &flags, NULL,
-		  "only useful for debugging",
+		  N_("only useful for debugging"),
 		  PARSE_OPT_HIDDEN | PARSE_OPT_NOARG, NULL,
 		  WRITE_TREE_IGNORE_CACHE_TREE },
 		OPT_END()
-- 
1.7.10.2.549.g9354186

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (61 preceding siblings ...)
  2012-05-28 11:14     ` [PATCH 65/65] i18n: write-tree: " Nguyễn Thái Ngọc Duy
@ 2012-05-28 22:47     ` Jonathan Nieder
  2012-05-29 11:30       ` Nguyen Thai Ngoc Duy
  2012-05-29 20:31     ` Junio C Hamano
  63 siblings, 1 reply; 87+ messages in thread
From: Jonathan Nieder @ 2012-05-28 22:47 UTC (permalink / raw)
  To: Nguyễn Thái Ngọc Duy
  Cc: git, Junio C Hamano, Ævar Arnfjörð Bjarmason, Jiang Xin

Nguyễn Thái Ngọc Duy wrote:

>  rc times are usually more quiet times, let's slip the series in..
>  minor conflict with revert topic in pu, but should be easy to
>  resolve.

Thanks.  Some semi-automated checks follow. :)

"git log --name-status" reveals that files these patches change don't
overlap.  Good.

Filtering out changes involving N, _, (, and ) by running "git diff
--word-diff-regex='[^N_()]' origin/master", the remaining changes are
in

	builtin/for-each-ref.c
	builtin/ls-tree.c
	builtin/notes.c
	builtin/rev-parse.c
	builtin/show-branch.c

These are whitespace adjustments to keep continuation lines lined up
given the extra "N_(" characters, except for the for-each-ref.c change
which is an unrelated conversion of 8 spaces to a tab (also seems
fine).

GETTEXT_POISON is annoyed by

  t0006.1-11 relative dates

	test-date show $t >actual &&
	test_cmp expect actual

  t0040.1 test help

	test_must_fail test-parse-options -h > output 2> output.err &&
	test_cmp expect output

  t0040.11-12 handling of unknown options

	test_must_fail test-parse-options $* >output 2>output.err &&
	test_cmp expect output.err

  t0040.27 form of errors from OPT_CALLBACK

	test_cmp expect.err output.err

  t1300.48 no arguments, but no crash

	grep usage output

  t1502.1 --parseopt help output

	test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec &&
	test_cmp expect output

  t2006.1,2 checkout-index --gobbledegook, -h

	grep "[Uu]sage" err

  t2107.2 update-index --nonsense dumps usage

	grep "[Uu]sage: git update-index" err

  t3004.3 ls-files with nonsense option

	grep "[Uu]sage: git ls-files" actual

  t3004.4 ls-files -h in corrupt repository

	grep "[Uu]sage: git ls-files " broken/usage

  t3200.3 branch -h in broken repository

	grep "[Uu]sage" broken/usage

  t3200.10 branch -m dumps usage

	grep "[Uu]sage: git branch" err'

  t3501.2,3 cherry-pick/revert --nonsense

	test_must_fail git cherry-pick --nonsense 2>msg &&
	grep '[Uu]sage:' msg

  t4006.4-7 diff --stat, --shorstat

	git diff HEAD --stat >actual &&
	test_cmp expect actual

  t4120.3,5 apply with too large -p

	grep "removing 3 leading" err

  t4012.5-6 apply detects corrupt patch

	 detected=`expr "$detected" : "fatal.*at line \\([0-9]*\\)\$"` &&

  t4133.2 apply diff with consistent filename in headers

	grep "inconsistent new filename" err &&

  t4200.24,25 rerere --no-no-rerere-autoupdate, -h

	grep [Uu]sage err &&

  t4202.33 log --graph with diff and stats

	sed -e 's/ *$//' \
	    -e 's/commit [0-9a-f]*$/commit COMMIT_OBJECT_NAME/' \
	    -e 's/Merge: [ 0-9a-f]*$/Merge: MERGE_PARENTS/' \
	    -e 's/Merge tag.*/Merge HEADS DESCRIPTION/' \
	    -e 's/Merge commit.*/Merge HEADS DESCRIPTION/' \
	    -e 's/, 0 deletions(-)//' \
	    -e 's/, 0 insertions(+)//' \
	    -e 's/ 1 files changed, / 1 file changed, /' \
	    -e 's/, 1 deletions(-)/, 1 deletion(-)/' \
	    -e 's/, 1 insertions(+)/, 1 insertion(+)/'

  t4205.12 NUL separation with --stat

	expecting success: 
		  stat0_part=$(git diff --stat HEAD^ HEAD) &&
		  stat1_part=$(git diff --stat --root HEAD^) &&
		  printf "add bar\n$stat0_part\n\0initial\n$stat1_part\n" >expected &&
		  git log -z --stat --pretty="format:%s" >actual &&
		  test_cmp expected actual

	Binary files expected and actual differ
	not ok - 12 NUL separation with --stat
	$ xxd trash\ directory.t4205-log-pretty-formats/expected
	0000000: 6164 6420 6261 720a 2320 4745 5454 4558  add bar.# GETTEX
	0000010: 5420 504f 4953 4f4e 2023 0a00 696e 6974  T POISON #..init
	0000020: 6961 6c0a 2320 4745 5454 4558 5420 504f  ial.# GETTEXT PO
	0000030: 4953 4f4e 2023 0a                        ISON #.
	$ xxd trash\ directory.t4205-log-pretty-formats/actual 
	0000000: 6164 6420 6261 720a 2320 4745 5454 4558  add bar.# GETTEX
	0000010: 5420 504f 4953 4f4e 2023 0069 6e69 7469  T POISON #.initi
	0000020: 616c 0a23 2047 4554 5445 5854 2050 4f49  al.# GETTEXT POI
	0000030: 534f 4e20 23                             SON #

  t5300.32 index-pack detects the SHA1 collision

	grep "SHA1 COLLISION FOUND" msg

  t5505.2-3,6-9,13,15,46 remote porcelain-ish

	actual=$(git remote show "$1" | sed -ne 's|^    \(.*\) tracked$|\1|p')
	shift &&
	tokens_match "$*" "$actual"

  r6500.2-3 gc --gobbledegook, -h

	grep "[Uu]sage: git gc" err

  t7508.5 status --column

	COLUMNS=50 git status --column="column dense" >output &&
	test_cmp expect output

  t7600.3 merge -h

	grep "[Uu]sage: git merge" broken/usage

Assuming we want to require scripts to set LC_ALL=C before trying
to parse error messages and descriptions within usage strings (which
seems like a sensible requirement to me), these look like test suite
bugs and not bugs in git itself.  So for what it's worth,

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-28 22:47     ` [PATCH 03/65] i18n: archive: " Jonathan Nieder
@ 2012-05-29 11:30       ` Nguyen Thai Ngoc Duy
  2012-05-29 12:14         ` Jonathan Nieder
  0 siblings, 1 reply; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-05-29 11:30 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: git, Junio C Hamano, Ævar Arnfjörð, Jiang Xin

On Tue, May 29, 2012 at 5:47 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:
> GETTEXT_POISON is annoyed by
> ...

I have not followed gettext poison development, so this question may
be silly. Is there any value in running the test suite with
GETTEXT_POISON on?

I can see the value in running the poisoned command manually under
many scenarios, so we are certain we do not miss any i18n strings. But
current test suite may not be suitable for automating that task (i.e.
spot new i18n strings). The test suite is currently more focused on
features than human readable output. And some strings like die("...")
may never happen unless you tweak the source code to emulate a broken
disk or so.
-- 
Duy

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-29 11:30       ` Nguyen Thai Ngoc Duy
@ 2012-05-29 12:14         ` Jonathan Nieder
  2012-05-29 18:49           ` Junio C Hamano
  0 siblings, 1 reply; 87+ messages in thread
From: Jonathan Nieder @ 2012-05-29 12:14 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy
  Cc: git, Junio C Hamano, Ævar Arnfjörð Bjarmason, Jiang Xin

Nguyen Thai Ngoc Duy wrote:

>                         The test suite is currently more focused on
> features than human readable output.

Thanks for clarifying this.  Yes, that's the point of the
GETTEXT_POISON check.  It is supposed to make sure that running git in
another locale does not break features by modifying text that
(internal and external) scripts parse.

For a sanity check on the messages marked for translation from a
translator's perspective, it is generally better to just look at the
pot file.  And from the end user's perspective, I don't know a better
way to test than to just use git a little.

As a side effect, GETTEXT_POISON keeps the test suite usable for
exercising a copy of git configured for an actual other locale, which
means that in the future the test suite could be used to check for
problems due to differences between locales other than the translated
messages (think: charset, collation order, etc).

Ciao,
Jonathan

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-29 12:14         ` Jonathan Nieder
@ 2012-05-29 18:49           ` Junio C Hamano
  2012-05-30  5:11             ` Nguyen Thai Ngoc Duy
  0 siblings, 1 reply; 87+ messages in thread
From: Junio C Hamano @ 2012-05-29 18:49 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Nguyen Thai Ngoc Duy, git,
	Ævar Arnfjörð Bjarmason, Jiang Xin

Jonathan Nieder <jrnieder@gmail.com> writes:

> Nguyen Thai Ngoc Duy wrote:
>
>>                         The test suite is currently more focused on
>> features than human readable output.
>
> Thanks for clarifying this.  Yes, that's the point of the
> GETTEXT_POISON check.  It is supposed to make sure that running git in
> another locale does not break features by modifying text that
> (internal and external) scripts parse.

Correct.  The most important thing to review in test scripts is that
tests that verify output from the plumbing commands are *not* marked
with GETTEXT_POISON (hence test_i18ncmp).  IOW, storing "ls-files"
output and then checking it with expected result using test_i18ncmp
is *wrong*, as it won't catch mistakenly marking plumbing messages
with _() and N_().

> For a sanity check on the messages marked for translation from a
> translator's perspective, it is generally better to just look at the
> pot file.  And from the end user's perspective, I don't know a better
> way to test than to just use git a little.
>
> As a side effect, GETTEXT_POISON keeps the test suite usable for
> exercising a copy of git configured for an actual other locale, which
> means that in the future the test suite could be used to check for
> problems due to differences between locales other than the translated
> messages (think: charset, collation order, etc).
>
> Ciao,
> Jonathan

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
                       ` (62 preceding siblings ...)
  2012-05-28 22:47     ` [PATCH 03/65] i18n: archive: " Jonathan Nieder
@ 2012-05-29 20:31     ` Junio C Hamano
  2012-05-29 20:37       ` Jonathan Nieder
  63 siblings, 1 reply; 87+ messages in thread
From: Junio C Hamano @ 2012-05-29 20:31 UTC (permalink / raw)
  To: Nguyễn Thái Ngọc Duy
  Cc: git, Jonathan Niedier, Ævar Arnfjörð Bjarmason, Jiang Xin

Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:

> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  rc times are usually more quiet times, let's slip the series in..
>  minor conflict with revert topic in pu, but should be easy to
>  resolve.

"Yes", "no", and "does not matter".  I can buy this, though:

    Let's show this early, so that others are aware of this effort,
    and if they happen to be touching strings in the affected files,
    they can take one of these patches and roll it in their series
    when post 1.7.11 window opens.

> diff --git a/archive.c b/archive.c
> index a484433..2584324 100644
> --- a/archive.c
> +++ b/archive.c
> @@ -7,10 +7,10 @@
>  #include "unpack-trees.h"
>  
>  static char const * const archive_usage[] = {
> -	"git archive [options] <tree-ish> [<path>...]",
> -	"git archive --list",
> -	"git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]",
> -	"git archive --remote <repo> [--exec <cmd>] --list",
> +	N_("git archive [options] <tree-ish> [<path>...]"),
> +	N_("git archive --list"),
> +	N_("git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]"),
> +	N_("git archive --remote <repo> [--exec <cmd>] --list"),
>  	NULL
>  };

I can understand the "help" text member of OPT_BLAH() construct, but
do we really want to translate the above?

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-29 20:31     ` Junio C Hamano
@ 2012-05-29 20:37       ` Jonathan Nieder
  2012-05-29 21:08         ` Junio C Hamano
                           ` (2 more replies)
  0 siblings, 3 replies; 87+ messages in thread
From: Jonathan Nieder @ 2012-05-29 20:37 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Nguyễn Thái Ngọc Duy, git,
	Ævar Arnfjörð Bjarmason, Jiang Xin

Junio C Hamano wrote:
> Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:

>> --- a/archive.c
>> +++ b/archive.c
>> @@ -7,10 +7,10 @@
>>  #include "unpack-trees.h"
>>  
>>  static char const * const archive_usage[] = {
>> -	"git archive [options] <tree-ish> [<path>...]",
>> -	"git archive --list",
>> -	"git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]",
>> -	"git archive --remote <repo> [--exec <cmd>] --list",
>> +	N_("git archive [options] <tree-ish> [<path>...]"),
>> +	N_("git archive --list"),
>> +	N_("git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]"),
>> +	N_("git archive --remote <repo> [--exec <cmd>] --list"),
>>  	NULL
>>  };
>
> I can understand the "help" text member of OPT_BLAH() construct, but
> do we really want to translate the above?

<repo>, <cmd>, [options], <tree-ish>, and <path> may be spelled
differently in other languages.  Would it be possible to take care
of this kind of substitution automatically?

At least "git archive --list" should probably be kept untranslated
to lessen the translator workload a bit.  Good catch.

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-29 20:37       ` Jonathan Nieder
@ 2012-05-29 21:08         ` Junio C Hamano
  2012-05-30  5:27         ` Nguyen Thai Ngoc Duy
  2012-06-02 10:55         ` Nguyen Thai Ngoc Duy
  2 siblings, 0 replies; 87+ messages in thread
From: Junio C Hamano @ 2012-05-29 21:08 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Nguyễn Thái Ngọc Duy, git,
	Ævar Arnfjörð Bjarmason, Jiang Xin

Jonathan Nieder <jrnieder@gmail.com> writes:

> Junio C Hamano wrote:
>> Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
>
>>> --- a/archive.c
>>> +++ b/archive.c
>>> @@ -7,10 +7,10 @@
>>>  #include "unpack-trees.h"
>>>  
>>>  static char const * const archive_usage[] = {
>>> -	"git archive [options] <tree-ish> [<path>...]",
>>> -	"git archive --list",
>>> -	"git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]",
>>> -	"git archive --remote <repo> [--exec <cmd>] --list",
>>> +	N_("git archive [options] <tree-ish> [<path>...]"),
>>> +	N_("git archive --list"),
>>> +	N_("git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]"),
>>> +	N_("git archive --remote <repo> [--exec <cmd>] --list"),
>>>  	NULL
>>>  };
>>
>> I can understand the "help" text member of OPT_BLAH() construct, but
>> do we really want to translate the above?
>
> <repo>, <cmd>, [options], <tree-ish>, and <path> may be spelled
> differently in other languages.

OK, fair enough.

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-29 18:49           ` Junio C Hamano
@ 2012-05-30  5:11             ` Nguyen Thai Ngoc Duy
  2012-05-30  6:24               ` Jonathan Nieder
  0 siblings, 1 reply; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-05-30  5:11 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Jonathan Nieder, git, Ævar Arnfjörð, Jiang Xin

On Wed, May 30, 2012 at 1:49 AM, Junio C Hamano <gitster@pobox.com> wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:
>
>> Nguyen Thai Ngoc Duy wrote:
>>
>>>                         The test suite is currently more focused on
>>> features than human readable output.
>>
>> Thanks for clarifying this.  Yes, that's the point of the
>> GETTEXT_POISON check.  It is supposed to make sure that running git in
>> another locale does not break features by modifying text that
>> (internal and external) scripts parse.
>
> Correct.  The most important thing to review in test scripts is that
> tests that verify output from the plumbing commands are *not* marked
> with GETTEXT_POISON (hence test_i18ncmp).  IOW, storing "ls-files"
> output and then checking it with expected result using test_i18ncmp
> is *wrong*, as it won't catch mistakenly marking plumbing messages
> with _() and N_().

The intention is good, but the execution is not. Requiring special
flag to turn this feature on loses its value as normal "make test"
does not catch stuff like this. We might want to turn this on by
default (at least in the test suite), or LD_PRELOAD this feature in
when the test suite is run. Or generate a poisoned .mo file, then make
git use that.

Another thing is GETTEXT_POISON poisons too much. printf(_("this is
%s\n"), path); is turned to "# GETTEXT POISON #". There's no way for
test scripts to verify the correct "path" output.

Anyway I'll send a fixup patch later to make gettext poison test run pass again.
-- 
Duy

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-29 20:37       ` Jonathan Nieder
  2012-05-29 21:08         ` Junio C Hamano
@ 2012-05-30  5:27         ` Nguyen Thai Ngoc Duy
  2012-06-02 10:55         ` Nguyen Thai Ngoc Duy
  2 siblings, 0 replies; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-05-30  5:27 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Junio C Hamano, git, Ævar Arnfjörð, Jiang Xin

On Wed, May 30, 2012 at 3:37 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Junio C Hamano wrote:
>> Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
>
>>> --- a/archive.c
>>> +++ b/archive.c
>>> @@ -7,10 +7,10 @@
>>>  #include "unpack-trees.h"
>>>
>>>  static char const * const archive_usage[] = {
>>> -    "git archive [options] <tree-ish> [<path>...]",
>>> -    "git archive --list",
>>> -    "git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]",
>>> -    "git archive --remote <repo> [--exec <cmd>] --list",
>>> +    N_("git archive [options] <tree-ish> [<path>...]"),
>>> +    N_("git archive --list"),
>>> +    N_("git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]"),
>>> +    N_("git archive --remote <repo> [--exec <cmd>] --list"),
>>>      NULL
>>>  };
>>
>> I can understand the "help" text member of OPT_BLAH() construct, but
>> do we really want to translate the above?
>
> <repo>, <cmd>, [options], <tree-ish>, and <path> may be spelled
> differently in other languages.  Would it be possible to take care
> of this kind of substitution automatically?

not for the "[<path>...]" part

> At least "git archive --list" should probably be kept untranslated
> to lessen the translator workload a bit.  Good catch.

I use po-mode and for strings that no change is required like this,
simply C-j to copy as-is after a glance.
-- 
Duy

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-30  5:11             ` Nguyen Thai Ngoc Duy
@ 2012-05-30  6:24               ` Jonathan Nieder
  2012-05-30 12:25                 ` Nguyen Thai Ngoc Duy
  0 siblings, 1 reply; 87+ messages in thread
From: Jonathan Nieder @ 2012-05-30  6:24 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy
  Cc: Junio C Hamano, git, Ævar Arnfjörð Bjarmason, Jiang Xin

Nguyen Thai Ngoc Duy wrote:

>                             Or generate a poisoned .mo file, then make
> git use that.

Yes, I would like that very much.  I had vague ideas of using some
valid language code that doesn't correspond to a human language, but
an alternate GIT_TEXTDOMAINDIR might be simpler and work better.

> Another thing is GETTEXT_POISON poisons too much. printf(_("this is
> %s\n"), path); is turned to "# GETTEXT POISON #". There's no way for
> test scripts to verify the correct "path" output.

Somes like a good change. ;)

"this is %s\n" could be translated to "poison(%s)" or even "THIS IS
%s\n" to make it easy to recognize which string was poisoned.

When i18n plumbing was starting I thought this would be important and
made a mental note to implement a rot13 function that preserves printf
directives.  In the end I have wanted it much less often than I
thought I would.  In tests that check the effect of commands on a
repository, only checking the output of plumbing commands is just a
good idea anyway.  (But I can understand that preserving printf
directives would be useful for people wanting to test the UI.)

UI tests are tricky.  I can't imagine how a good test for translated
request-pull that doesn't pick a particular language could work, for
example.

Well, hopefully the above is amusing.  Sorry to ramble.

Thanks much again for this series --- the translated help makes it
much easier to imagine git to be a native speaker in a locale where
English is not the main language.

Jonathan

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-30  6:24               ` Jonathan Nieder
@ 2012-05-30 12:25                 ` Nguyen Thai Ngoc Duy
  2012-05-30 12:50                   ` Nguyen Thai Ngoc Duy
  0 siblings, 1 reply; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-05-30 12:25 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Junio C Hamano, git, Ævar Arnfjörð Bjarmason, Jiang Xin

On Wed, May 30, 2012 at 01:24:24AM -0500, Jonathan Nieder wrote:
> Nguyen Thai Ngoc Duy wrote:
> 
> >                             Or generate a poisoned .mo file, then make
> > git use that.
> 
> Yes, I would like that very much.  I had vague ideas of using some
> valid language code that doesn't correspond to a human language, but
> an alternate GIT_TEXTDOMAINDIR might be simpler and work better.

We're half way there with the following PoC patch. Now if only I could
trick gettext into accepting a fake language like "foo". Right now
"vi" is the sacrified one

$ make po/build/locale/vi/LC_MESSAGES/git.mo
$ GIT_TEXTDOMAINDIR=po/build/locale ./git st -abc
error: unknown switch `a'
.................................................

    -v, --verbose         ..........
    -s, --short           .....................
    -b, --branch          .......................
    --porcelain           .......................
    -z, --null            ..........................
    -u, --untracked-files[=<....>]
                          .....................................................................
    --ignored             ..................
    --ignore-submodules[=<....>]
                          ..................................................................................
    --column[=<.....>]    list untracked files in columns

We also need to improve the shredder to recognize shell variables,
then we can turn on GETTEXT_LOG_UNTRANSLATED to catch i18n messages
that are not marked

-- 8< --
diff --git a/Makefile b/Makefile
index 96ebcf9..cd55650 100644
--- a/Makefile
+++ b/Makefile
@@ -2345,6 +2345,18 @@ LOCALIZED_SH += t/t0200/test.sh
 LOCALIZED_PERL += t/t0200/test.perl
 endif
 
+shredder: shredder.c
+	$(QUIET_CC)$(CC) -o $@ $^
+
+po/build/locale/vi/LC_MESSAGES/git.mo: $(LOCALIZED_C) shredder
+	mkdir -p `dirname $@`
+	$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ $(XGETTEXT_FLAGS_C) $(LOCALIZED_C)
+	$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing $(XGETTEXT_FLAGS_SH) \
+		$(LOCALIZED_SH)
+	$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing $(XGETTEXT_FLAGS_PERL) \
+		$(LOCALIZED_PERL)
+	msgen $@+|sed 's/charset=CHARSET/charset=utf-8/'|sed '/^#, fuzzy/d'|msgfilter ./shredder|msgfmt -o $@ -
+
 po/git.pot: $(LOCALIZED_C)
 	$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ $(XGETTEXT_FLAGS_C) $(LOCALIZED_C)
 	$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing $(XGETTEXT_FLAGS_SH) \
diff --git a/shredder.c b/shredder.c
new file mode 100644
index 0000000..ea12c10
--- /dev/null
+++ b/shredder.c
@@ -0,0 +1,62 @@
+#include <stdio.h>
+#include <string.h>
+
+static const char *header =
+"Project-Id-Version: git.git\n"
+"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
+"POT-Creation-Date: 2012-05-15 06:42+0800\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: 2012-05-15 06:42+0800\n"
+"Language-Team: gettext poison <gettext@poison.org>\n"
+"Language: poison\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=nr != 1;\n";
+
+static int is_fmt = 0;
+static int shred(int ch)
+{
+	const char *terminators = "diouxXeEfFgGaAcsp%";
+	if (is_fmt && strchr(terminators, ch))
+		is_fmt = 0;
+	else if (!is_fmt && isprint(ch)) {
+		if (ch == '%')
+			is_fmt = 1;
+		else
+			ch = '.';
+	}
+	return ch;
+}
+
+int main(int ac, char **av)
+{
+	const char *first_msg = "Project-Id-Version: ";
+	char buf[32];
+	int gotten = 0, len = strlen(first_msg);
+	int ch;
+	while ((ch = fgetc(stdin)) != EOF)
+	{
+		if (gotten < len) {
+			buf[gotten++] = ch;
+			if (gotten == len) {
+				if (!strncmp(first_msg, buf, len)) {
+					fputs(header, stdout);
+					return 0;
+				} else {
+					int i;
+					for (i = 0; i < len; i++)
+						putchar(shred(buf[i]));
+				}
+			}
+			continue;
+		}
+		putchar(shred(ch));
+	}
+	if (gotten < len) {
+		int i;
+		for (i = 0; i < gotten; i++)
+			putchar(shred(buf[i]));
+	}
+	return 0;
+}
-- 8< --
-- 
Duy

^ permalink raw reply related	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-30 12:25                 ` Nguyen Thai Ngoc Duy
@ 2012-05-30 12:50                   ` Nguyen Thai Ngoc Duy
  0 siblings, 0 replies; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-05-30 12:50 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Junio C Hamano, git, Ævar Arnfjörð, Jiang Xin

On Wed, May 30, 2012 at 7:25 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
> We also need to improve the shredder to recognize shell variables,

Oh another idea for the shredder, we could replace the first and last
letters of a string with something different than the rest, maybe
brackets. That way we see clearly how fragmented a string is. Two many
brackets on a line is a good indication of i18n legos.
-- 
Duy

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-05-29 20:37       ` Jonathan Nieder
  2012-05-29 21:08         ` Junio C Hamano
  2012-05-30  5:27         ` Nguyen Thai Ngoc Duy
@ 2012-06-02 10:55         ` Nguyen Thai Ngoc Duy
  2012-06-02 12:44           ` Jonathan Nieder
  2 siblings, 1 reply; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-06-02 10:55 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Junio C Hamano, git, Ævar Arnfjörð, Jiang Xin

On Wed, May 30, 2012 at 3:37 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Junio C Hamano wrote:
>> Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
>
>>> --- a/archive.c
>>> +++ b/archive.c
>>> @@ -7,10 +7,10 @@
>>>  #include "unpack-trees.h"
>>>
>>>  static char const * const archive_usage[] = {
>>> -    "git archive [options] <tree-ish> [<path>...]",
>>> -    "git archive --list",
>>> -    "git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]",
>>> -    "git archive --remote <repo> [--exec <cmd>] --list",
>>> +    N_("git archive [options] <tree-ish> [<path>...]"),
>>> +    N_("git archive --list"),
>>> +    N_("git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]"),
>>> +    N_("git archive --remote <repo> [--exec <cmd>] --list"),
>>>      NULL
>>>  };
>>
>> I can understand the "help" text member of OPT_BLAH() construct, but
>> do we really want to translate the above?
>
> ...
>
> At least "git archive --list" should probably be kept untranslated
> to lessen the translator workload a bit.  Good catch.

Should it? On one hand, it's like 10 strings less for translator (I
fixed the series) but then we want to catch unmarked strings. _() will
always be called on "git archive --list" and will give fault positive
here. I intend to make "make test" warn every time it sees unmarked
strings, fault positives will be annoying.

Unless we have a notion to say "this string is deliberately kept
unstranslated", I think we better just mark them all.
-- 
Duy

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-06-02 10:55         ` Nguyen Thai Ngoc Duy
@ 2012-06-02 12:44           ` Jonathan Nieder
  2012-06-07 12:31             ` Nguyen Thai Ngoc Duy
  0 siblings, 1 reply; 87+ messages in thread
From: Jonathan Nieder @ 2012-06-02 12:44 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy
  Cc: Junio C Hamano, git, Ævar Arnfjörð Bjarmason, Jiang Xin

Nguyen Thai Ngoc Duy wrote:
> On Wed, May 30, 2012 at 3:37 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:

>> At least "git archive --list" should probably be kept untranslated
>> to lessen the translator workload a bit.  Good catch.
>
> Should it?

No, since to do so would break GETTEXT_LOG_UNTRANSLATED and it's not
worth it.  That looks like a great tool, by the way --- thanks for
finding it.

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-06-02 12:44           ` Jonathan Nieder
@ 2012-06-07 12:31             ` Nguyen Thai Ngoc Duy
  2012-06-07 12:41               ` Jonathan Nieder
  2012-06-07 18:03               ` Junio C Hamano
  0 siblings, 2 replies; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-06-07 12:31 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Jonathan Nieder, git, Ævar Arnfjörð, Jiang Xin

On Sat, Jun 2, 2012 at 7:44 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Nguyen Thai Ngoc Duy wrote:
>> On Wed, May 30, 2012 at 3:37 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:
>
>>> At least "git archive --list" should probably be kept untranslated
>>> to lessen the translator workload a bit.  Good catch.
>>
>> Should it?
>
> No, since to do so would break GETTEXT_LOG_UNTRANSLATED and it's not
> worth it.  That looks like a great tool, by the way --- thanks for
> finding it.

No changes to the series then. Junio, pu material perhaps? The
breaking gettext poison thing is different and I plan to kill gettext
poison soon (whether i succeed is another question of course).
-- 
Duy

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-06-07 12:31             ` Nguyen Thai Ngoc Duy
@ 2012-06-07 12:41               ` Jonathan Nieder
  2012-06-07 12:53                 ` Nguyen Thai Ngoc Duy
  2012-06-07 18:03               ` Junio C Hamano
  1 sibling, 1 reply; 87+ messages in thread
From: Jonathan Nieder @ 2012-06-07 12:41 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy
  Cc: Junio C Hamano, git, Ævar Arnfjörð Bjarmason, Jiang Xin

Nguyen Thai Ngoc Duy wrote:

> No changes to the series then. Junio, pu material perhaps? The
> breaking gettext poison thing is different and I plan to kill gettext
> poison soon (whether i succeed is another question of course).

If you mean to kill it by replacing it with a facility to run tests in
another locale, wouldn't all these testsuite bugs still be testsuite
bugs?

But I don't think that should delay your series.

Thanks,
Jonathan

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-06-07 12:41               ` Jonathan Nieder
@ 2012-06-07 12:53                 ` Nguyen Thai Ngoc Duy
  2012-06-07 19:50                   ` Jonathan Nieder
  0 siblings, 1 reply; 87+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-06-07 12:53 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Junio C Hamano, git, Ævar Arnfjörð, Jiang Xin

On Thu, Jun 7, 2012 at 7:41 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Nguyen Thai Ngoc Duy wrote:
>
>> No changes to the series then. Junio, pu material perhaps? The
>> breaking gettext poison thing is different and I plan to kill gettext
>> poison soon (whether i succeed is another question of course).
>
> If you mean to kill it by replacing it with a facility to run tests in
> another locale, wouldn't all these testsuite bugs still be testsuite
> bugs?

They still are and should be fixed when the new facility comes, so
there's no point fixing them now. I played with the poison .po
generation a bit and started to use libgettext-po, which would give us
more control over reading/writing .po. We could even perform
git-specific checks on po files..

The said plan is to build .mo for $LANG in po/build/poison-locale
(po/build/locale remains good translation) and add a switch to make
the test suite use poison-locale instead. Long term I'd like to switch
to poison locale by default, unless LANG is C, maybe with an option to
run with real .mo files.
-- 
Duy

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-06-07 12:31             ` Nguyen Thai Ngoc Duy
  2012-06-07 12:41               ` Jonathan Nieder
@ 2012-06-07 18:03               ` Junio C Hamano
  1 sibling, 0 replies; 87+ messages in thread
From: Junio C Hamano @ 2012-06-07 18:03 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy
  Cc: Jonathan Nieder, git, Ævar Arnfjörð, Jiang Xin

Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:

> No changes to the series then. Junio, pu material perhaps?

I would say it is a post-release material.

^ permalink raw reply	[flat|nested] 87+ messages in thread

* Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation
  2012-06-07 12:53                 ` Nguyen Thai Ngoc Duy
@ 2012-06-07 19:50                   ` Jonathan Nieder
  0 siblings, 0 replies; 87+ messages in thread
From: Jonathan Nieder @ 2012-06-07 19:50 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy
  Cc: Junio C Hamano, git, Ævar Arnfjörð Bjarmason, Jiang Xin

Nguyen Thai Ngoc Duy wrote:

> They still are and should be fixed when the new facility comes, so
> there's no point fixing them now.

Meh.  The whole point of GETTEXT_POISON from my point of view is to
prepare for a later facility like that, and I don't see how the fix
would be any different then, so...

But I don't mind waiting until someone interested (like me) has time,
so I guess this kind of question is moot.

^ permalink raw reply	[flat|nested] 87+ messages in thread

end of thread, other threads:[~2012-06-07 19:51 UTC | newest]

Thread overview: 87+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-06 14:23 [PATCH 00/65] Mark parseopt strings for translation Nguyễn Thái Ngọc Duy
2012-05-06 14:23 ` [PATCH 01/65] i18n: parseopt: lookup help and argument translations when showing usage Nguyễn Thái Ngọc Duy
2012-05-06 14:23 ` [PATCH 02/65] i18n: apply: mark parseopt strings for translation Nguyễn Thái Ngọc Duy
2012-05-28 11:13   ` [PATCH 03/65] i18n: archive: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 04/65] i18n: add: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 05/65] i18n: bisect--helper: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 06/65] i18n: blame: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 07/65] i18n: branch: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 08/65] i18n: cat-file: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 09/65] i18n: check-attr: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 10/65] i18n: checkout-index: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 11/65] i18n: checkout: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 12/65] i18n: cherry: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 13/65] i18n: clean: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 14/65] i18n: clone: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 15/65] i18n: column: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 16/65] i18n: commit: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 17/65] i18n: config: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 18/65] i18n: count-objects: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 19/65] i18n: describe: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 20/65] i18n: fast-export: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 21/65] i18n: fetch: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 22/65] i18n: fmt-merge-msg: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 23/65] i18n: for-each-ref: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 24/65] i18n: format-patch: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 25/65] i18n: fsck: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 26/65] i18n: gc: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 27/65] i18n: grep: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 28/65] i18n: hash-object: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 29/65] i18n: help: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 30/65] i18n: init-db: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 31/65] i18n: log: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 32/65] i18n: ls-files: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 33/65] i18n: ls-tree: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 34/65] i18n: merge-base: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 35/65] i18n: merge-file: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 36/65] i18n: merge: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 37/65] i18n: mktree: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 38/65] i18n: mv: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 39/65] i18n: name-rev: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 40/65] i18n: notes: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 41/65] i18n: pack-objects: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 42/65] i18n: pack-refs: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 43/65] i18n: prune-packed: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 44/65] i18n: prune: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 45/65] i18n: push: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 46/65] i18n: read-tree: " Nguyễn Thái Ngọc Duy
2012-05-28 11:13     ` [PATCH 47/65] i18n: remote: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 48/65] i18n: replace: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 49/65] i18n: status: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 50/65] i18n: rerere: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 51/65] i18n: reset: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 52/65] i18n: rev-parse: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 53/65] i18n: revert, cherry-pick: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 54/65] i18n: rm: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 55/65] i18n: shortlog: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 56/65] i18n: show-branch: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 57/65] i18n: show-ref: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 58/65] i18n: symbolic-ref: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 59/65] i18n: tag: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 60/65] i18n: update-index: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 61/65] i18n: update-ref: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 62/65] i18n: update-server-info: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 63/65] i18n: verify-pack: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 64/65] i18n: verify-tag: " Nguyễn Thái Ngọc Duy
2012-05-28 11:14     ` [PATCH 65/65] i18n: write-tree: " Nguyễn Thái Ngọc Duy
2012-05-28 22:47     ` [PATCH 03/65] i18n: archive: " Jonathan Nieder
2012-05-29 11:30       ` Nguyen Thai Ngoc Duy
2012-05-29 12:14         ` Jonathan Nieder
2012-05-29 18:49           ` Junio C Hamano
2012-05-30  5:11             ` Nguyen Thai Ngoc Duy
2012-05-30  6:24               ` Jonathan Nieder
2012-05-30 12:25                 ` Nguyen Thai Ngoc Duy
2012-05-30 12:50                   ` Nguyen Thai Ngoc Duy
2012-05-29 20:31     ` Junio C Hamano
2012-05-29 20:37       ` Jonathan Nieder
2012-05-29 21:08         ` Junio C Hamano
2012-05-30  5:27         ` Nguyen Thai Ngoc Duy
2012-06-02 10:55         ` Nguyen Thai Ngoc Duy
2012-06-02 12:44           ` Jonathan Nieder
2012-06-07 12:31             ` Nguyen Thai Ngoc Duy
2012-06-07 12:41               ` Jonathan Nieder
2012-06-07 12:53                 ` Nguyen Thai Ngoc Duy
2012-06-07 19:50                   ` Jonathan Nieder
2012-06-07 18:03               ` Junio C Hamano
2012-05-08 18:40 ` [PATCH 00/65] Mark " Junio C Hamano
2012-05-18  4:25   ` Nguyen Thai Ngoc Duy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).