diff mbox series

[2/2] advice: refactor "action is not possible because you have unmerged files"

Message ID 20220119094445.15542-3-bagasdotme@gmail.com (mailing list archive)
State New, archived
Headers show
Series More similar messages refactoring | expand

Commit Message

Bagas Sanjaya Jan. 19, 2022, 9:44 a.m. UTC
Factor action names (cherry-picking, committing, merging, pulling, and
reverting) out of the message string.

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
---
 advice.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

René Scharfe Jan. 19, 2022, 11:11 a.m. UTC | #1
Am 19.01.22 um 10:44 schrieb Bagas Sanjaya:
> Factor action names (cherry-picking, committing, merging, pulling, and
> reverting) out of the message string.
>
> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
> ---
>  advice.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/advice.c b/advice.c
> index 1dfc91d176..4c72856478 100644
> --- a/advice.c
> +++ b/advice.c
> @@ -175,15 +175,15 @@ void list_config_advices(struct string_list *list, const char *prefix)
>  int error_resolve_conflict(const char *me)
>  {
>  	if (!strcmp(me, "cherry-pick"))
> -		error(_("Cherry-picking is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Cherry-picking");
>  	else if (!strcmp(me, "commit"))
> -		error(_("Committing is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Commiting");
>  	else if (!strcmp(me, "merge"))
> -		error(_("Merging is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Merging");
>  	else if (!strcmp(me, "pull"))
> -		error(_("Pulling is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Pulling");
>  	else if (!strcmp(me, "revert"))
> -		error(_("Reverting is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Reverting");
>  	else
>  		error(_("It is not possible to %s because you have unmerged files."),
>  			me);

That effectively reverts 8785c42532 (i18n: advice: internationalize
message for conflicts, 2016-06-17).  Why?  Having the capitalized
English present participle of the action appear somewhere in a
translated string would sure look quite foreign in some (most?)
languages.

René
Ævar Arnfjörð Bjarmason Jan. 19, 2022, 3:31 p.m. UTC | #2
On Wed, Jan 19 2022, Bagas Sanjaya wrote:

> Factor action names (cherry-picking, committing, merging, pulling, and
> reverting) out of the message string.
>
> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
> ---
>  advice.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/advice.c b/advice.c
> index 1dfc91d176..4c72856478 100644
> --- a/advice.c
> +++ b/advice.c
> @@ -175,15 +175,15 @@ void list_config_advices(struct string_list *list, const char *prefix)
>  int error_resolve_conflict(const char *me)
>  {
>  	if (!strcmp(me, "cherry-pick"))
> -		error(_("Cherry-picking is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Cherry-picking");
>  	else if (!strcmp(me, "commit"))
> -		error(_("Committing is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Commiting");
>  	else if (!strcmp(me, "merge"))
> -		error(_("Merging is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Merging");
>  	else if (!strcmp(me, "pull"))
> -		error(_("Pulling is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Pulling");
>  	else if (!strcmp(me, "revert"))
> -		error(_("Reverting is not possible because you have unmerged files."));
> +		error(_("%s is not possible because you have unmerged files."), "Reverting");
>  	else
>  		error(_("It is not possible to %s because you have unmerged files."),
>  			me);

René correctly notes downthread that we shouldn't change this, we have
plenty of these in git now to make these translatable to multiple
languages.

Just a tip that if you are refactoring something like this in that way
and we should change it, this is much nicer:

	error(_("%s is not possible because you have unmerged files."),
	     !strcmp(me, "cherry-pick") ? "Cherry-picking" :
             !strcmp(me, "commit") ? "Committing" :
             [...]

I.e. if we could do your proposed de-duplication we can also
de-duplicate this whole else if chain in favor of a less verbose ternary
operation.
Jean-Noël AVILA Jan. 19, 2022, 3:42 p.m. UTC | #3
On Wednesday, 19 January 2022 10:44:45 CET Bagas Sanjaya wrote:
> Factor action names (cherry-picking, committing, merging, pulling, and
> reverting) out of the message string.
> 
> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
> ---
>  advice.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/advice.c b/advice.c
> index 1dfc91d176..4c72856478 100644
> --- a/advice.c
> +++ b/advice.c
> @@ -175,15 +175,15 @@ void list_config_advices(struct string_list *list, 
const char *prefix)
>  int error_resolve_conflict(const char *me)
>  {
>  	if (!strcmp(me, "cherry-pick"))
> -		error(_("Cherry-picking is not possible because you 
have unmerged files."));
> +		error(_("%s is not possible because you have unmerged 
files."), "Cherry-picking");
>  	else if (!strcmp(me, "commit"))
> -		error(_("Committing is not possible because you have 
unmerged files."));
> +		error(_("%s is not possible because you have unmerged 
files."), "Commiting");
>  	else if (!strcmp(me, "merge"))
> -		error(_("Merging is not possible because you have 
unmerged files."));
> +		error(_("%s is not possible because you have unmerged 
files."), "Merging");
>  	else if (!strcmp(me, "pull"))
> -		error(_("Pulling is not possible because you have 
unmerged files."));
> +		error(_("%s is not possible because you have unmerged 
files."), "Pulling");
>  	else if (!strcmp(me, "revert"))
> -		error(_("Reverting is not possible because you have 
unmerged files."));
> +		error(_("%s is not possible because you have unmerged 
files."), "Reverting");
>  	else
>  		error(_("It is not possible to %s because you have 
unmerged files."),
>  			me);
> 

These strings don't qualify for factorization, because the words that you are 
extracting are English words that need to be translated. We can only extract 
words that are know to be constant, such as options, configuration, environment 
variables.

Playing grammar lego with sentences makes it impossible for translators to find 
a good translation.

JN
Junio C Hamano Jan. 19, 2022, 6:18 p.m. UTC | #4
Jean-Noël AVILA <jn.avila@free.fr> writes:

> Playing grammar lego with sentences makes it impossible for translators to find 
> a good translation.

Well said.

Thanks.
diff mbox series

Patch

diff --git a/advice.c b/advice.c
index 1dfc91d176..4c72856478 100644
--- a/advice.c
+++ b/advice.c
@@ -175,15 +175,15 @@  void list_config_advices(struct string_list *list, const char *prefix)
 int error_resolve_conflict(const char *me)
 {
 	if (!strcmp(me, "cherry-pick"))
-		error(_("Cherry-picking is not possible because you have unmerged files."));
+		error(_("%s is not possible because you have unmerged files."), "Cherry-picking");
 	else if (!strcmp(me, "commit"))
-		error(_("Committing is not possible because you have unmerged files."));
+		error(_("%s is not possible because you have unmerged files."), "Commiting");
 	else if (!strcmp(me, "merge"))
-		error(_("Merging is not possible because you have unmerged files."));
+		error(_("%s is not possible because you have unmerged files."), "Merging");
 	else if (!strcmp(me, "pull"))
-		error(_("Pulling is not possible because you have unmerged files."));
+		error(_("%s is not possible because you have unmerged files."), "Pulling");
 	else if (!strcmp(me, "revert"))
-		error(_("Reverting is not possible because you have unmerged files."));
+		error(_("%s is not possible because you have unmerged files."), "Reverting");
 	else
 		error(_("It is not possible to %s because you have unmerged files."),
 			me);