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

Re: [PATCH v2 09/11] i18n: send-email: mark warnings and errors for translation

From
Jakub Narębski <jnareb@gmail.com>
Date
Oct 1, 2016, 19:51 UTC
Message-ID
<37c2efce-90b1-9415-eb85-64358e43b853@gmail.com>
In-Reply-To
<1472646690-9699-10-git-send-email-vascomalmeida@sapo.pt>
W dniu 31.08.2016 o 14:31, Vasco Almeida pisze:
> Mark warnings, errors and other messages for translation.
>
Which discovered a few places with questionable code...
(though there is one place with bad handling of translation)
 
Show 23 quoted lines
> Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
> ---
>  git-send-email.perl | 36 ++++++++++++++++++------------------
>  1 file changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/git-send-email.perl b/git-send-email.perl
> index 2521832..e7f712e 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -118,20 +118,20 @@ sub format_2822_time {
>  	my $localmin = $localtm[1] + $localtm[2] * 60;
>  	my $gmtmin = $gmttm[1] + $gmttm[2] * 60;
>  	if ($localtm[0] != $gmttm[0]) {
> -		die "local zone differs from GMT by a non-minute interval\n";
> +		die __("local zone differs from GMT by a non-minute interval\n");
>  	}
>  	if ((($gmttm[6] + 1) % 7) == $localtm[6]) {
>  		$localmin += 1440;
>  	} elsif ((($gmttm[6] - 1) % 7) == $localtm[6]) {
>  		$localmin -= 1440;
>  	} elsif ($gmttm[6] != $localtm[6]) {
> -		die "local time offset greater than or equal to 24 hours\n";
> +		die __("local time offset greater than or equal to 24 hours\n");

As one can see that this is the same message as below, so I wondered why the same test is repeated... But it is even worse. This test is first, wrongly described: it checks that the day of week is the same in local timezone and in UTC / GMT. But second, it is WRONG!

For example if UTC time is just before midnight, then any positive timezone has different day of week (next day); if UTC is just before midnight, then any negative timezone has different day of week (previous day).

  $ LC_ALL=C TZ=US/Hawaii date --date="2016-10-01 01:00 UTC"
  Fri Sep 30 15:00:00 HST 2016
  $ LC_ALL=C TZ=US/Hawaii date --date="2016-10-01 01:00 UTC" --utc
  Sat Oct  1 01:00:00 UTC 2016
Show 7 quoted lines
>  	}
>  	my $offset = $localmin - $gmtmin;
>  	my $offhour = $offset / 60;
>  	my $offmin = abs($offset % 60);
>  	if (abs($offhour) >= 24) {
> -		die ("local time offset greater than or equal to 24 hours\n");
> +		die __("local time offset greater than or equal to 24 hours\n");
This is good test.
Show 18 quoted lines
>  	}
>  
>  	return sprintf("%s, %2d %s %d %02d:%02d:%02d %s%02d%02d",
> @@ -199,13 +199,13 @@ sub do_edit {
>  		map {
>  			system('sh', '-c', $editor.' "$@"', $editor, $_);
>  			if (($? & 127) || ($? >> 8)) {
> -				die("the editor exited uncleanly, aborting everything");
> +				die(__("the editor exited uncleanly, aborting everything"));
>  			}
>  		} @_;
>  	} else {
>  		system('sh', '-c', $editor.' "$@"', $editor, @_);
>  		if (($? & 127) || ($? >> 8)) {
> -			die("the editor exited uncleanly, aborting everything");
> +			die(__("the editor exited uncleanly, aborting everything"));
>  		}
>  	}

Here we see some unnecessary code duplication, and thus message duplication.

Show 9 quoted lines
> @@ -1410,7 +1410,7 @@ Message-Id: $message_id
>  		$smtp->code =~ /250|200/ or die "Failed to send $subject\n".$smtp->message;
>  	}
>  	if ($quiet) {
> -		printf (($dry_run ? "Dry-" : "")."Sent %s\n", $subject);
> +		printf (($dry_run ? "Dry-" : ""). __("Sent %s\n"), $subject);
>  	} else {
>  		print (($dry_run ? "Dry-" : ""). __("OK. Log says:\n"));
>  		if (!file_name_is_absolute($smtp_server)) {
You would want to translate Dry-Sent and Dry-OK.
-- 
Jakub Narębski
Previous: Vasco AlmeidaNext: Vasco Almeida
Message 42 of 45 in “Mark strings in perl script for translation”
  1. 00/11 Mark strings in perl script for translationVasco Almeida, Aug 31, 2016
  2. 01/11 i18n: add--interactive: mark strings for translationVasco Almeida, Aug 31, 2016
  3. Junio C HamanoSep 25, 2016
  4. Vasco AlmeidaSep 28, 2016
  5. Duy NguyenSep 28, 2016
  6. Junio C HamanoSep 28, 2016
  7. Jakub NarębskiSep 29, 2016
  8. 02/11 i18n: add--interactive: mark simple here documents for translationVasco Almeida, Aug 31, 2016
  9. Junio C HamanoSep 25, 2016
  10. Vasco AlmeidaSep 29, 2016
  11. Junio C HamanoSep 29, 2016
  12. Jakub NarębskiSep 29, 2016
  13. Junio C HamanoSep 29, 2016
  14. Vasco AlmeidaOct 3, 2016
  15. Jakub NarębskiSep 30, 2016
  16. Vasco AlmeidaOct 3, 2016
  17. 03/11 i18n: add--interactive: mark strings with interpolation for translationVasco Almeida, Aug 31, 2016
  18. Junio C HamanoSep 25, 2016
  19. Jakub NarębskiSep 30, 2016
  20. Vasco AlmeidaOct 3, 2016
  21. 04/11 i18n: add--interactive: mark plural stringsVasco Almeida, Aug 31, 2016
  22. Vasco AlmeidaSep 26, 2016
  23. Junio C HamanoSep 26, 2016
  24. Jakub NarębskiOct 1, 2016
  25. Vasco AlmeidaOct 3, 2016
  26. 05/11 i18n: add--interactive: mark message for translationVasco Almeida, Aug 31, 2016
  27. Junio C HamanoSep 25, 2016
  28. Jakub NarębskiOct 1, 2016
  29. Vasco AlmeidaOct 3, 2016
  30. 06/11 i18n: add--interactive: i18n of help_patch_cmdVasco Almeida, Aug 31, 2016
  31. Junio C HamanoSep 25, 2016
  32. 07/11 i18n: add--interactive: mark edit_hunk_manually message for translationVasco Almeida, Aug 31, 2016
  33. Jakub NarębskiOct 1, 2016
  34. 08/11 i18n: send-email: mark strings for translationVasco Almeida, Aug 31, 2016
  35. Junio C HamanoSep 25, 2016
  36. Junio C HamanoSep 25, 2016
  37. Jakub NarębskiOct 1, 2016
  38. 11/11 i18n: difftool: mark warnings for translationVasco Almeida, Aug 31, 2016
  39. Junio C HamanoSep 25, 2016
  40. Jakub NarębskiOct 1, 2016
  41. 09/11 i18n: send-email: mark warnings and errors for translationVasco Almeida, Aug 31, 2016
  42. Jakub NarębskiOct 1, 2016
  43. 10/11 i18n: send-email: mark string with interpolation for translationVasco Almeida, Aug 31, 2016
  44. Junio C HamanoAug 31, 2016
  45. Junio C HamanoSep 25, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.