git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH v2 1/7] i18n: index-pack: use plural string instead of normal one
@ 2016-04-09 20:38 Vasco Almeida
  2016-04-09 20:38 ` [PATCH v2 2/7] i18n: unpack-trees: mark strings for translation Vasco Almeida
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Vasco Almeida @ 2016-04-09 20:38 UTC (permalink / raw)
  To: git; +Cc: Vasco Almeida, Jiang Xin

Git could output "completed with 1 local objects", but in this case
using "object" instead of "objects" is the correct form.
Use Q_() instead of _().

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---
 builtin/index-pack.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 2d1eb8b..e8c71fc 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -1250,7 +1250,9 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha
 		       nr_unresolved * sizeof(*objects));
 		f = sha1fd(output_fd, curr_pack);
 		fix_unresolved_deltas(f);
-		strbuf_addf(&msg, _("completed with %d local objects"),
+		strbuf_addf(&msg, Q_("completed with %d local object",
+				     "completed with %d local objects",
+				     nr_objects - nr_objects_initial),
 			    nr_objects - nr_objects_initial);
 		stop_progress_msg(&progress, msg.buf);
 		strbuf_release(&msg);
-- 
2.1.4

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

* [PATCH v2 2/7] i18n: unpack-trees: mark strings for translation
  2016-04-09 20:38 [PATCH v2 1/7] i18n: index-pack: use plural string instead of normal one Vasco Almeida
@ 2016-04-09 20:38 ` Vasco Almeida
  2016-04-09 20:38 ` [PATCH v2 3/7] i18n: git-parse-remote.sh: " Vasco Almeida
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Vasco Almeida @ 2016-04-09 20:38 UTC (permalink / raw)
  To: git; +Cc: Vasco Almeida, Jiang Xin

Mark strings seen by the user inside setup_unpack_trees_porcelain() and
display_error_msgs() functions for translation.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---
 unpack-trees.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/unpack-trees.c b/unpack-trees.c
index 9f55cc2..4bc6b4f 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -61,21 +61,21 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,
 	const char *cmd2 = strcmp(cmd, "checkout") ? cmd : "switch branches";
 
 	if (advice_commit_before_merge)
-		msg = "Your local changes to the following files would be overwritten by %s:\n%%s"
-			"Please, commit your changes or stash them before you can %s.";
+		msg = _("Your local changes to the following files would be overwritten by %s:\n%%s"
+			"Please, commit your changes or stash them before you can %s.");
 	else
-		msg = "Your local changes to the following files would be overwritten by %s:\n%%s";
+		msg = _("Your local changes to the following files would be overwritten by %s:\n%%s");
 	msgs[ERROR_WOULD_OVERWRITE] = msgs[ERROR_NOT_UPTODATE_FILE] =
 		xstrfmt(msg, cmd, cmd2);
 
 	msgs[ERROR_NOT_UPTODATE_DIR] =
-		"Updating the following directories would lose untracked files in it:\n%s";
+		_("Updating the following directories would lose untracked files in it:\n%s");
 
 	if (advice_commit_before_merge)
-		msg = "The following untracked working tree files would be %s by %s:\n%%s"
-			"Please move or remove them before you can %s.";
+		msg = _("The following untracked working tree files would be %s by %s:\n%%s"
+			"Please move or remove them before you can %s.");
 	else
-		msg = "The following untracked working tree files would be %s by %s:\n%%s";
+		msg = _("The following untracked working tree files would be %s by %s:\n%%s");
 
 	msgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = xstrfmt(msg, "removed", cmd, cmd2);
 	msgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = xstrfmt(msg, "overwritten", cmd, cmd2);
@@ -84,14 +84,14 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,
 	 * Special case: ERROR_BIND_OVERLAP refers to a pair of paths, we
 	 * cannot easily display it as a list.
 	 */
-	msgs[ERROR_BIND_OVERLAP] = "Entry '%s' overlaps with '%s'.  Cannot bind.";
+	msgs[ERROR_BIND_OVERLAP] = _("Entry '%s' overlaps with '%s'.  Cannot bind.");
 
 	msgs[ERROR_SPARSE_NOT_UPTODATE_FILE] =
-		"Cannot update sparse checkout: the following entries are not up-to-date:\n%s";
+		_("Cannot update sparse checkout: the following entries are not up-to-date:\n%s");
 	msgs[ERROR_WOULD_LOSE_ORPHANED_OVERWRITTEN] =
-		"The following Working tree files would be overwritten by sparse checkout update:\n%s";
+		_("The following Working tree files would be overwritten by sparse checkout update:\n%s");
 	msgs[ERROR_WOULD_LOSE_ORPHANED_REMOVED] =
-		"The following Working tree files would be removed by sparse checkout update:\n%s";
+		_("The following Working tree files would be removed by sparse checkout update:\n%s");
 
 	opts->show_all_errors = 1;
 	/* rejected paths may not have a static buffer */
@@ -168,7 +168,7 @@ static void display_error_msgs(struct unpack_trees_options *o)
 		string_list_clear(rejects, 0);
 	}
 	if (something_displayed)
-		fprintf(stderr, "Aborting\n");
+		fprintf(stderr, _("Aborting\n"));
 }
 
 /*
-- 
2.1.4

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

* [PATCH v2 3/7] i18n: git-parse-remote.sh: mark strings for translation
  2016-04-09 20:38 [PATCH v2 1/7] i18n: index-pack: use plural string instead of normal one Vasco Almeida
  2016-04-09 20:38 ` [PATCH v2 2/7] i18n: unpack-trees: mark strings for translation Vasco Almeida
@ 2016-04-09 20:38 ` Vasco Almeida
  2016-04-12 17:47   ` Junio C Hamano
  2016-04-09 20:38 ` [PATCH v2 4/7] i18n: builtin/pull.c: " Vasco Almeida
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Vasco Almeida @ 2016-04-09 20:38 UTC (permalink / raw)
  To: git; +Cc: Vasco Almeida, Jiang Xin

Change Makefile to include git-parse-remote.sh in LOCALIZED_SH.

TODO: remove 3rd argument of error_on_missing_default_upstream function
that is no longer required.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---
 Makefile            |  2 +-
 git-parse-remote.sh | 50 +++++++++++++++++++++++++++++++++-----------------
 2 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/Makefile b/Makefile
index 2742a69..2249bab 100644
--- a/Makefile
+++ b/Makefile
@@ -2069,7 +2069,7 @@ XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \
 	--keyword=gettextln --keyword=eval_gettextln
 XGETTEXT_FLAGS_PERL = $(XGETTEXT_FLAGS) --keyword=__ --language=Perl
 LOCALIZED_C = $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H)
-LOCALIZED_SH = $(SCRIPT_SH)
+LOCALIZED_SH = $(SCRIPT_SH) git-parse-remote.sh
 LOCALIZED_PERL = $(SCRIPT_PERL)
 
 ifdef XGETTEXT_INCLUDE_TESTS
diff --git a/git-parse-remote.sh b/git-parse-remote.sh
index 55fe8d5..c5e5840 100644
--- a/git-parse-remote.sh
+++ b/git-parse-remote.sh
@@ -6,6 +6,9 @@
 # this would fail in that case and would issue an error message.
 GIT_DIR=$(git rev-parse -q --git-dir) || :;
 
+. git-sh-setup
+. git-sh-i18n
+
 get_default_remote () {
 	curr_branch=$(git symbolic-ref -q HEAD)
 	curr_branch="${curr_branch#refs/heads/}"
@@ -56,11 +59,13 @@ get_remote_merge_branch () {
 error_on_missing_default_upstream () {
 	cmd="$1"
 	op_type="$2"
-	op_prep="$3"
+	op_prep="$3" # FIXME: op_prep is no longer used
 	example="$4"
 	branch_name=$(git symbolic-ref -q HEAD)
+	display_branch_name="${branch_name#refs/heads/}"
 	# If there's only one remote, use that in the suggestion
-	remote="<remote>"
+	remote="$(gettext "<remote>")"
+	branch="$(gettext "branch")"
 	if test $(git remote | wc -l) = 1
 	then
 		remote=$(git remote)
@@ -68,22 +73,33 @@ error_on_missing_default_upstream () {
 
 	if test -z "$branch_name"
 	then
-		echo "You are not currently on a branch. Please specify which
-branch you want to $op_type $op_prep. See git-${cmd}(1) for details.
-
-    $example
-"
+		gettextln "You are not currently on a branch."
+		if test "$op_type" = rebase
+		then
+			gettextln "Please specify which branch you want to rebase against."
+		else
+			gettextln "Please specify which branch you want to merge with."
+		fi
+		eval_gettextln "See git-\${cmd}(1) for details."
+		echo
+		echo "    $example"
+		echo
 	else
-		echo "There is no tracking information for the current branch.
-Please specify which branch you want to $op_type $op_prep.
-See git-${cmd}(1) for details
-
-    $example
-
-If you wish to set tracking information for this branch you can do so with:
-
-    git branch --set-upstream-to=$remote/<branch> ${branch_name#refs/heads/}
-"
+		gettextln "There is no tracking information for the current branch."
+		if test "$op_type" = rebase
+		then
+			gettextln "Please specify which branch you want to rebase against."
+		else
+			gettextln "Please specify which branch you want to merge with."
+		fi
+		eval_gettextln "See git-\${cmd}(1) for details."
+		echo
+		echo "    $example"
+		echo
+		gettextln "If you wish to set tracking information for this branch you can do so with:"
+		echo
+		echo "    git branch --set-upstream-to=$remote/<$branch> $display_branch_name"
+		echo
 	fi
 	exit 1
 }
-- 
2.1.4

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

* [PATCH v2 4/7] i18n: builtin/pull.c: mark strings for translation
  2016-04-09 20:38 [PATCH v2 1/7] i18n: index-pack: use plural string instead of normal one Vasco Almeida
  2016-04-09 20:38 ` [PATCH v2 2/7] i18n: unpack-trees: mark strings for translation Vasco Almeida
  2016-04-09 20:38 ` [PATCH v2 3/7] i18n: git-parse-remote.sh: " Vasco Almeida
@ 2016-04-09 20:38 ` Vasco Almeida
  2016-04-10 18:01   ` Junio C Hamano
  2016-04-09 20:38 ` [PATCH v2 5/7] i18n: builtin/pull.c: split strings marked " Vasco Almeida
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Vasco Almeida @ 2016-04-09 20:38 UTC (permalink / raw)
  To: git; +Cc: Vasco Almeida, Jiang Xin

Some translations might also translate "<remote>" and "<branch>".

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---
 builtin/pull.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin/pull.c b/builtin/pull.c
index 10eff03..9e8883c 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -458,13 +458,13 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
 			fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
 		fprintf_ln(stderr, _("See git-pull(1) for details."));
 		fprintf(stderr, "\n");
-		fprintf_ln(stderr, "    git pull <remote> <branch>");
+		fprintf_ln(stderr, "    git pull <%s> <%s>", _("remote"), _("branch"));
 		fprintf(stderr, "\n");
 	} else if (!curr_branch->merge_nr) {
 		const char *remote_name = NULL;
 
 		if (for_each_remote(get_only_remote, &remote_name) || !remote_name)
-			remote_name = "<remote>";
+			remote_name = _("<remote>");
 
 		fprintf_ln(stderr, _("There is no tracking information for the current branch."));
 		if (opt_rebase)
@@ -473,7 +473,7 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
 			fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
 		fprintf_ln(stderr, _("See git-pull(1) for details."));
 		fprintf(stderr, "\n");
-		fprintf_ln(stderr, "    git pull <remote> <branch>");
+		fprintf_ln(stderr, "    git pull <%s> <%s>", _("remote"), _("branch"));
 		fprintf(stderr, "\n");
 		fprintf_ln(stderr, _("If you wish to set tracking information for this branch you can do so with:\n"
 				"\n"
-- 
2.1.4

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

* [PATCH v2 5/7] i18n: builtin/pull.c: split strings marked for translation
  2016-04-09 20:38 [PATCH v2 1/7] i18n: index-pack: use plural string instead of normal one Vasco Almeida
                   ` (2 preceding siblings ...)
  2016-04-09 20:38 ` [PATCH v2 4/7] i18n: builtin/pull.c: " Vasco Almeida
@ 2016-04-09 20:38 ` Vasco Almeida
  2016-04-09 20:38 ` [PATCH v2 6/7] i18n: builtin/rm.c: remove a comma ',' from string Vasco Almeida
  2016-04-09 20:38 ` [PATCH v2 7/7] i18n: builtin/branch.c: mark option for translation Vasco Almeida
  5 siblings, 0 replies; 12+ messages in thread
From: Vasco Almeida @ 2016-04-09 20:38 UTC (permalink / raw)
  To: git; +Cc: Vasco Almeida, Jiang Xin

Split string "If you wish to set tracking information
for this branch you can do so with:\n" to match occurring string in
git-parse-remote.sh. In this case, the translator handles it only once.

On the other hand, the translations of the string that were already made
are mark as fuzzy and the translator needs to correct it herself.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---
 builtin/pull.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/builtin/pull.c b/builtin/pull.c
index 9e8883c..617893c 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -475,10 +475,10 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
 		fprintf(stderr, "\n");
 		fprintf_ln(stderr, "    git pull <%s> <%s>", _("remote"), _("branch"));
 		fprintf(stderr, "\n");
-		fprintf_ln(stderr, _("If you wish to set tracking information for this branch you can do so with:\n"
-				"\n"
-				"    git branch --set-upstream-to=%s/<branch> %s\n"),
-				remote_name, curr_branch->name);
+		fprintf_ln(stderr, _("If you wish to set tracking information for this branch you can do so with:"));
+		fprintf(stderr, "\n");
+		fprintf_ln(stderr, "    git branch --set-upstream-to=%s/<%s> %s\n",
+				remote_name, _("branch"), curr_branch->name);
 	} else
 		fprintf_ln(stderr, _("Your configuration specifies to merge with the ref '%s'\n"
 			"from the remote, but no such ref was fetched."),
-- 
2.1.4

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

* [PATCH v2 6/7] i18n: builtin/rm.c: remove a comma ',' from string
  2016-04-09 20:38 [PATCH v2 1/7] i18n: index-pack: use plural string instead of normal one Vasco Almeida
                   ` (3 preceding siblings ...)
  2016-04-09 20:38 ` [PATCH v2 5/7] i18n: builtin/pull.c: split strings marked " Vasco Almeida
@ 2016-04-09 20:38 ` Vasco Almeida
  2016-04-09 20:38 ` [PATCH v2 7/7] i18n: builtin/branch.c: mark option for translation Vasco Almeida
  5 siblings, 0 replies; 12+ messages in thread
From: Vasco Almeida @ 2016-04-09 20:38 UTC (permalink / raw)
  To: git; +Cc: Vasco Almeida, Jiang Xin

Remove a comma from string marked for translation. Make the string match the
one in builtin/mv.c. Now translators have do handle this string only once.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---
 builtin/rm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builtin/rm.c b/builtin/rm.c
index 8829b09..be83c43 100644
--- a/builtin/rm.c
+++ b/builtin/rm.c
@@ -314,7 +314,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
 		list.entry[list.nr].is_submodule = S_ISGITLINK(ce->ce_mode);
 		if (list.entry[list.nr++].is_submodule &&
 		    !is_staging_gitmodules_ok())
-			die (_("Please, stage your changes to .gitmodules or stash them to proceed"));
+			die (_("Please stage your changes to .gitmodules or stash them to proceed"));
 	}
 
 	if (pathspec.nr) {
-- 
2.1.4

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

* [PATCH v2 7/7] i18n: builtin/branch.c: mark option for translation
  2016-04-09 20:38 [PATCH v2 1/7] i18n: index-pack: use plural string instead of normal one Vasco Almeida
                   ` (4 preceding siblings ...)
  2016-04-09 20:38 ` [PATCH v2 6/7] i18n: builtin/rm.c: remove a comma ',' from string Vasco Almeida
@ 2016-04-09 20:38 ` Vasco Almeida
  5 siblings, 0 replies; 12+ messages in thread
From: Vasco Almeida @ 2016-04-09 20:38 UTC (permalink / raw)
  To: git; +Cc: Vasco Almeida, Jiang Xin

Mark description and parameter for option "set-upstream-to" for translation.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---
 builtin/branch.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builtin/branch.c b/builtin/branch.c
index 7b45b6b..5ab106b 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -620,7 +620,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 			BRANCH_TRACK_EXPLICIT),
 		OPT_SET_INT( 0, "set-upstream",  &track, N_("change upstream info"),
 			BRANCH_TRACK_OVERRIDE),
-		OPT_STRING('u', "set-upstream-to", &new_upstream, "upstream", "change the upstream info"),
+		OPT_STRING('u', "set-upstream-to", &new_upstream, N_("upstream"), N_("change the upstream info")),
 		OPT_BOOL(0, "unset-upstream", &unset_upstream, "Unset the upstream info"),
 		OPT__COLOR(&branch_use_color, N_("use colored output")),
 		OPT_SET_INT('r', "remotes",     &filter.kind, N_("act on remote-tracking branches"),
-- 
2.1.4

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

* Re: [PATCH v2 4/7] i18n: builtin/pull.c: mark strings for translation
  2016-04-09 20:38 ` [PATCH v2 4/7] i18n: builtin/pull.c: " Vasco Almeida
@ 2016-04-10 18:01   ` Junio C Hamano
  2016-04-11 10:43     ` Vasco Almeida
  0 siblings, 1 reply; 12+ messages in thread
From: Junio C Hamano @ 2016-04-10 18:01 UTC (permalink / raw)
  To: Vasco Almeida; +Cc: git, Jiang Xin

Vasco Almeida <vascomalmeida@sapo.pt> writes:

> Some translations might also translate "<remote>" and "<branch>".

This offers an interesting observation that I didn't think of while
reviewing the first round of this series.

Do translations want to translate "remote" and "branch" without the
"<bra" and "ket>"?  Or is it better to allow translations to adjust
the "quote around a placeholder" in a locale dependent way?

> @@ -458,13 +458,13 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
>  			fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
>  		fprintf_ln(stderr, _("See git-pull(1) for details."));
>  		fprintf(stderr, "\n");
> -		fprintf_ln(stderr, "    git pull <remote> <branch>");
> +		fprintf_ln(stderr, "    git pull <%s> <%s>", _("remote"), _("branch"));

I know this hunk follows I suggested, i.e. "quotes around a
placeholder is universal and locale independent".  However, ...

>  		fprintf(stderr, "\n");
>  	} else if (!curr_branch->merge_nr) {
>  		const char *remote_name = NULL;
>  
>  		if (for_each_remote(get_only_remote, &remote_name) || !remote_name)
> -			remote_name = "<remote>";
> +			remote_name = _("<remote>");
>  
... this does not.  It allows to translate the "quote around a
placeholder".  And where this phony "remote_name" string is used,
there is also this reference to <branch>:

    fprintf_ln(stderr, _("If you wish to set tracking information for ..."
                    "\n"
                    "    git branch --set-upstream-to=%s/<branch> %s\n"),
                    remote_name, curr_branch->name);

which also does.

Perhaps the first hunk at around ll.458 would want to do

> +	fprintf_ln(stderr, "    git pull %s %s", _("<remote>"), _("<branch>"));

to be consistent and more flexible for the translator's needs?  The
quoting convention may be locale dependent after all.

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

* Re: [PATCH v2 4/7] i18n: builtin/pull.c: mark strings for translation
  2016-04-10 18:01   ` Junio C Hamano
@ 2016-04-11 10:43     ` Vasco Almeida
  2016-04-12  9:52       ` Duy Nguyen
  0 siblings, 1 reply; 12+ messages in thread
From: Vasco Almeida @ 2016-04-11 10:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Jiang Xin

Às 18:01 de 10-04-2016, Junio C Hamano escreveu:
> Vasco Almeida <vascomalmeida@sapo.pt> writes:
> 
>> Some translations might also translate "<remote>" and "<branch>".
> 
> This offers an interesting observation that I didn't think of while
> reviewing the first round of this series.
> 
> Do translations want to translate "remote" and "branch" without the
> "<bra" and "ket>"?  Or is it better to allow translations to adjust
> the "quote around a placeholder" in a locale dependent way?
> 
I think they want to translate without brackets.
From what I can see, translator are using the same quoting.
The use of this kind of placeholders should be a new thing to languages,
and might be limited to some backgrounds or situations. So, translator
might adopt the English way, since there are no better or equivalent way
in their languages. Or I may be be assuming to much?

>> @@ -458,13 +458,13 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
>>  			fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
>>  		fprintf_ln(stderr, _("See git-pull(1) for details."));
>>  		fprintf(stderr, "\n");
>> -		fprintf_ln(stderr, "    git pull <remote> <branch>");
>> +		fprintf_ln(stderr, "    git pull <%s> <%s>", _("remote"), _("branch"));
> 
> I know this hunk follows I suggested, i.e. "quotes around a
> placeholder is universal and locale independent".  However, ...
> 
>>  		fprintf(stderr, "\n");
>>  	} else if (!curr_branch->merge_nr) {
>>  		const char *remote_name = NULL;
>>  
>>  		if (for_each_remote(get_only_remote, &remote_name) || !remote_name)
>> -			remote_name = "<remote>";
>> +			remote_name = _("<remote>");
>>  
> ... this does not.  It allows to translate the "quote around a
> placeholder".  And where this phony "remote_name" string is used,
> there is also this reference to <branch>:
> 
>     fprintf_ln(stderr, _("If you wish to set tracking information for ..."
>                     "\n"
>                     "    git branch --set-upstream-to=%s/<branch> %s\n"),
>                     remote_name, curr_branch->name);
> 
> which also does.
> 
> Perhaps the first hunk at around ll.458 would want to do
> 
>> +	fprintf_ln(stderr, "    git pull %s %s", _("<remote>"), _("<branch>"));
> 
> to be consistent and more flexible for the translator's needs?  The
> quoting convention may be locale dependent after all.
>
If we think placeholders quoting is important for localization, we could
mark them for translation in usage_argh() function in parse-options.c:

s = literal ? " %s" : _(" <%s>");

and do the same for other cases of <%s> in that function. Plus, add a
comment for translator, perhaps.

Otherwise, something like the following just to be consistent:

diff --git a/builtin/pull.c b/builtin/pull.c
index 617893c..317c3ce 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -463,8 +463,7 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
        } else if (!curr_branch->merge_nr) {
                const char *remote_name = NULL;
 
-               if (for_each_remote(get_only_remote, &remote_name) || !remote_name)
-                       remote_name = _("<remote>");
+               for_each_remote(get_only_remote, &remote_name);
 
                fprintf_ln(stderr, _("There is no tracking information for the current branch."));
                if (opt_rebase)
@@ -477,8 +476,11 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
                fprintf(stderr, "\n");
                fprintf_ln(stderr, _("If you wish to set tracking information for this branch you can do so with:"));
                fprintf(stderr, "\n");
-               fprintf_ln(stderr, "    git branch --set-upstream-to=%s/<%s> %s\n",
-                               remote_name, _("branch"), curr_branch->name);
+               fprintf_ln(stderr, remote_name
+                                  ? "    git branch --set-upstream-to=%s/<%s> %s\n"
+                                  : "    git branch --set-upstream-to=<%s>/<%s> %s\n",
+                               remote_name ? remote_name : _("remote"),
+                               _("branch"), curr_branch->name);
        } else
                fprintf_ln(stderr, _("Your configuration specifies to merge with the ref '%s'\n"
                        "from the remote, but no such ref was fetched."),

I think there is no need to internationalize the bracket. If we did so,
they would end up just in the way without adding much value for
translators.
What do you think?

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

* Re: [PATCH v2 4/7] i18n: builtin/pull.c: mark strings for translation
  2016-04-11 10:43     ` Vasco Almeida
@ 2016-04-12  9:52       ` Duy Nguyen
  2016-04-29  6:57         ` Jean-Noël Avila
  0 siblings, 1 reply; 12+ messages in thread
From: Duy Nguyen @ 2016-04-12  9:52 UTC (permalink / raw)
  To: Vasco Almeida; +Cc: Junio C Hamano, Git Mailing List, Jiang Xin

On Mon, Apr 11, 2016 at 5:43 PM, Vasco Almeida <vascomalmeida@sapo.pt> wrote:
>>> @@ -458,13 +458,13 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
>>>                      fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
>>>              fprintf_ln(stderr, _("See git-pull(1) for details."));
>>>              fprintf(stderr, "\n");
>>> -            fprintf_ln(stderr, "    git pull <remote> <branch>");
>>> +            fprintf_ln(stderr, "    git pull <%s> <%s>", _("remote"), _("branch"));
>>
>> I know this hunk follows I suggested, i.e. "quotes around a
>> placeholder is universal and locale independent".  However, ...
>>
>>>              fprintf(stderr, "\n");
>>>      } else if (!curr_branch->merge_nr) {
>>>              const char *remote_name = NULL;
>>>
>>>              if (for_each_remote(get_only_remote, &remote_name) || !remote_name)
>>> -                    remote_name = "<remote>";
>>> +                    remote_name = _("<remote>");
>>>
>> ... this does not.  It allows to translate the "quote around a
>> placeholder".  And where this phony "remote_name" string is used,
>> there is also this reference to <branch>:
>>
>>     fprintf_ln(stderr, _("If you wish to set tracking information for ..."
>>                     "\n"
>>                     "    git branch --set-upstream-to=%s/<branch> %s\n"),
>>                     remote_name, curr_branch->name);
>>
>> which also does.
>>
>> Perhaps the first hunk at around ll.458 would want to do
>>
>>> +    fprintf_ln(stderr, "    git pull %s %s", _("<remote>"), _("<branch>"));
>>
>> to be consistent and more flexible for the translator's needs?  The
>> quoting convention may be locale dependent after all.
>>
> If we think placeholders quoting is important for localization,

Ex-translator speaking. Context is important. If it's me, I would even
go as far as marking the whole line translatable just to give more
context (it's mostly just copy and translate a few words then). But
then again, I was half developer half translator and may see things a
bit differently. Maybe _("<remote>") is a good balance.
-- 
Duy

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

* Re: [PATCH v2 3/7] i18n: git-parse-remote.sh: mark strings for translation
  2016-04-09 20:38 ` [PATCH v2 3/7] i18n: git-parse-remote.sh: " Vasco Almeida
@ 2016-04-12 17:47   ` Junio C Hamano
  0 siblings, 0 replies; 12+ messages in thread
From: Junio C Hamano @ 2016-04-12 17:47 UTC (permalink / raw)
  To: Vasco Almeida; +Cc: git, Jiang Xin

Vasco Almeida <vascomalmeida@sapo.pt> writes:

> diff --git a/git-parse-remote.sh b/git-parse-remote.sh
> index 55fe8d5..c5e5840 100644
> --- a/git-parse-remote.sh
> +++ b/git-parse-remote.sh
> @@ -6,6 +6,9 @@
>  # this would fail in that case and would issue an error message.
>  GIT_DIR=$(git rev-parse -q --git-dir) || :;
>  
> +. git-sh-setup
> +. git-sh-i18n

This hunk should be dropped, I think.

The scriptlet is not meant to be used as a standalone command and is
designed to be always used with ". git-parse-remote".  The scripted
command that uses it would already have done the above two.

> @@ -68,22 +73,33 @@ error_on_missing_default_upstream () {
>  
>  	if test -z "$branch_name"
>  	then
> -		echo "You are not currently on a branch. Please specify which
> -branch you want to $op_type $op_prep. See git-${cmd}(1) for details.
> -
> -    $example
> -"
> +		gettextln "You are not currently on a branch."
> +		if test "$op_type" = rebase
> +		then
> +			gettextln "Please specify which branch you want to rebase against."
> +		else
> +			gettextln "Please specify which branch you want to merge with."
> +		fi

The original did not have to know $op_type can only be rebase or
merge, but this one hardcodes the assumption.  To make sure that
anybody who adds yet another way to rebase need to come up with a
phrasing that is suited for the new way, something like this would
be a good way to future-proof it.

	case "$op_type" in
        rebase)
        	... ;;
        merge)
        	... ;;
	*)
        	echo >&2 "BUG: ..."
                exit 1 ;;
	esac

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

* Re: [PATCH v2 4/7] i18n: builtin/pull.c: mark strings for translation
  2016-04-12  9:52       ` Duy Nguyen
@ 2016-04-29  6:57         ` Jean-Noël Avila
  0 siblings, 0 replies; 12+ messages in thread
From: Jean-Noël Avila @ 2016-04-29  6:57 UTC (permalink / raw)
  To: Git Mailing List; +Cc: Jiang Xin

Le 12/04/2016 11:52, Duy Nguyen a écrit :
>
> Ex-translator speaking. Context is important. If it's me, I would even
> go as far as marking the whole line translatable just to give more
> context (it's mostly just copy and translate a few words then). But
> then again, I was half developer half translator and may see things a
> bit differently. Maybe _("<remote>") is a good balance.

I second this opinion. Translating a single word without context is
generally not advised. The english word might come up in different
situations with different grammatical forms for the translated version.

Adding the brackets provides enough context, as long as the string is
always used in the same semantic field, describing the command line. I
just don't know how much that helps reducing the amount of translated
strings.


JN

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

end of thread, other threads:[~2016-04-29  6:57 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-09 20:38 [PATCH v2 1/7] i18n: index-pack: use plural string instead of normal one Vasco Almeida
2016-04-09 20:38 ` [PATCH v2 2/7] i18n: unpack-trees: mark strings for translation Vasco Almeida
2016-04-09 20:38 ` [PATCH v2 3/7] i18n: git-parse-remote.sh: " Vasco Almeida
2016-04-12 17:47   ` Junio C Hamano
2016-04-09 20:38 ` [PATCH v2 4/7] i18n: builtin/pull.c: " Vasco Almeida
2016-04-10 18:01   ` Junio C Hamano
2016-04-11 10:43     ` Vasco Almeida
2016-04-12  9:52       ` Duy Nguyen
2016-04-29  6:57         ` Jean-Noël Avila
2016-04-09 20:38 ` [PATCH v2 5/7] i18n: builtin/pull.c: split strings marked " Vasco Almeida
2016-04-09 20:38 ` [PATCH v2 6/7] i18n: builtin/rm.c: remove a comma ',' from string Vasco Almeida
2016-04-09 20:38 ` [PATCH v2 7/7] i18n: builtin/branch.c: mark option for translation Vasco Almeida

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).