threads / patch / 56099

patchl10n: allows to translate diff messages

Subject: [PATCH] l10n: allows to translate diff messages

## tl;dr

4 messages between Jul 13, 2021 and Jul 14, 2021. Diffs are folded; open one to read it.

replies: 3people: 4as markdown or json

Jordi Mas via GitGitGadget· Jul 13, 2021, 12:01 UTC · lore
From: Jordi Mas <jmas@softcatala.org>

Allows to translate the diff messages shown when the user commits, indicating the number of insertions, deletions and files changed.

Signed-off-by: Jordi Mas <jmas@softcatala.org>
---
    Allow to translate diff message
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1045%2Fjordimas%2Flocalize-msg-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1045/jordimas/localize-msg-v1
Pull-Request: https://github.com/git/git/pull/1045
 diff.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Show changes to diff.c +3 −3
diff --git a/diff.c b/diff.c
index 52c791574b..29db9ce079 100644
--- a/diff.c
+++ b/diff.c
@@ -2593,7 +2593,7 @@ static void print_stat_summary_inserts_deletes(struct diff_options *options,
 	}
 
 	strbuf_addf(&sb,
-		    (files == 1) ? " %d file changed" : " %d files changed",
+		    Q_(" %d file changed", " %d files changed", files),
 		    files);
 
 	/*
@@ -2606,13 +2606,13 @@ static void print_stat_summary_inserts_deletes(struct diff_options *options,
 	 */
 	if (insertions || deletions == 0) {
 		strbuf_addf(&sb,
-			    (insertions == 1) ? ", %d insertion(+)" : ", %d insertions(+)",
+			    Q_(", %d insertion(+)", ", %d insertions(+)", insertions),
 			    insertions);
 	}
 
 	if (deletions || insertions == 0) {
 		strbuf_addf(&sb,
-			    (deletions == 1) ? ", %d deletion(-)" : ", %d deletions(-)",
+			    Q_(", %d deletion(-)", ", %d deletions(-)", deletions),
 			    deletions);
 	}
 	strbuf_addch(&sb, '\n');

base-commit: d486ca60a51c9cb1fe068803c3f540724e95e83a
-- 
gitgitgadget
Junio C Hamano· Jul 13, 2021, 23:11 UTC · re: Jordi Mas via GitGitGadget · lore

Re: [PATCH] l10n: allows to translate diff messages

"Jordi Mas via GitGitGadget" <gitgitgadget@gmail.com> writes:
> Subject: Re: [PATCH] l10n: allows to translate diff messages

"allow to translate" would be the right phrasing, but it is too vague to say "diff messages". You are only marking 3 messages for translation when there are probably a handful more.

You need to explain which ones, not just vague "diff messages".

I think you are focusing on the words on the "git diff --stat" and "git diff --shortstat" summary line, so

    i18n: mark "git diff --[short]stat" summary for translation

perhaps? And remember, i18n is the act of making the code capable of being translated, while l10n is the act of actually translating what i18n prepared into a particular language. Here, i18n is more appropriate.

Show 5 quoted lines
> From: Jordi Mas <jmas@softcatala.org>
>
> Allows to translate the diff messages shown when the
> user commits, indicating the number of insertions,
> deletions and files changed.

Our log message first explain the current status/behaviour of the code (and highlight the problem in it), and then gives an order to the codebase to "be like so" in imperative mood. Perhaps like this:

    "git diff --[short]stat" summarizes the number of paths touched
    and lines inserted and deleted.  Mark this message for
    translation.

Note that I didn't explicitly say what's wrong with the current behaviour, but "mark for translation" as the order given to the codebase, it should be clear enough from the context that the problem is that it is not marked for translation.

Having said all that, I am not sure if this patch stop at a sensible point. At least "git diff --summary" output should also be updated to match, as they often go hand-in-hand, no?

Also, when showing "git diff --stat" for a binary file, we'd say
	$path | Bin 1234 -> 1236 bytes
I wonder if that should also be translated.

While I am at it, there are a handful things that should NEVER be translated in the "git diff" output.

> diff --git a/diff.c b/diff.c
> index 52c791574b..29db9ce079 100644

Between "diff --git" and "--- a/$path", there are metainfo lines that are read by "git apply" (including this "index" line). They should never be translated.

Thanks.
Bagas Sanjaya· Jul 14, 2021, 00:09 UTC · re: Junio C Hamano · lore

Re: [PATCH] l10n: allows to translate diff messages

On 14/07/21 06.11, Junio C Hamano wrote:
Show 6 quoted lines
> Also, when showing "git diff --stat" for a binary file, we'd say
> 
> 	$path | Bin 1234 -> 1236 bytes
> 
> I wonder if that should also be translated.
> 

I think that above should also be translated, for consistency with diff for regular text file.

-- 
An old man doll... just what I always wanted! - Clara
Ævar Arnfjörð Bjarmason· Jul 14, 2021, 00:18 UTC · re: Junio C Hamano · lore

Re: [PATCH] l10n: allows to translate diff messages

On Tue, Jul 13 2021, Junio C Hamano wrote:
Show 19 quoted lines
> "Jordi Mas via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
>> Subject: Re: [PATCH] l10n: allows to translate diff messages
>
> "allow to translate" would be the right phrasing, but it is too
> vague to say "diff messages".  You are only marking 3 messages for
> translation when there are probably a handful more.  
>
> You need to explain which ones, not just vague "diff messages".
>
> I think you are focusing on the words on the "git diff --stat" and
> "git diff --shortstat" summary line, so
>
>     i18n: mark "git diff --[short]stat" summary for translation
>
> perhaps?  And remember, i18n is the act of making the code capable
> of being translated, while l10n is the act of actually translating
> what i18n prepared into a particular language.  Here, i18n is more
> appropriate.

What i18n v.s. l10n means is quite the side-discussion, I have not heard it used like this before, but rather as e.g. defined at : https://www.w3.org/International/questions/qa-i18n

I.e. in git.git's case that all our gettext-ization would fall under i18n, but l10n are generally a step beyond that, e.g. if "git status" output entries were sorted by locale, fsck and other progress.c users used localized numeric formatting etc.

IOW I agree that i18n is more appropriate here, I just hadn't heard i18n/l10n used in the way that you describe.

← back to recent threads